embarcadero c++ builder: TButton/Caption probelm
-
Heyho,
ich benutze den Compiler EmbarcaderoC++Builder
XE Version 15 und habe da ein Problem mit TButton.
Ich verwende einen Button der mehrere Funktionen ausführt. Am Anfang Startet der Button einen Ablauf. Dieser Ablauf unterbricht an bestimmten Stellen und der User muss eine Eingabe tätigen. Wenn die Eingabe getätigt wird, wird der selbe Button benutzt um den Ablauf vorzuführen. Der Ablauf kann durch einen anderen Button abgebrochen werden und mit dem Start Button wieder von vorne gestartet werden. So weit die Funktion, nun zu dem Problem:
Ich ändere das Catpion dieses einen Buttons. Am Anfang heißt das Caption „Start“ und ändert sich dann auf „Weiter“. Um dann verschiedene Funktionen ausführen zu können frage ich das Caption ab. Das Ändern des Caption funktioniert aber nicht wirklich, folgende Szenarien sind möglich:• Caption ändert sich schnell und korrekt (so wie es sein soll)
• Cpation ändert sich sehr langsam, es „faded“
• Caption ändert sich von „Weiter“ zu „Start“ und dann sofort wieder auf „Weiter“
• Caption ändert sich gar nichtIrgendwie scheint mit das ein Compiler Problem zu sein, dasselbe Problem habe ich nämlich auch beim Ändern des Caption bei TLabel.
Ich hoff ich konnte das Problem gut und verständlich erläutern. Wenn etwas zu laienhaft geschrieben ist bitte ich dies zu entschuldigen, das ist mein erstes Projekt
Bin für jede Hilfe dankbar.//edit
ich seh grad, dass das wohl das falsche Forum ist? http://www.c-plusplus.net/forum/viewforum.php?f=3 ist glaube ich das Richtige
-
chris555 schrieb:
//edit
ich seh grad, dass das wohl das falsche Forum ist? http://www.c-plusplus.net/forum/viewforum.php?f=3 ist glaube ich das RichtigeIch glaube nicht das du damit richtig liegst, ich gehe von Fehlern im Code (bzw. Verständnisfehlern aus), dazu aber gleich mehr.
-
chris555 schrieb:
Ich verwende einen Button der mehrere Funktionen ausführt.
Kannst du natürlich machen, ist meines Erachtens aber nicht sonderlich intuitiv.
Grundsätzlich solltest du aber bedenken, das wenn ein aufwendiger Prozess läuft, die UI-Aktualisierung zurück steckt (Und man dann die Aktualisierung manuell anstoßen sollte).
chris555 schrieb:
Cpation ändert sich sehr langsam, es „faded“; Caption ändert sich gar nicht
Kann an oben genannten liegen.
chris555 schrieb:
Caption ändert sich von „Weiter“ zu „Start“ und dann sofort wieder auf „Weiter“
Hier würde ich eher auf Logikfehler in deinem Programm tippen.
chris555 schrieb:
Irgendwie scheint mit das ein Compiler Problem zu sein...
Mit nahezu 100%iger Wahrscheinlichkeit schließe ich das aus.
-
Habe eben nochmal ein bisschen rumprobiert. Wenn ich den Vorgang abbreche und dann warte (nichts weiter mache) dann ändert sich das Cpation korrekt ("Weiter" auf "Start"). Wenn ich aber den Vorgang abbreche und sofort auf den TButton klicke ändert sich das Caption nicht ("Weiter" bleibt "Weiter").
Wobei, du scheinst recht zu haben mit dem Code Problem. Wenn Ich den Button klicke wärend das Caption noch auf "Weiter" steht wird ja eine andere Funktion ausgeführt und evtl. das Umschreiben des Caption übergangen.
Okay danke erstmal, muss ich mal schaun wie ich das am besten löse
-
So wie ich das verstanden habe hast du einen Button den du nacheinander für verschiedene Sachen verwenden willst. Momentan versuchst du auszulesen welchen stand die Anwendung hat in dem du die Caption des Button modifizierst, was nicht immer klappt.
Wie währe es wenn du dir statdessen global ne Integer definierst, deren Wert du abfragst und veränderst? Das hätte auch noch den vorteil, das du sehr viele mögliche zwischenschritte hast.
-
mach direkt nach setzen der Caption ein Refresh() auf den Button!
Gruss
frank
-
Sollte eigentlich gehen. Zeig mal Code.