![]() |
Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Moin und vorweihnachtliche Grüsse!
Habe folgendes Problem und komme wieder mal nicht weiter.. Es existiert eine GroupBox, in der einige Labels, EditBoxen und Buttons sind.. Das ganze ist normalerweise sichtbar, aber nicht veränderbar (Erst nach eingabe eines Passworts wird Groupbox1.Enabled auf True gesetzt) Dann gibts ja das OnClick.Ereignis... Ist Groupbox1.Enabled auf False, wird kein OnClick ausgelöst.. Möchte aber, wenn jemand auf diese GroupBox klickt einen kurzen Warntext (Label) anzeigen... Wie kriege ich also den OnClick auf GroupBox1 hin, obwohl GroupBox1.Enabled False ist?? :( |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Lass die GroupBox enabled und setze alle Elemente in der GroupBox auf enabled := false.
|
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
jaaaa...
das ist ne Lösung, aber weder elegant noch sinnvoll.. bläht nur den Quelltext auf und gibt dem FehlerTeufel(Ihhh) genug Gelegenheit sich einzuschleichen Es muss doch möglich sein, as Onklick-Ereignis dieser GroupBox zu überschreiben.. P.S. Ich hab auch keine Ahnung..... :lol: |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Leg doch ein anderes Control (Label, Panel, andere Groupbox) über die erste Groupbox drüber, solange diese disabled ist.
Bei enable schickst Du das zweite Control in den Hintergrund. |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Guck im OnMouseUp der Form, ob innerhalb der Gropubox geklickt wurde.
|
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
@Luckie:
onMouseUp funktioniert leider auch erst wenn...Enabled @All: Die Lösung von RavenIV ist machbar und funkioniert auch.. aber das muss noch eleganter gehen.... :roteyes: |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Zitat:
|
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
ahh...
hab da was überlesen... OnMouseUp der Form teste ich mal.. melde mich wieder |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Schei...ade
scheint nicht so zu funzen...
Delphi-Quellcode:
nur zur Erklärung:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin If Sender=GroupBox1 then begin Label36.Visible:=True; Label36.BringToFront; Timer2.Enabled:=True; end; end; Timer2 sollte bei OnTimer Label36.Visible wieder auf False setzen.. aber: Keinerlei Reaktion |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Hi,
versuche es mal im onClick Ereignis des Formulars:
Delphi-Quellcode:
Das funktioniert anscheinend nur, wenn sich die Groupbox direkt auf dem Formular befindet.
procedure TForm1.FormClick(Sender: TObject);
begin if ControlAtPos(ScreenToClient(mouse.CursorPos), true, true)= Groupbox1 then showmessage('Warnung'); end; |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
@Bitsetter:
Ja, das ist richtig, die GroupBox befindet sich auf TabSheetXXX eines PageControl's.. Zitat:
werde aber deinen Code gleich mal pro-Bieren :lol: |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Zitat:
Delphi-Quellcode:
EDIT:
procedure TForm1.TabSheetXXXMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if TabSheetXXX.ControlAtPos(TabSheetXXX.ScreenToClient(mouse.CursorPos), true, true)= Groupbox1 then showmessage('Warnung'); end;
Delphi-Quellcode:
würde im onMouseUp Ereignis natürlich auch reichen.
if TabSheetXXX.ControlAtPos(Point(X, Y), true, true)= Groupbox1 then
|
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Jau... Klasse..
Das funzt perfekt Lass mir den Code noch durch den Kopf gehen, denn ehrlichgesagt vesteh ichs noch nicht so ganz aber trotzdem haut das Ganze hin
Delphi-Quellcode:
Problem gelöst..
procedure TForm1.TabSheet6MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if TabSheet6.ControlAtPos(TabSheet6.ScreenToClient(mouse.CursorPos), true, true)= Groupbox1 then begin Label36.Visible:=True; Label36.BringToFront; Timer2.Enabled:=True; end; if TabSheet6.ControlAtPos(TabSheet6.ScreenToClient(mouse.CursorPos), true, true)= Groupbox3 then begin Label36.Visible:=True; Label36.BringToFront; Timer2.Enabled:=True; end; if TabSheet6.ControlAtPos(TabSheet6.ScreenToClient(mouse.CursorPos), true, true)= Groupbox4 then begin Label36.Visible:=True; Label36.BringToFront; Timer2.Enabled:=True; end; end; Dank an bitsetter und alle anderen!! Grüsse PinkFloydFan aus SR!! Lasst euch viel und vor allen Dingen was Schönes schenken... |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Irre ich mich, oder steht bei den drei if überall das gleiche drin?
Warum nimmst Du denn nicht if ... or ... or ... then?
Delphi-Quellcode:
if (... = Groupbox1) or (... = Groupbox3) or (... = Groupbox4) then
begin ... ... ... end; |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
ja, du irrst..
GroupBox1 Groupbox3 Groupbox4 ... es gibt ja noch mehrere (labels, EditBbox'en usw) und überhaupt: verschachtelte If..Then Abfragen sind nicht so mein Ding.. :P Das is gut so, und für das was ich vorhabe reicht das allemale... Andere Frage: Wie erkläre ich diesen Thread als beendet????? :?: |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Du kannst das aber auch so schreiben:
Delphi-Quellcode:
if (TabSheet6.ControlAtPos(TabSheet6.ScreenToClient(mouse.CursorPos), true, true))= Groupbox1)
or (TabSheet6.ControlAtPos(TabSheet6.ScreenToClient(mouse.CursorPos), true, true))= Groupbox3) or (TabSheet6.ControlAtPos(TabSheet6.ScreenToClient(mouse.CursorPos), true, true))= Groupbox4) then begin Label36.Visible:=True; Label36.BringToFront; Timer2.Enabled:=True; end; |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Zitat:
Am einfachsten schreibst Du: "Danke an alle. Problem gelöst." |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
Zitat:
Aber meinen Code wollte er nicht... |
Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
ach. jetzt seid doch nich sooo.
mei Prob ist gelöst, den Rest meines Quelltextes wisst ihr nicht ... den müsst ihr auch mir überlassen.... und die Lösungen von xX0815Xx oder auch von RavenIV sind beide gleich gut.. nur das war nicht die Frage... (jeder löst seine Probleme anders: der eine wirft sich vor'n Zug der andere hängt sich auf...) Meine Frage ist gelöst und deshalb (mit RavenIV's Worten): Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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