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
Gege

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

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
44.590 Beiträge
 
Delphi 12 Athens
 
#2

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

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

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

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
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#6

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

  Alt 15. Feb 2015, 11:44
Code:
if Self.Active then
begin
//Fängt alle Mausereignisse ab
  ReleaseCapture;
  Form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;
Spätestens wenn Du eine weitere Instanz oder die Form selbst erzeugst, dann wirst Du einen Fehler erhalten.

Nimm das "Form1." heraus und eretze es durch "Self.", denn Deine "Form1" muss nicht immer "Form1" heissen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  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, 23:11
Hallo BadenPower,
da hast Du Recht .. so etwas sollte man sich gleich angewöhnen
es gibt da immer wieder Sachen die sieht man selbst auch nach ein paar Wochen ..

da würde man auch einiges dann wieder anders machen

Danke für Hinweis
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 02:58 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