AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

alten Wert im TEdit-Feld anzeigen

Ein Thema von Q-Dog · begonnen am 29. Mai 2006 · letzter Beitrag vom 29. Mai 2006
Antwort Antwort
Q-Dog

Registriert seit: 15. Okt 2005
24 Beiträge
 
#1

alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 10:39
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:
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;
Es geht um eine Combobox.
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



Mfg Q-Dog
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 11:00
musst Du halt mal durch-debuggen, ob der else-Zweig überhaupt durchlaufen wird...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Q-Dog

Registriert seit: 15. Okt 2005
24 Beiträge
 
#3

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 11:03
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 11:33
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
  Mit Zitat antworten Zitat
HuxXx
(Gast)

n/a Beiträge
 
#5

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 11:54
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:
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;
Greetz by Hux
  Mit Zitat antworten Zitat
Q-Dog

Registriert seit: 15. Okt 2005
24 Beiträge
 
#6

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 12:13
Zitat von marabu:
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
oh sry, hab ich vergessen mitzukopieren, es ist das OnClick Ereignis, nicht OnChange.


@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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 12:32
Zitat von Q-Dog:
es ist das OnClick Ereignis, nicht OnChange.
Der Fehler bleibt der selbe - eine (falsch initialisierte) lokale Variable. Schau mal genau hin.

marabu
  Mit Zitat antworten Zitat
Q-Dog

Registriert seit: 15. Okt 2005
24 Beiträge
 
#8

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 12:40
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
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#9

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 12:45
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
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Q-Dog

Registriert seit: 15. Okt 2005
24 Beiträge
 
#10

Re: alten Wert im TEdit-Feld anzeigen

  Alt 29. Mai 2006, 12:59
*gegenkopfklatsch*

natürlich, dankeschön
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz