Ich laboriere gerade an einem etwas merkwürdigen Problem.
Ich habe eine Hauptform wo zwei Integer-Variablen definiert werden, XSpinE und YSpinE.
Über einen Button wird eine zweite Form aufgerufen die zwei SpinEdits enthält, SpinEditX und SpinEditY.
Aufruf der zweiten Form:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm_Main.SpeedButton1Click(Sender: TObject); begin XSpinE := 5; YSpinE := 4; Form_Mapping.ShowModal; end; |
(XSpinE und YSpinE werden normalerweise in der Mainform aus einer Ini-Datei gelesen bzw. dort beim Programmende zurückgeschrieben, ich habe sie nur testweise oben kurz vor dem 'Form_Mapping.ShowModal' direkt mit Zahlenwerten belegt)
Im FormActivate der zweiten Form sollen die SpinEdits nun voreingestellt werden:
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm_Mapping.FormActivate(Sender: TObject); begin SpinEditX.Value := XSpinE; SpinEditY.Value := YSpinE; end; |
Merkwürdigerweise erscheint im SpinEditY aber immer 1, der Wert in SpinEditX ist korrekt.
Noch merkwürdiger aber: Vertausche ich XSpinE und YSpinE...
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm_Mapping.FormActivate(Sender: TObject); begin SpinEditX.Value := YSpinE; SpinEditY.Value := XSpinE; end; |
...dann erhält SpinEditX immer 1 und der Wert in SpinEditY ist korrekt!
Ja spinne ich jetzt? Wieso wird YSpinE nicht korrekt übergeben?
Gruss
Toenne
Edit:
Als Nachtrag noch der Hinweis dass das Schreiben in die Ini einwandfrei funktioniert. Im FormClose der zweiten Form wird YSpinE mit SpinEditY.Value belegt (YSpinE := SpinEditY.Value;), beim schliessen der Hauptform wird die Ini geschrieben. Habe ich SpinEditY von 1 auf irgendeinen anderen Wert geändert so erscheint der auch so in der Ini.