beim wieder aktivieren klick auf Bild auslösen ?
Hallo Leute ..
mal kurze Erklärung .. ich hab ein Form mit bsNone nur mit ein Bild drauf und das Form selbst durch Farbe transparent .. sprich man sieht nur das Bild das Programm schaut nun per Timer etwas nach .. und bei bestimmten Ereignis bringt es sich selber in Vordergrund und bleibt auch im Vordergrund .. das Bild hat als Onclick eine Routine. jetzt kommts .. wenn jetzt der Benutzer etwas anderes am PC noch macht .. sozusagen die Application den Focus verliert und der Benutzer jetzt auf das Bild klicken will um das onclick aus zu lösen passiert erst mal nichts sondern erst beim 2. Klick da der erste Klick nur den Focus gibt. Wie bekomme ich das hin, das gleich beim Focus übergeben das mit auszulösen ? Timage hat kein OnActivate ? evtl jemand eine Idee ? Gege |
AW: beim wieder aktivieren klick auf Bild auslösen ?
Aber die Formularklasse oder die Application
|
AW: beim wieder aktivieren klick auf Bild auslösen ?
da hab ich es schon versuchsweise rein gepackt
aber die wird nicht ausgelöst . ich denke weil das Bild angeklickt wird und nicht das Form .. |
AW: beim wieder aktivieren klick auf Bild auslösen ?
wie komm ich eigentlich zum event von der application .. hattest Du ja auch erwähnt ..? hmm
hab da gerade eine Denklücke |
AW: beim wieder aktivieren klick auf Bild auslösen ?
Du musst das im Code setzen:
Delphi-Quellcode:
Application.onActivate := <Eventmethode>; //TNotifyEvent
|
AW: beim wieder aktivieren klick auf Bild auslösen ?
Oder das OnActivate der Form?
Zitat:
|
AW: beim wieder aktivieren klick auf Bild auslösen ?
vielen Dank soweit für Eure Hinweise
ich bin dadurch auch schon ein Schritt weiter .. aber irgendwie löst es mir das Event schon nur beim drüber gehen mit Maus aus .. so wie ein MouseOver im WEB .. hab ich da was falsch ? .. ich hatte mich dann nach weiten suchen an den post etwas orientiert.. und hab nur das
Code:
genommen..
OnActivate:=ApplicationActivate;
und dann
Code:
aber so richtig ist da die Anwendung da ja noch nicht aktiv ..
procedure Tform1.ApplicationActivate(Sender: TObject);
aktiv wird sie ja erst beim drauf klicken .. @himitsu das Form OnActivate hab ich schon probiert .. da kommt er nicht rein .. ich denk weil es eigentlich auch nicht zu sehen ist(transparent) und wird deswegen ja auch nicht aktiviert.. |
AW: beim wieder aktivieren klick auf Bild auslösen ?
Zitat:
Wenn ich bei einer nicht-aktiven Anwendung auf ein TImage klicke, dann kommen bei mir diese Ereignisse rein: Image1.OnMouseActivate // k.A. seit wann es Diese gibt -> WM_MOUSEACTIVATE CM_MOUSEACTIVATE Form.OnMouseActivate ApplicationEvents1.OnActivate Image1.OnClick Also OnClick wird ebenfalls aufgerufen. Wenn das bei dir nicht ist, dann muß sich irgendwas verändert haben, entweder durch dich oder in der VCL, gegenüber einer ganz stinknormalen Standardanwendung (XE3/XE7). Und bei Allem, was nicht Standard ist, da kommt man ohne eine reproduzierbares Testszenario oder eine Testanwendung nicht umher. TestCode:
Delphi-Quellcode:
procedure TForm24.ApplicationEvents1Activate(Sender: TObject);
begin Memo1.Lines.Add('ApplicationEvents1.OnActivate'); end; procedure TForm24.ApplicationEvents1Deactivate(Sender: TObject); begin Memo1.Lines.Add('ApplicationEvents1.OnDeactivate'); end; procedure TForm24.FormActivate(Sender: TObject); begin Memo1.Lines.Add('Form.OnActivate'); end; procedure TForm24.FormClick(Sender: TObject); begin Memo1.Lines.Add('Form.OnClick'); end; procedure TForm24.FormMouseActivate(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y, HitTest: Integer; var MouseActivate: TMouseActivate); begin Memo1.Lines.Add('Form.OnMouseActivate'); end; procedure TForm24.FormMouseEnter(Sender: TObject); begin //Memo1.Lines.Add('Form.OnMouseEnter'); end; procedure TForm24.FormMouseLeave(Sender: TObject); begin //Memo1.Lines.Add('Form.OnMouseLeave'); end; procedure TForm24.Image1Click(Sender: TObject); begin Memo1.Lines.Add('Image1.OnClick'); end; procedure TForm24.Image1MouseActivate(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y, HitTest: Integer; var MouseActivate: TMouseActivate); begin Memo1.Lines.Add('Image1.OnMouseActivate'); end; procedure TForm24.Image1MouseEnter(Sender: TObject); begin //Memo1.Lines.Add('Image1.OnMouseEnter'); end; procedure TForm24.Image1MouseLeave(Sender: TObject); begin //Memo1.Lines.Add('Image1.OnMouseLeave'); end; |
AW: beim wieder aktivieren klick auf Bild auslösen ?
aaarg ich hab den Fehler gefunden .. :(
das ist in meiner TForm1.Image1MouseMove procedure um das Form zu verschieben (BILD ohne Form) hab ich da drinnen
Code:
hmmm und das wirft alles etwas ducheinander ..
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, $F012, 0); sonst klappt das auch mit den application.onactivate wie löse ich das denn jetzt nur das als combi .. *grübel* |
AW: beim wieder aktivieren klick auf Bild auslösen ?
Liste der Anhänge anzeigen (Anzahl: 2)
Mit einer Maus-Bewegung das Fenster zu aktivieren ist einfach:
Delphi-Quellcode:
procedure TForm1.Image1MouseEnter(Sender: TObject);
begin mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz