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