Einzelnen Beitrag anzeigen

karsten.kg

Registriert seit: 28. Jun 2009
7 Beiträge
 
#7

Re: in DBGrid-Celle dargestelle Listbox wieder unsichtbar ma

  Alt 11. Jul 2009, 23:17
Hallo,

hab jetzt mit dem Application.OnMessage Event gearbeitet:

Delphi-Quellcode:
procedure TmdiBuchungsliste.FormCreate(Sender: TObject);
begin
   Application.OnMessage:=AppMessage;
end;

procedure TmdiBuchungsliste.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if Msg.message = WM_LBUTTONDOWN then
  begin
    if not(ptInRect(lbBuchungsliste.boundsrect,lbBuchungsliste.parent.ScreenToClient(mouse.cursorpos))) then
    begin
       if not(ptInRect(dbsgBuchungsliste.cellrect(dbsgBuchungslisteCol,dbsgBuchungslisteRow),
                                                dbsgBuchungsliste.ScreenToClient(mouse.cursorpos))) then
       begin
            sendtoback; //eingelagerte Listbox unsichtbar machen
       end;
    end;
    Handled := false;
  end;
end;
So ganz zufrieden bin ich mit der Lösung noch nicht, da das ganze nicht funktioniert, wenn ich auf das Hauptmenü bzw. die blaue Leiste darüber = Fensterleiste Klicke. Hier hilft wahrscheinlich wirklich nur ein Hook oder die Listbox wird in einem eigenem Formular dargestellt.

Gruß Karsten
  Mit Zitat antworten Zitat