Ich habe in meiner anwendung eine listview mit multiselect und einem poupmenü.
wenn ich jetzt rechts klicke, wird die aktuelle auswahl aufgehoben und das wo ich klicke markiert. das will cih aber nicht. meine aktuelle lösung: ich speichere im onmousemove die selection in einem array of bool. beim onpopup wird das array zurück in die listview geschrieben.
da das aber 1. suboptimal und 2. nicht
oop ist, habe ich mir überlegt, dass ich einfach den rechtsklick ausschalte.
das habe ich bis jetzt zustande gebracht(LV ist die listview):
Delphi-Quellcode:
procedure WndProc(Msg:TMessage);
var p:TPoint;
inLV:boolean;
begin
inherited;
p:=screentoclient(mouse.cursorpos);
inLV:= ( (p.X >= LV.left) and (p.X <= LV.left+LV.width) and (p.Y >= LV.top) and (p.Y <= LV.top + LV.Height) );
if ( msg.msg = WM_RBUTTONDOWN ) and inLV then
begin
msg := nil; //geht nicht
end;
end;
Und jetzt brauche ich eben etwas, das die Message annulliert.
gibt es da was?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1