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. |
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 := ...
|
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';
|
AW: Pagecontrol übergreifend Daten ändern
Auf dem PageControl bzw. dessen TabSheets irgendwelche Events? Weil von alleine passiert das sicher nicht.
|
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.
|
AW: Pagecontrol übergreifend Daten ändern
Hast du mal ScreenShots? Ich kanns mir irgendwie nicht richtig vorstellen.
|
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:
aufzurufen.
Edit.HandleNeeded;
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. |
AW: Pagecontrol übergreifend Daten ändern
Zitat:
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:
Habe trotzdem versucht sie auf HandleNeeded aufzurufen, bringt aber auch nichts. :( |
AW: Pagecontrol übergreifend Daten ändern
Zitat:
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: |
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. |
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