![]() |
onClick und onMouseOver benutzen
Hi folks,
wenn man beide Ereignisse verarbeiten will wie muss man es anstellen, dass zwischen beiden unterschieden wird? Wenn ich beiden eine funktion zuweise wird nur onmouseover verarbeitet, das onclick-ereigniss wird ignoriert. Trotz das ich dem onmousedown das Shift-attribut zugewiesen habe... Hintergund: Onclick soll eine Aktion starten, mit mousedown soll das verschieben der kompo aktiviert werden. Grüßle |
Re: onClick und onMouseOver benutzen
ich verstehe dein problem nicht so ganz...
willst du dem OnClick und dem OnMouseDown die gleiche prozedur zuweisen oder iwie? also wenn du eine OnClick und eine OnMouseDown haben willst machst du im Objectinspector bei der registerkarte "Ereignisse" einfach einen doppelklick auf das entsprechende ereignis... de rest übernimmt die IDE für dich... vielleicht kannst du dein problem noch etwas genauer beschreiben, denn ich kann ehrlich gesagt überhaupt nichts damit anfangen... gruß |
Re: onClick und onMouseOver benutzen
das sind zwei verschiedene proceduren
onclick löst das eine aus zB. eine berechnung, onmousedown aktiviert das verschieben des buttons.... |
Re: onClick und onMouseOver benutzen
Erst (beim runterdrücken der Maustaste) wird onMousedown ausgeführt und wenn die Maustaste wieder losgelassen wird kommt onClick.
Edit: :gruebel: geht es jetzt um mousedown oder um mouseover? |
Re: onClick und onMouseOver benutzen
Ich nehm an es geht um MouseDown.
Man könnte das ganze mit einem Flag lösen. Im Mousedown auf TRUE setzen, im MouseMove
Delphi-Quellcode:
und dann im Click prüfen
if Flag then Flag := false
Delphi-Quellcode:
if Flag then...
|
Re: onClick und onMouseOver benutzen
Hallo,
Zitat:
Gruß xaromz |
Re: onClick und onMouseOver benutzen
:warn: Könnten wir mal kurz klären, über welche Ereignisse wir reden und warum? Das macht mich doch etwas verwirrt hier :drunken:
|
Re: onClick und onMouseOver benutzen
@ xaromz: Ich weiß, das geht doch aus so, oder? Wird die Maus bewegt wird das FLAG auf FALSE gesetzt, so dass das OnClick ereignis nicht ausgeführt wird. Wenn die Maus nicht bewegt wird wird die Click-Prozedure ausgeführt. Die Überlegung sollte doch passen...
@ sirius: Es geht imho darum dass beim Click auf den Button was ausgeführt werden soll, man den Button aber auch auf der Oberfläche verschieben kann (dann soll die Click-Prozedur nicht ausgeführt werden) |
Re: onClick und onMouseOver benutzen
Hallo Leute und Euch allen ein gesundes neues Jahr!
Zitat:
aber das onclick überhaupt nicht. Habe das mit Rückgabe wert kontrolliert. Auszug aus dem oncreate des Buttons:
Delphi-Quellcode:
dann
aLabel.OnClick:=p1_1Click;
aLabel.OnMouseDown:=verschiebebutton; aLabel.OnMouseUp:=speicherposition;
Delphi-Quellcode:
dann speichern
procedure TKasse.verschiebebutton(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin if ssLeft in Shift then begin with (Sender as TXiButton) do begin ReleaseCapture; Perform(WM_SYSCOMMAND, $F012, 0); end; end; end;
Delphi-Quellcode:
das onlick erspar ich mir jetzt.
procedure TKasse.speicherposition(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin with (Sender as TXiButton) do begin t1_quer.Close; t1_quer.SQL.Clear; t1_quer.SQL.Add('UPDATE k_artdb SET'); t1_quer.SQL.Add('SETLEFT='+IntToStr(Left)+','); t1_quer.SQL.Add('SETTOP='+IntToStr(Top)+' '); t1_quer.SQL.Add('WHERE id='+IntToStr(TComponent(Sender).Tag)+''); t1_quer.ExecSQL; Showmessage('!'); end; end; Vielen Dank Leute |
Re: onClick und onMouseOver benutzen
Hast du meinen Tipp mal ausprobiert?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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