suche ein wiki beitrag für if .... then

Für sonstige Unterhaltungen, welche nicht direkt mit Lazarus zu tun haben

suche ein wiki beitrag für if .... then

Beitragvon reiter » 15. Sep 2019, 21:14 suche ein wiki beitrag für if .... then

hallo wie die Überschrift schon sagt suche ich einen Beitrag oder Wiki Beitrag wie ich das machen kann

also ich habe in memo1.text zum Beispiel "Foto" als Text stehen (immer nur ein wort)
nun wollte ich wenn das wort "Foto" da steht ein Bild zu Foto laden

also
Code: Alles auswählen
procedure TForm1.InfoImage;
begin
if memo1.text ,'Foto' then
image8.Picture.LoadFromFile(GetUserdir + 'Foto.png');
end;



macht er aber nicht..
dann kann es auch sein das da in dem Memo1.Text Feld nicht "Foto" steht sondern "Bild" dann soll er das Bild.png laden

Code: Alles auswählen
procedure TForm1.InfoImage;
begin
 
if memo1.text ,'Foto' then
image8.Picture.LoadFromFile(GetUserdir + 'Foto.png');
if memo1.text ,'Bild' then
image8.Picture.LoadFromFile(GetUserdir + 'Bild.png');
end;
end;

hat da irgendjemand einen link zu einem Wiki Betrag dazu oder wie kann ich das am besten machen

danke
Zuletzt geändert von monta am 6. Okt 2019, 16:00, insgesamt 2-mal geändert.
Grund: Highlighter
reiter
 
Beiträge: 126
Registriert: 18. Nov 2017, 16:58

Beitragvon MacWomble » 15. Sep 2019, 22:00 Re: suche ein wiki beitrag für if .... then

1. warum nimmst du ein Memo für ein Wort? Ein TEdit sollte da deutlich besser geeignet sein.
2. If Edit1.Text = 'Foto' then
3. https://wiki.freepascal.org/If/de

Bei google z.B. 'Lazarus If Then' eingeben bringt dich zu den richtigen Informationen
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 860
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.2 Cinnamon / CodeTyphon LAB 7.0 v. 03.11.2019/ FP 3.3.1 Rev 43346 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon reiter » 15. Sep 2019, 22:28 Re: suche ein wiki beitrag für if .... then

hallo, ja sicher wäre da ein tedit besser...
muss mal sehen ob ich das alles umändern kann
hm da hab ich wohl das = vergessen...
reiter
 
Beiträge: 126
Registriert: 18. Nov 2017, 16:58

Beitragvon fliegermichl » 16. Sep 2019, 09:52 Re: suche ein wiki beitrag für if .... then

Du kannst das aber auch einfacher gestalten indem du nachschaust ob es in dem Verzeichnis eine Datei gibt die so heisst wie es in dem Edit oder Memo steht.
Code: Alles auswählen
 
 
if (FileExists(GetUserDir + Memo1.Text + '.png')) then
 Image1.Picture.LoadFromFile(GetUserDir + Memo1.Text + '.png');
 
fliegermichl
Lazarusforum e. V.
 
Beiträge: 408
Registriert: 9. Jun 2011, 08:42
Wohnort: Echzell
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon wp_xyz » 16. Sep 2019, 10:28 Re: suche ein wiki beitrag für if .... then

Auf keinen Fall Memo1.Text verwenden, denn dort wird immer ein Zeilenumbruch angehängt --> aus "Bild" wird "Bild"#13#10

Code: Alles auswählen
// Memo auf Formular, enthält als einzige Zeile 'Bild', kein RETURN am Ende
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
  tmp: String;
  i: Integer;
begin
  tmp := Memo1.Text;
  s := '';
  for i:=1 to Length(tmp) do
    s := s + ' ' + Format('%.2x', [ord(tmp[i])]);
  ShowMessage(IntToStr(Length(Memo1.Text)) + Lineending + s);
end;


Ausgabe:
6
42 69 6C 64 0D 0A
wp_xyz
 
Beiträge: 2993
Registriert: 8. Apr 2011, 08:01

Beitragvon fliegermichl » 16. Sep 2019, 10:46 Re: suche ein wiki beitrag für if .... then

Das passiert aber nur, wenn der Zeilenumbruch im Text enthalten ist. Gehe ich in das Memo und lösche den Zeilenumbruch raus, dann kommt der auch aus der Property Memo1.Text raus.
fliegermichl
Lazarusforum e. V.
 
Beiträge: 408
Registriert: 9. Jun 2011, 08:42
Wohnort: Echzell
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon wp_xyz » 16. Sep 2019, 10:50 Re: suche ein wiki beitrag für if .... then

Hast du das ausprobiert? Das obige Beispiel hatte extra den Hinweis "Kein RETURN am Ende".

Der folgende Code (der dem obigen entspricht, aber das Memo löscht und das Wort "Bild" hinzufügt) liefert dasselbe Ergebnis wie oben
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
  tmp: String;
  i: Integer;
begin
  Memo1.Clear;
  Memo1.Lines.Add('Bild');
  tmp := Memo1.Text;
  s := '';
  for i:=1 to Length(tmp) do
    s := s + ' ' + Format('%.2x', [ord(tmp[i])]);
  ShowMessage(IntToStr(Length(Memo1.Text)) + Lineending + s);
end;
wp_xyz
 
Beiträge: 2993
Registriert: 8. Apr 2011, 08:01

Beitragvon fliegermichl » 16. Sep 2019, 11:36 Re: suche ein wiki beitrag für if .... then

