![]() |
Re: StringGrid und Popup
Moin, Moin.
Vielleicht mal einen alternativer Lösungsansatz ...
Delphi-Quellcode:
Achtung: Die Eigenschaft "AutoPopup" des PopUpMenüs muss FALSE sein! Durch die Addition/Subtraktion der beiden Zahlenwerte bei der Ermittlung von dx und dy kann die Position des Popup-Menüs noch optimiert werden. Durch die Verwendung von FixedCols/FixedRows wird das Öffnen des PopUp für alle nicht verschiebbaren (grau hinterlegten) Zellen verhindert.
procedure TfoTest9.StringGrid1MouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
var iCol,iRow, dx,dy : Integer; begin if Button=mbRight then with StringGrid1 do begin MouseToCell(X,Y,iCol,iRow); if iCol>=FixedCols then if iRow>=FixedRows then begin Col:=iCol; Row:=iRow; dx :=foTest9.Left+StringGrid1.Left-10; // -10 << adjusts Popup relative to cursor dy :=foTest9.Top +StringGrid1.Top +20; // +20 << adjusts Popup relative to cursor PopUpMenu1.Popup(X+dx,Y+dy); end; end; end; Gruß Ralph |
Re: StringGrid und Popup
Der lösungsansatz ist genauso gut wie der andere aber wie mach ich das jetzt das, das popup in der Spalte 0 nicht auf geht mein ansatz geht nicht fehlerfrei
|
Re: StringGrid und Popup
Ich kann es gerade nicht ausprobieren, aber versuch es mal so:
Delphi-Quellcode:
procedure TForm7.StringGridPopupPopup(Sender: TObject);
var iCol,iRow: integer; Position: TPoint; begin Position := StringGrid1.ScreenToClient(Mouse.CursorPos); StringGrid1.MouseToCell(Position.X,Position.Y,iCol,iRow); if iCol = 0 then abort else begin StringGrid1.Col:= iCol; StringGrid1.Row:= iRow; end; end; |
Re: StringGrid und Popup
Moin, Moin Sascha.
Genau DAS wird doch mit meinem Code verhindert: das Öffnen des PopUps über Spalte 0 / Zeile 0 (sofern diese als FIXED deklariert sind) - hast du den Code-Schnipsel denn nicht ausprobiert?? Gruß Ralph |
Re: StringGrid und Popup
doch hab ich aber es geht trotzdem auf
|
Re: StringGrid und Popup
Na, ich glaub mich laust ein Affe!
Bei mir funktioniert das einwandfrei! Hast du denn FixedRows=0 ??? |
Re: StringGrid und Popup
uuuuuuuuups da war ne 1 drin sorry jetzt gehts auch
|
Re: StringGrid und Popup
joooooo, ist schon ok :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz