Einzelnen Beitrag anzeigen

Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#1

Combobox mit Treeview, ALT+TAB und Co.

  Alt 19. Aug 2009, 15:24
Hallo DP-Community,

Ich habe eine Komponente bestehend aus:
  • - Panel als Rahmen und Hintergrund
  • - Editfeld zur Eingabe
  • - Speedbutton als DropDown-Button
  • - Form als Fenster für den Treeview
  • - Treeview zur Auswahl der Knoten

Ich rufe also per DropDown-Button das Formular auf:
  • Parent auf den Desktop setzen. Windows.SetParent(Formular.Handle, GetDesktopWindow);
  • Anzeigen. Formular.Show();
  • Nach Vorne bringen. Formular.BringToFront();

Da ich per SetWindowLong() eingestellt habe das es keinen Fokus kriegt, da der ja wie bei einer normalen Combobox auf dem Hauptformular liegen soll, habe ich nun versucht mit SetCapture,MouseUP,MouseDOWN,KeyPress,KeyUP,Keydow n mein Formular wieder zu schließen.

SetWindowLong():
Delphi-Quellcode:
// Entfernt den Taskleisten-Eintrag
SetWindowLong(Formular.Handle,GWL_EXSTYLE,(GetWindowLong(Formular.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW ));
// Entfernt den 3D-Rahmen
SetWindowLong(Formular.Handle,GWL_EXSTYLE,(GetWindowLong(Formular.Handle, GWL_EXSTYLE) or WS_EX_STATICEDGE ));
// Entfernt die Titelleiste
SetWindowLong(Formular.Handle,GWL_STYLE ,(GetWindowLong(Formular.Handle, GWL_STYLE) and not WS_Caption));
Nur stehe ich nun bei der Problematik das ich keine Ahnung habe wie ich ALT+TAB, STRG+ALT+DEL und Co. abfragen kann...
Hat jemand eine Idee? Oder weiß vielleicht jemand wie ich bei dem Editfeld einfach fragen würde wenn es nicht gerade aktiv ausgewählt ist (also auch wenn die Anwendung / Formular nicht ausgewählt ist)?

Hoffe das mir jemand helfen kann...laufe nämlich zur Zeit von einer Mauer zur Nächsten und komme eher mühsam weiter...

MfG Alaitoc
  Mit Zitat antworten Zitat