wp_xyz hat geschrieben:Hast du das ausprobiert? Das obige Beispiel hatte extra den Hinweis "Kein RETURN am Ende".



Ich hab ein Memo und einen Button in das Formular gepackt und deinen Code reinkopiert. Dann nach dem Programmstart händisch den Zeilenumbruch gelöscht und dann den Button angeklickt. Da war dann CRLR mehr hinten in der Ausgabe.
fliegermichl
Lazarusforum e. V.
 
Beiträge: 408
Registriert: 9. Jun 2011, 08:42
Wohnort: Echzell
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon wp_xyz » 16. Sep 2019, 11:44 Re: suche ein wiki beitrag für if .... then

ok, so meinst du das. Erscheint mir aber etwas realitätsfern. Wenn's unbedingt ein Memo für die Aufbewahrung der Dateinamen sein muss, dann ist Memo.Lines[index] auf jeden Fall sinnvoller als Memo.Text, auch wenn es nur 1 Zeile gibt.
wp_xyz
 
Beiträge: 2993
Registriert: 8. Apr 2011, 08:01

Beitragvon fliegermichl » 16. Sep 2019, 13:10 Re: suche ein wiki beitrag für if .... then

Da gebe ich dir recht.
fliegermichl
Lazarusforum e. V.
 
Beiträge: 408
Registriert: 9. Jun 2011, 08:42
Wohnort: Echzell
OS, Lazarus, FPC: Winux (L 2.0.7 FPC 3.04) | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon reiter » 16. Sep 2019, 17:01 Re: suche ein wiki beitrag für if .... then

na hey, Danke für die super Hilfe von Euch,
ich bin gerade das am umstellen auf ein Edit feld
hat mir sehr geholfen...
recht vielen Dank
reiter
 
Beiträge: 126
Registriert: 18. Nov 2017, 16:58

Beitragvon reiter » 17. Sep 2019, 17:15 Re: suche ein wiki beitrag für if .... then

also noch ein kleines Problem

auf dem MAC funktioniert das richtig gut.

Der Text wird erst eingelesen , wenn der Verbinden Button gedrückt wird, je nach dem welches Gerät angesprochen wird kommt es drauf an was dann in Edit15.Text steht.
als Beispiel steht einmal Bild drin oder wenn ein anderes Gerät gewählt wird, Foto, also variiert der Text im Editfeld.

Code: Alles auswählen
procedure TForm1.BildLoad;
begin
  if Edit15.Text=('Bild') then Image8.Picture.LoadFromFile('boxes/Bild.png');
  if Edit15.Text=('Foto') then Image8.Picture.LoadFromFile('boxes/Foto1.png');
end;


im Windows funktioniert das aber nicht.


die Funktion procedure Bildload; wird mit einer anderen Funktion mit eingelesen und sollte aber das Bild liefern (im Windows geht das nicht) weiß jemand warum?

danke
Zuletzt geändert von reiter am 17. Sep 2019, 17:40, insgesamt 3-mal geändert.
reiter
 
Beiträge: 126
Registriert: 18. Nov 2017, 16:58

Beitragvon m.fuchs » 17. Sep 2019, 17:20 Re: suche ein wiki beitrag für if .... then

Ich habe deinen Text jetzt dreimal gelesen und verstehe ihn immer noch nicht.

1.) Beschreibe bitte mit klaren Worten: Was machst du? Was passiert? Was sollte deiner Meinung nach passieren?

2.) Benutze bitte Satzzeichen und korrekte Großschreibung.

3.) Pack den relevanten Quellcode (mit Highlighter) dazu.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
Lazarusforum e. V.
 
Beiträge: 2126
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (Lazarus 2.0, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon reiter » 17. Sep 2019, 17:38 Re: suche ein wiki beitrag für if .... then

habe es nochmal etwas umgeschrieben.

danke
reiter
 
Beiträge: 126
Registriert: 18. Nov 2017, 16:58

Beitragvon Frank Ranis » 18. Sep 2019, 05:40 Re: suche ein wiki beitrag für if .... then

Hallo reiter ,

reiter hat geschrieben:also noch ein kleines Problem

auf dem MAC funktioniert das richtig gut.

Der Text wird erst eingelesen , wenn der Verbinden Button gedrückt wird, je nach dem welches Gerät angesprochen wird kommt es drauf an was dann in Edit15.Text steht.
als Beispiel steht einmal Bild drin oder wenn ein anderes Gerät gewählt wird, Foto, also variiert der Text im Editfeld.

Code: Alles auswählen
procedure TForm1.BildLoad;
begin
  if Edit15.Text=('Bild') then Image8.Picture.LoadFromFile('boxes/Bild.png');
  if Edit15.Text=('Foto') then Image8.Picture.LoadFromFile('boxes/Foto1.png');
end;


im Windows funktioniert das aber nicht.


die Funktion procedure Bildload; wird mit einer anderen Funktion mit eingelesen und sollte aber das Bild liefern (im Windows geht das nicht) weiß jemand warum?

danke


Linux / Unix benutzen andere Pfad-Trenner , in Windows wird '\' benutzt .
Lazarus hat zu diesem Zweck eine Konstante (DirectorySeparator) , die sich dem Betriebssytem automatisch anpasst .

Probier das mal so aus.
Code: Alles auswählen
 
  if Edit15.Text='Bild' then Image8.Picture.LoadFromFile('boxes'+DirectorySeparator+'Bild.png');
 


Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 155
Registriert: 24. Jan 2013, 21:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Dies und Das



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried