Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringGrid und Popup (https://www.delphipraxis.net/106113-stringgrid-und-popup.html)

taaktaak 5. Jan 2008 22:05

Re: StringGrid und Popup
 
Moin, Moin.

Vielleicht mal einen alternativer Lösungsansatz ...

Delphi-Quellcode:
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;
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.

Gruß Ralph

SaFu 6. Jan 2008 16:02

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

DeddyH 6. Jan 2008 19:04

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;

taaktaak 6. Jan 2008 19:07

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

SaFu 6. Jan 2008 19:08

Re: StringGrid und Popup
 
doch hab ich aber es geht trotzdem auf

taaktaak 6. Jan 2008 19:10

Re: StringGrid und Popup
 
Na, ich glaub mich laust ein Affe!
Bei mir funktioniert das einwandfrei! Hast du denn FixedRows=0 ???

SaFu 6. Jan 2008 19:12

Re: StringGrid und Popup
 
uuuuuuuuups da war ne 1 drin sorry jetzt gehts auch

taaktaak 6. Jan 2008 19:16

Re: StringGrid und Popup
 
joooooo, ist schon ok :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz