Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Pagecontrol übergreifend Daten ändern (https://www.delphipraxis.net/182790-pagecontrol-uebergreifend-daten-aendern.html)

cooki 18. Nov 2014 13:02

Pagecontrol übergreifend Daten ändern
 
Hey :)
Ich schreibe mir momentan einen Editor, der eine Pagecontrol mit 2 Tabs benutzt. Auf der zweiten Seite habe ich 3 Edit-Felder, in die beim starten des Programms Werte hineingeladen werden (Oder zur Not mit einem Test-Button).
Wenn ich nun Auf den Testbutton auf der ersten Page drücke, wird der Wert '123' in einer der Edit-Felder geladen. Zur Kontrolle habe ich mir auch den Wert des Feldes als Form.Caption ausgeben lassen.
Jetzt kommt das Problem:
Wenn ich auf die zweite Page wechsel, sind die Werte verschwunden und es steht wieder 0 in den Edit-Feldern drin. Klicke ich zuerst auf Page 2 und gehe zurück auf Page 1 um den Button zu drücken, funktioniert es einwandfrei. Aus irgendeinem Grund muss ich die zweite Seite erst einmal offen gehabt haben damit die Daten darin auch stehen bleiben.
Ich weiß wirklich nicht wie ich das Problem lösen kann. Ich hoffe hier kann mir jemand helfen.

himitsu 18. Nov 2014 13:06

AW: Pagecontrol übergreifend Daten ändern
 
Welche IDE benutzt du? (Delphi-/Lazarus-Verison)

Sind das spezielle Edit-Felder? (TEdit oder so ... das "steht wieder 0 drin" verwirrt mich etwas)

Wie weißt du den Wert zu? (
Delphi-Quellcode:
Edit.Text := ...
?)

cooki 18. Nov 2014 13:11

AW: Pagecontrol übergreifend Daten ändern
 
Ich benutze Delphi 2010.
Ich benutze einfach TEdit, mit einem max-wert von 255 und min-wert von 0.
Den Wert packe ich tatsächlich so hinein:
Delphi-Quellcode:
Edit.Text := '123';

Der schöne Günther 18. Nov 2014 13:35

AW: Pagecontrol übergreifend Daten ändern
 
Auf dem PageControl bzw. dessen TabSheets irgendwelche Events? Weil von alleine passiert das sicher nicht.

cooki 18. Nov 2014 13:38

AW: Pagecontrol übergreifend Daten ändern
 
Jap, ich habe ein Event für das Wechseln der Seiten und anfangs dachte ich noch daran könnte es liegen. Aber dann habe ich den gesamten Code im Event auskommentiert und trotzdem passiert es.

baumina 18. Nov 2014 13:53

AW: Pagecontrol übergreifend Daten ändern
 
Hast du mal ScreenShots? Ich kanns mir irgendwie nicht richtig vorstellen.

himitsu 18. Nov 2014 13:54

AW: Pagecontrol übergreifend Daten ändern
 
Ahh, dann hast du doch bestimmt NumbersOnly auf True gesetzt?


Versuch mal am Ende des Constructors (OnCreate), oder spätestens vor dem ersten Zuweisen einmal
Delphi-Quellcode:
Edit.HandleNeeded;
aufzurufen.

Der Status Edit.NumbersOnly wird nur zugewiesen, wenn das interne Control exisitert.
Es kann sein, daß GWL_STYLE/ES_NUMBER beim erstens Setzen, während des späteren Erstellens/Anzeigens, den Inhalt löscht.


Alternativ das TSpinEdit ausprobieren.

cooki 18. Nov 2014 14:06

AW: Pagecontrol übergreifend Daten ändern
 
Zitat:

Zitat von baumina (Beitrag 1280200)
Hast du mal ScreenShots? Ich kanns mir irgendwie nicht richtig vorstellen.

1. Neu gestarteter Editor: http://i.imgur.com/fQXvg70.png
2. Datei geladen: http://i.imgur.com/OH1eRtf.png (Man beachte die 50 als Form.Caption, so wie es sein soll)
3. Page gewechselt: http://i.imgur.com/bufdYiN.png (Die 50 wird zur 0 und die Edit Felder sind leer, bzw. 0)

Wenn ich den Vorgang wiederhole, aber vor dem Laden der Datei auf Page 2 war, passiert der Fehler nicht.


Zitat:

Zitat von himitsu (Beitrag 1280201)
Ahh, dann hast du doch bestimmt NumbersOnly auf True gesetzt?


Am Ende des Constructor (OnCreate), oder spätestens vor dem ersten Zuweisen mal
Delphi-Quellcode:
Edit.HandleNeeded;
aufrufen.

Der Status Edit.NumbersOnly wird nur zugewiesen, wenn das interne Control exisitert.
Es kann sein, daß GWL_STYLE/ES_NUMBER beim erstens Setzen, während des späteren Erstellens/Anzeigens, den Inhalt löscht.

Ich erstelle die nicht während der Laufzeit. Und auf NumbersOnly sind sie auch nicht gesetzt.
Habe trotzdem versucht sie auf HandleNeeded aufzurufen, bringt aber auch nichts. :(

himitsu 18. Nov 2014 14:18

AW: Pagecontrol übergreifend Daten ändern
 
Zitat:

Zitat von cooki (Beitrag 1280205)
Ich erstelle die nicht während der Laufzeit. Und auf NumbersOnly sind sie auch nicht gesetzt.

Du nicht, aber Delphi/Windows. :zwinker:

Und warum nicht? Wo doch nur Zahlen drin sein sollen. :angel:


OK, TUpDown hast du natürlich verheimlicht.
Weiße deine Werte diesen Komponenten zu und nicht den Edits. :zwinker:

cooki 18. Nov 2014 14:26

AW: Pagecontrol übergreifend Daten ändern
 
Naja war mir zu umständlich das während der Laufzeit zu machen :)

Wie kann ich denn einem TUpDown einen Wert zuweisen?

EDIT: Habs mit Position gemacht, hoffe das ist so richtig :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.
Seite 1 von 2  1 2      

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