Einzelnen Beitrag anzeigen

karsten.kg

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

Re: in DBGrid-Celle dargestelle Listbox wieder unsichtbar ma

  Alt 12. Jul 2009, 15:22
Hallo Reinhard,

NC bedeutet "Non Client" man lernt halt nie aus. Danke.

Hab ich jetzt mit eingebaut. Gleichzeitig muss ich eine zusätzlich Abfrage einbauen, ob das Formular noch aktiv ist. Denn wenn ich es schließe, funktioniert das OnMessage-Ereignis trotzdem noch - und wenn ich dann z.B. in den Non Client Bereich klicke, kommt es zu einer Access-Violation.

Delphi-Quellcode:
procedure TmdiBuchungsliste.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if (Msg.message = WM_NCLBUTTONDOWN) or (Msg.message = WM_LBUTTONDOWN) then
  begin
    if active then //nur wenn Formular mdiBuchungsliste Aktiv
    begin
         //ScreenToClient für Formular mdiBuchungsliste
         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; //Listbox unsichtbar machen
              end;
         end;
    end;
    Handled := false;
  end;
end;
Also es funktioniert nun einwandfrei - zumindest so, wie ich es wollte!

Gruß Karsten
  Mit Zitat antworten Zitat