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 ?

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
mkinzler
(Moderator)

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

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
Online

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

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.
Ein Therapeut entspricht 1024 Gigapeut.
  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, 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
Online

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

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;
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Gege

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

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
 
#6

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;
Angehängte Grafiken
Dateityp: jpg MeinProgramm.jpg (62,1 KB, 10x aufgerufen)
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
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 15. Feb 2015, 10:42
ich hab es gelöst !

ich hab jetzt in der Image1MouseMove

Code:
if Self.Active then
begin
//Fängt alle Mausereignisse ab
  ReleaseCapture;
  Form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;
dadurch führt er mir auch das OnActivate richtig aus und das MouseMove auch ..

super Danke allen Mitdenkern und Hinweise
Gerd
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:06 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