AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi beim wieder aktivieren klick auf Bild auslösen ?
Thema durchsuchen
Ansicht
Themen-Optionen

beim wieder aktivieren klick auf Bild auslösen ?

Ein Thema von Gege · begonnen am 14. Feb 2015 · letzter Beitrag vom 15. Feb 2015
Antwort Antwort
Seite 1 von 2  1 2      
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#1

beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 17:47
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
Gerd
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 17:56
Aber die Formularklasse oder die Application
Markus Kinzler
  Mit Zitat antworten Zitat
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#3

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 18:03
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 ..
Gerd
  Mit Zitat antworten Zitat
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#4

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 19:23
wie komm ich eigentlich zum event von der application .. hattest Du ja auch erwähnt ..? hmm
hab da gerade eine Denklücke
Gerd
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 19:48
Du musst das im Code setzen:
Application.onActivate := <Eventmethode>; //TNotifyEvent
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.121 Beiträge
 
Delphi 12 Athens
 
#6

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 20:04
Oder das OnActivate der Form?

Du musst das im Code setzen:
Application.onActivate := <Eventmethode>; //TNotifyEvent
In ein klein bissl neueren Delphis nimmt man natürlich Delphi-Referenz durchsuchenTApplicationEvents.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#7

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 14. Feb 2015, 23:44
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:
OnActivate:=ApplicationActivate;
genommen..
und dann
Code:
procedure Tform1.ApplicationActivate(Sender: TObject);
aber so richtig ist da die Anwendung da ja noch nicht aktiv ..
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..
Gerd
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.121 Beiträge
 
Delphi 12 Athens
 
#8

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 15. Feb 2015, 09:26
@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..
Nee, ich denk dann eher, daß dieses Form.OnActivate wohl doch nur beim Fokuswechsel der Fenster innerhalb der Anwendung aufgerufen wird.

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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#9

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 15. Feb 2015, 10:17
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:
  ReleaseCapture;
  Form1.Perform(WM_SYSCOMMAND, $F012, 0);
hmmm und das wirft alles etwas ducheinander ..

sonst klappt das auch mit den application.onactivate

wie löse ich das denn jetzt nur das als combi .. *grübel*
Gerd
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#10

AW: beim wieder aktivieren klick auf Bild auslösen ?

  Alt 15. Feb 2015, 10:28
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;
Miniaturansicht angehängter Grafiken
meinprogramm.jpg  
Angehängte Dateien
Dateityp: zip MeinProgramm.zip (811,7 KB, 1x aufgerufen)

Geändert von hathor (15. Feb 2015 um 10:36 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 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