![]() |
Delphi-Version: 2010
Strings vergleichen?
Guten Tag,
ich vergleiche im Moment 2 Edit Felder, und wenn das Edit2 Feld ungleich ist mit dem ersten soll ein Befehl ausgeführt werden was in dem Button2 steht, hier der Code der funktioniert :
Code:
Nun möchte ich aber, das die zwei edit Felder verschwinden und der Button2 auch, um Ressourcen zu sparen ich habe mir es so gedacht :
var
befehl: string; begin befehl := 'randomblablablablabla'; edit1.Text := befehl; if edit1.Text = edit2.Text then begin end else begin edit2.Text := befehl; button2.Click; end;
Code:
Leider funktioniert das nicht.
var
befehl1,befehl2: string; begin befehl1 := 'randomblablablablabla'; if befehl1 = befehl2 then begin end else begin befehl1 := befehl2 //CODE// end; |
AW: Strings vergleichen?
Was funktioniert denn nicht?
Delphi-Quellcode:
Verkürzt könnte man das auch schreiben
var
befehl1, befehl2 : string; begin befehl1 := 'randomblablablablabla'; if befehl1 = befehl2 then begin // Das hier wird NIEMALS ausgeführt, da befehl2 bis dato noch niemals etwas zugewiesen bekommen hat end else begin befehl1 := befehl2 //CODE// end; end;
Delphi-Quellcode:
BTW es gibt 2 Code-Tags
var
befehl1 : string; begin befehl1 := 'randomblablablablabla'; //CODE// end;
Code:
procedure CodeTag;
begin end;
Delphi-Quellcode:
procedure DelphiTag;
begin end; |
AW: Strings vergleichen?
Der Befehl wird nicht ausgeführt.
Er soll den Befehl nur ausführen, wenn Befehl1,Befehl2 ungleich sind. |
AW: Strings vergleichen?
Ich bin mir zu 99.9% sicher das der else-Teil ausgeführt wird.
Woher weißt du, das es nicht so ist? |
AW: Strings vergleichen?
Dann mal auf die harte Tour
Nimm mal den Code führ das aus und sag uns, welche Nachricht du auf dem Bildschirm siehst( THEN oder ELSE)
Delphi-Quellcode:
var
befehl1, befehl2 : string; begin befehl1 := 'randomblablablablabla'; if befehl1 = befehl2 then begin ShowMessage( 'THEN' ); end else begin ShowMessage( 'ELSE' ); befehl1 := befehl2 //CODE// end; end; |
AW: Strings vergleichen?
Entschuldigen Sie, habe mich glaube ich falsch ausgedrückt.
Ich will das kein Befehl ausgeführt wird bei dem [DP] if befehl1 = befehl2 then begin end [/DP] Und der Befehl nicht doppelt ausgeführt wird bei dem nächsten Teil. Befehl soll nur einmal ausgeführt werden, bis der Befehl wieder geändert wird. |
AW: Strings vergleichen?
Dann setze einen Flag.
|
AW: Strings vergleichen?
Aber eine lokalen Variable einer procedure hat eine sehr kurze Lebensdauer.
Wird die procedure wieder verlassen ist der Inhalt futsch. Somit geht das so nicht |
AW: Strings vergleichen?
Hmm, wie kann ich es dann regeln das es ressourcenschonender ist ? Oder geht es nicht?
|
AW: Strings vergleichen?
Irgendwie ist es mir ein Rätsel was du genau machen willst. Wo wird befehl2 abgefüllt? Ich vermute du meinst sowas:
Delphi-Quellcode:
Nur macht das keinen Sinn, da befehl2 ja in diesem Code immer leer ist und somit auch die Bedingung immer True ist und dann befehl1 auch auf "leer" gesetzt wird. Versuche doch bitte mal dein Problem und was du genau machen willst genauer zu beschreiben.
var
befehl1,befehl2: string; begin befehl1 := 'randomblablablablabla'; if befehl1 <> befehl2 then begin befehl1 := befehl2 //CODE// end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz