Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FlashWindow(Ex) für interakt. Hilfe mit anderer Visual. (https://www.delphipraxis.net/77452-flashwindow-ex-fuer-interakt-hilfe-mit-anderer-visual.html)

Onkelrossie 19. Sep 2006 19:44


FlashWindow(Ex) für interakt. Hilfe mit anderer Visual.
 
Guten Abend zusammen,
ihr kennt doch sicher das Feature bei einer interaktiven Hilfe wo der Button oder die ListBox usw. die als nächstes angeklickt werden soll o.ä. kurz aufblinkt (3x Gelb umrahmt kurz hintereinander oder so ähnlich). Ich wollte das nun auch für meine Interaktive Hilfe verwenden und habe versucht das mit FlashWindow bzw. FlashWindowEx zu realisieren. Aber irgendwie blinkt es nicht so wie ich es gewohnt bin. Das was die function simuliert sieht für mich aus wie als wenn es das ziehl Fenster nur kurz aktiviert und wieder deaktiviert. Das sieht zwar auch aus als wenn es blinkt aber eben nicht so wie gewollt. Ausserdem funtioniert das nicht bei anderen Typen wie TListView usw. denn dort blinkt dann nur die Scrollbar. Im gegensatz zu WinSpy, was ja auch diese function hatt ein Fenster zu finden und es genau so aufblinken zu lassen wie ich wollte. Wenn ich den Code in WinSpy generiere für das gefundene Fenster bzw. Child Fenster dann steht da FlashWindow(wnd). Aber wenn ich es so in mein Project übernehme geht es nicht da ja noch ein LongBool erwartet wird. Und selbst wenn ich es abänder blinkt es ganz anders als WinSpy es vorgibt.

Ich hoffe ich konnte erklären worum es mir geht auch wenn ich etwas häufig das Wort "blinkt" verwendet habe. :roll:
Vieleicht kann mir ja bei meinem Problem jemand helfen *zu toms rüber schau* :cyclops:


mfG
Onkelrossie

Onkelrossie 20. Sep 2006 17:22

Re: FlashWindow(Ex) für interakt. Hilfe mit anderer Visual.
 
Hallo, ich nochmal,
kann mir keiner einen Tipp geben oder ein Beispiel Posten?
Bin für jeden Vorschlag Dankbar!

mfG
Onkelrossie

DGL-luke 20. Sep 2006 17:37

Re: FlashWindow(Ex) für interakt. Hilfe mit anderer Visual.
 
Du kannst dir einfach den Desktop-Gerätekontext holen:

Delphi-Quellcode:
deskcanvas := TCanvas.Create;
deskdc := GetDC(GetDesktopWindow);

deskcanvas.Handle := deskdc;
Darauf kannst du dann mit allen Zeichenfunktionen, die dir Canvas bietet, zugreifen.

Um deine Kritzelei (;)) dann wieder wegzumachen, bietet sich MSDN-Library durchsuchenInvalidateRect an.

Onkelrossie 22. Sep 2006 18:09

Re: FlashWindow(Ex) für interakt. Hilfe mit anderer Visual.
 
Hi, DGL-luke,
Danke für den Tipp der soweit das Zeichnen betrifft wunderbar Funktioniert hatt. Aber wie bekomme ich die größe des Fensters bzw. der einzelnen Memos usw. worauf ich zeichnen will raus? Ich möchte es ja wie gesagt umrahmen und da man das Fenster bzw. Memos usw. beliebig vergrößern / verkleinern kann muss ich ja die gegenwärtige größe irgendwie raus bekommen. Das Programm worauf ich zeichnen will ist aber ein anderes als das, welches zeichnen soll (Client / Server). Daher muss ich doch irgendwie über das Handle an die größen Informationen kommen, aber wie? WinSpy macht es ja auch irgendwie.
Es gibt da doch bestimmt eine Funktion womit man die Fensterkoordinaten bzw. Größen des aktuellen Handles also Fensters herraus bekommt oder?

Vielen Dank schonmal im Vorraus.

[Edit 1]
Habe eben mal in der Delphi Hilfe geschaut und dir Funktion "GetWindowRect" gefunden. Irgendwie Funktioniert das aber bei mir nicht so richtg.
Hier mal der Source:

Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
  W: HWND;
  D: HDC;
  C: TCanvas;
  R: Trect;
begin
  W := FindWindow('TfrmMain', 'Server');
  W := FindWindowEx(W, 0, 'TMemo', nil);
  D := GetWindowDC(W);
  GetWindowRect(W, R);
  C := TCanvas.Create;
  C.Handle := D;
  BeginPath(C.Handle);
  C.Pen.Style := psSolid;
  C.Pen.Mode := pmMask;
  C.Pen.Color := clRed;
  C.Pen.Width := 3;
  SetBkMode(C.Handle,TRANSPARENT);
  EndPath(C.Handle);
  C.Rectangle(R);
[/Edit 1]

HG
Onkelrossie


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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