![]() |
XE3, Themes, Button bleibt markiert
Moin Leute,
Es gibt bei XE3 ja die einfache Möglichkeit Themes zu benutzen. (Projekt Optionen -> Anwendung -> Erscheinungsbild -> Benutzerdefinierte Stile...) Wenn ich nun einen von den Emba Stielen benutze und einfach mal 2-3 Buttons drauf klatsche. Jetzt noch bei Button1:
Delphi-Quellcode:
hinzufügen.procedure TForm1.Button1Click(Sender: TObject); begin Button1.Enabled:=false; sleep(100); Button1.Enabled:=true; end; Wenn man dann zur Laufzeit auf den Button1 klickt. Wird der ja farblich markiert. Klickt man dann auf Button2, wird Button2 farblich markiert und BLEIBT Button1 aber auch markiert! Wenn man keinen Benutzerdefinierten Stil benutzt verhält sich das ganze normal. Lasse ich das Enabled:=false /enabled:=true weg, verhält sich der Stil auch normal Update/Repaint usw, nach dem enabled true habe ich schon probiert ohne Erfolg Hat jemand schon ne Lösung / workaround für das Problem ? |
AW: XE3, Themes, Button bleibt markiert
Schuss ins Blaue: Passiert das auch, wenn du nicht in Button1Click Button1 manipulierst? Vielleicht kommt da was durcheinander, wenn man während der Ereignisbehandlung an den Innereien rumfuhrwerkt. :mrgreen:
|
AW: XE3, Themes, Button bleibt markiert
Nö dann gehts normal, hab ich aber auch unverständlich geschrieben :D
Liegt am Enabled true, false Klar ich kann auch
Delphi-Quellcode:
machen um eine erneute Ausführung von Button1 zu verhindern, aber wenn man den deaktiviert, weiss der User "button1 kann ich nicht anklicken"
procedure TForm1.Button1Click(Sender: TObject);
begin if Button1.Tag=1 then exit; Button1.Tag:=1; Sleep(100);//hier das, was button1 tuen soll Button1.Tag:=0; end; |
AW: XE3, Themes, Button bleibt markiert
Vielleicht kannst du eine Verzögerung einbauen, um das Problem zu umgehen: Schick in Button1Click nur eine benutzerdefinierte Message per PostMessage los und mach die eigentliche Arbeit im Messagehandler.
|
AW: XE3, Themes, Button bleibt markiert
Also die Lösung für die, die es interessiert oder das selbe Problem haben, ist:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Button1.Enabled:=false; sleep(100); Button1.Enabled:=true; Button1.SetFocus; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz