AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

API-Funktion SetWindowPos

Ein Thema von juezi · begonnen am 25. Sep 2007 · letzter Beitrag vom 22. Okt 2007
Antwort Antwort
Seite 3 von 3     123   
s-off
(Gast)

n/a Beiträge
 
#21

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 09:08
Zitat von juezi:
Hallo,

ich habe folgende Ereignisse probiert OnKeyDown und OnKeyPress, hier habe ich breakpoints gesetzt, wenn mein Formular aktiv ist komme ich in OnKeyPress bei einer Eingabe rein, wenn mein Formular nicht aktiv ist komme ich nicht zum breakpoint, OnKeyDown reagiert überhaupt nicht, (aktiv oder nicht aktiv)

Danke
Tschuldigung, meinte auch Press, nicht Down... Also bekommt Deine Anwendung keine Infos.
Dann wirst Du wohl entweder das probieren müssen, was Rolf Warnecke beschrieben hat, oder Dich wirklich mit Tastaturhooks beschäftigen müssen.

Vielleicht ist es auch möglich, irgendwie auf die Windowsmessage (WM_KILLFOCUS) zu reagieren, sobald Dein Fenster den Fokus verlieren soll.
Kannst ja mal rumtesten.
  Mit Zitat antworten Zitat
juezi

Registriert seit: 24. Nov 2004
34 Beiträge
 
#22

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 09:25
Hallo,

wo sollte ich Deiner Meinung nach den (WM_KILLFOCUS) abfragen, durch den Timer der läuft?

Danke
juezi
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#23

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 10:08
Zitat von juezi:
Hallo,

wo sollte ich Deiner Meinung nach den (WM_KILLFOCUS) abfragen, durch den Timer der läuft?

Danke
Nee,

Du deklarierst Dir eine Prozedur im Private-Abschnitt Deiner Klasse:
Delphi-Quellcode:
Type
   TForm1 = Class(TForm)
   private
      Procedure KillFocus(Var Message: TMessage); message WM_KILLFOCUS;
   End;
Mit STRG+SHIFT+C erzeugst Du dann den Methodenrumpf und schaust mal, was Du da drin anstellen kannst.
  Mit Zitat antworten Zitat
juezi

Registriert seit: 24. Nov 2004
34 Beiträge
 
#24

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 10:29
Hallo,

danke, wird diese Methode nur ausgeführt wenn der Fokus von einer anderen Anwendung gekillt wird?
Ich kann im Moment nicht so richtig folgen was Du meinst.

Danke
juezi
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#25

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 10:52
Dein Fenster erhält die Message 'WM_KILLFOCUS', sobald es den Fokus verlieren soll, unabhängig davon, ob das von einer anderen Anwendung ausgeht, oder nicht.
  Mit Zitat antworten Zitat
juezi

Registriert seit: 24. Nov 2004
34 Beiträge
 
#26

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 12:10
Hallo,

sorry für meine Unwissenheit, aber ich weiß nicht wo ich diese WM_KILLFOCUS bekommen soll
ich habe es wie folgt probiert

Delphi-Quellcode:
procedure TForm1.KillFocus(var Message: TMessage);
begin
  Label2.Caption := 'Fokus gekilled';
end;
wenn ich aber auf andere Anwendungen klicke läuft meine Anwendung nicht in diese procedure rein,
muss ich noch irgendwelche uses angeben oder mache ich grundsätzlich etwas falsch.

Danke
juezi
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#27

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 13:23
Hmm, alles sehr mysteriös.

Bei mir springt er in die Prozedur, bevor meine Form den Fokus verliert; egal auf welche Art und Weise.
  Mit Zitat antworten Zitat
juezi

Registriert seit: 24. Nov 2004
34 Beiträge
 
#28

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 15:02
Hallo,
muss ich noch irgendeine Abfrage in einem Timer machen oder reicht wirklich nur das Einfügen der procedure.

Danke
juezi
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#29

Re: API-Funktion SetWindowPos

  Alt 27. Sep 2007, 15:06
Nein, keine Abfrage im Timer.

Prozedur wie gezeigt deklarieren und implementieren.
Dann den Rumpf mit Daten füllen. Was da rein kann, um Dein Problem musst Du selber testen.
Evtl. kannst Du Durch Antwort auf die Nachricht verhindern. Probier's halt aus.

Sobald Deinem Formular dann der Verlust des Fokus droht (WM_KILLFOCUS), wird die Prozedur angesprungen.

Vielleicht gibt es noch eine Message, die das Formular erhält nachdem es den Fokus verloren hat. Da könntest Du dann wieder mit SetWindowPos agieren...
  Mit Zitat antworten Zitat
juezi

Registriert seit: 24. Nov 2004
34 Beiträge
 
#30

Re: API-Funktion SetWindowPos

  Alt 22. Okt 2007, 14:40
Hallo,

ich habe jetzt eine Lösung gefunden die vielleicht nicht die beste ist aber in meinem Fall kann ich meine Barcodeanwendung aktivieren, ich habe folgendes gemacht
Ich setze meinen Cursor mit SetCursorPos(x,y) auf mein Formular und löse mit
mouse_event einen Click aus, wie gesagt nicht die feine Art aber wirkungsvoll.

Vielen Dank für Eure Hilfe
juezi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 16:35 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