Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Onclick -Ereignis trotz Enabled-Eigenschaft False??ß (https://www.delphipraxis.net/105355-onclick-ereignis-trotz-enabled-eigenschaft-false-ss.html)

PinkFloydFan 20. Dez 2007 12:01


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?? :(

Muetze1 20. Dez 2007 12:28

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Lass die GroupBox enabled und setze alle Elemente in der GroupBox auf enabled := false.

PinkFloydFan 20. Dez 2007 12:35

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:

RavenIV 20. Dez 2007 12:37

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.

Luckie 20. Dez 2007 12:38

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Guck im OnMouseUp der Form, ob innerhalb der Gropubox geklickt wurde.

PinkFloydFan 20. Dez 2007 12:47

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:

Luckie 20. Dez 2007 12:48

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Zitat:

Zitat von PinkFloydFan
@Luckie:

onMouseUp funktioniert leider auch erst wenn...Enabled

Und das Formular bekommt keine MouseUp Nachricht?

PinkFloydFan 20. Dez 2007 12:50

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
ahh...

hab da was überlesen...

OnMouseUp der Form

teste ich mal..


melde mich wieder

PinkFloydFan 20. Dez 2007 12:58

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Schei...ade

scheint nicht so zu funzen...

Delphi-Quellcode:
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;
nur zur Erklärung:
Timer2 sollte bei OnTimer Label36.Visible wieder auf False setzen..


aber: Keinerlei Reaktion

bitsetter 20. Dez 2007 13:12

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Hi,

versuche es mal im onClick Ereignis des Formulars:
Delphi-Quellcode:
procedure TForm1.FormClick(Sender: TObject);
begin
  if ControlAtPos(ScreenToClient(mouse.CursorPos), true, true)= Groupbox1 then
    showmessage('Warnung');
end;
Das funktioniert anscheinend nur, wenn sich die Groupbox direkt auf dem Formular befindet.

PinkFloydFan 20. Dez 2007 13:23

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
@Bitsetter:

Ja, das ist richtig, die GroupBox befindet sich auf TabSheetXXX eines PageControl's..


Zitat:

Das funktioniert anscheinend nur, wenn sich die Groupbox direkt auf dem Formular befindet.

werde aber deinen Code gleich mal pro-Bieren :lol:

bitsetter 20. Dez 2007 13:37

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Zitat:

Zitat von PinkFloydFan
Ja, das ist richtig, die GroupBox befindet sich auf TabSheetXXX eines PageControl's..

Dann musst du den Code wohl im onMouseUp Ereignis von TabSheetXXX machen:
Delphi-Quellcode:
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;
EDIT:
Delphi-Quellcode:
if TabSheetXXX.ControlAtPos(Point(X, Y), true, true)= Groupbox1 then
würde im onMouseUp Ereignis natürlich auch reichen.

PinkFloydFan 20. Dez 2007 13:51

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:
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;
Problem gelöst..

Dank an bitsetter und alle anderen!!

Grüsse
PinkFloydFan aus SR!!

Lasst euch viel und vor allen Dingen was Schönes schenken...

RavenIV 20. Dez 2007 13:55

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;

PinkFloydFan 20. Dez 2007 13:58

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????? :?:

Aurelius 20. Dez 2007 14:11

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;

RavenIV 20. Dez 2007 14:12

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Zitat:

Zitat von PinkFloydFan
Andere Frage:

Wie erkläre ich diesen Thread als beendet????? :?:

Kannst Du nicht, das kann nur ein Admin.
Am einfachsten schreibst Du:
"Danke an alle.
Problem gelöst."

RavenIV 20. Dez 2007 14:13

Re: Onclick -Ereignis trotz Enabled-Eigenschaft False??ß
 
Zitat:

Zitat von xX0815Xx
Du kannst das aber auch so schreiben:
Delphi-Quellcode:
  ...

Ist doch nix anderes, wie ich auch geschrieben habe.
Aber meinen Code wollte er nicht...

PinkFloydFan 20. Dez 2007 14:30

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:

"Danke an alle. Problem gelöst."


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