![]() |
alten Wert im TEdit-Feld anzeigen
Hallo,
ich hab die Forensuche schon benutzt, aber leider nichts gefunden. Ich zergrübel mir grad den Kopf über ein scheinbar einfaches Problem, komm aber absolut nicht auf die Lösung. Also, ich möchte ganz einfach den alten Wert (der Zwischendurch auf '1' geändert wird) im Edit-Feld anzeigen lassen.
Delphi-Quellcode:
Es geht um eine Combobox.
var AktText: string;
begin if Gebaeude.ItemIndex = 0 then begin AktText := HHStufe.Text; // der erfolglose Versuch das Problem zu lösen HHStufe.Text := '1'; HHStufe.Visible := false; end else begin HHStufe.Text := AktText; HHStufe.Visible := true; end; end; Das Edit-Feld soll den Wert von der Variable AktText haben, es sei denn Gebaeude.ItemIndex = 0, dann soll das Edit-Feld den Wert 1 haben. Wenn ich jetzt zum nächsten Item runterscrolle ist aber immernoch der Wert 1 da, anstatt der Wert davor. Beispiel. HHStufe.Text ist '5' Gebaeude.ItemIndex = 0 wird ausgewählt HHStufe.Text ist dann '1' Gebaeude.ItemIndex = 1 wird nun ausgewählt HHStufe.Text ist immernoch '1', soll aber wieder '5' sein. Klingt einfach, ich komm aber einfach nicht drauf :wall: Mfg Q-Dog |
Re: alten Wert im TEdit-Feld anzeigen
musst Du halt mal durch-debuggen, ob der else-Zweig überhaupt durchlaufen wird...
|
Re: alten Wert im TEdit-Feld anzeigen
jo wird er, visible klappt ja soweit.
Das Problem ist nur, dass die Variable AktText keinen Wert besitzt, sobald ItemIndex <> 0 ist (der Wert wird ja bei =0 zugewiesen) Aber ich find einfach keine Möglichkeit das zu umgehen. Mfg Q-Dog |
Re: alten Wert im TEdit-Feld anzeigen
Das Problem könnte eine fehlende bzw. falsche Initialisierung der Variable AktWert sein. Schade, dass du nicht schreibst, wann der von dir gezeigte Code ausgeführt wird. Ich vermute, dass er zum event handler OnChange() der ComboBox gehört. Die Variable AktWert ist dann eine lokale Variable und der Inhalt überlebt höchstens zufällig zwischen zwei Ausführungen des Codes. Alles Raterei, weil du die wichtigen Informationen unterschlägst.
Freundliche Grüße vom marabu |
Re: alten Wert im TEdit-Feld anzeigen
Mhmm..., irgendwie versteh ich dein Problem nicht so ganz.
In welchen Event-Handler schreibst du es denn? Wird ein Code überhaupt ausgeführt? Probiere es mal mit einer MessageDlg aus. Achja, dein Fehler ist, dass AktText den Wert '' bekommt, weil du hast zuerst AktText den Wert des Leeren Edits zugewiesen, und erst danach dem Edit den Wert '1'...
Delphi-Quellcode:
Greetz by Hux :dp:
var AktText: string;
begin if Gebaeude.ItemIndex = 0 then begin HHStufe.Text := '1'; // Hab mal die beiden hier vertauscht. AktText := HHStufe.Text; // nur so bekommt akttext den Wert '1' HHStufe.Visible := false; end else begin HHStufe.Text := AktText; HHStufe.Visible := true; end; end; |
Re: alten Wert im TEdit-Feld anzeigen
Zitat:
@HuxXx, ich habs mit absicht davor geschrieben, da AktText ja nicht '1' bekommen soll, sondern den Wert der vorher im Edit-Feld stand (z.B. 5 / 7 / 15 was auch immer). Mfg Q-Dog |
Re: alten Wert im TEdit-Feld anzeigen
Zitat:
marabu |
Re: alten Wert im TEdit-Feld anzeigen
ja du meinst, dass der Inhalt der Variable nur für die nächsten 2 Zeilen besteht, was ja auch logisch ist.
Doch dies ist ja genau meine Frage, ich komm absolut auf keine Möglichkeit dies zu ändern. Wenn ichs vor die Schleife schreibe, ist der Inhalt weiterhin '1'. Wenn ichs in die If-Schleife schreib, stirbt sie. Wenn ichs in die Else-Schleife pack, ist es logischerweise wieder '1'. Mfg Q-Dog |
Re: alten Wert im TEdit-Feld anzeigen
Hi,
das Problem ist ganz einfach, dass es eine lokale Variable ist und somit jedesmal, wenn OnClick bzw eben die entsprechende Prozedur aufgerufen wird, diese neu initalisiert wird. Pack die Variable in den Private-Abschnitt der entsprechenden Klasse -vermutlich Deine Form- und dann bleibt der Wert der Variablen auch nach Verlassen der Prozedur erhalten. Gruß Stephan :dance: |
Re: alten Wert im TEdit-Feld anzeigen
*gegenkopfklatsch*
natürlich, dankeschön :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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