Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

SaFu 5. Jan 2008 18:09


StringGrid und Popup
 
Hi kann mir vielleicht einer sagen wie ich es schaffe eine zelle im StringGrid mit Rechter maustaste zu selektieren und das dann ein popup menü auf geht habe es mal so versucht

Delphi-Quellcode:
procedure TForm7.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if Button = mbRight then
 StringGridpopup.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
end;
danke sascha

DeddyH 5. Jan 2008 19:10

Re: StringGrid und Popup
 
Ich habe gerade kein Delphi zur Hand, aber hat das StringGrid keine Property PopupMenu?

SaFu 5. Jan 2008 19:13

Re: StringGrid und Popup
 
Doch aber ich mus zuerst mit der linken Maustaste die Zelle makieren
und dann kann ich erst an der stelle mein popup ausführen

DeddyH 5. Jan 2008 19:14

Re: StringGrid und Popup
 
Schon mal mit MouseToCell versucht?

SaFu 5. Jan 2008 19:15

Re: StringGrid und Popup
 
Ja hat aber auch nicht so ganz geklappt dann wird es irgenwohin geschoben

DeddyH 5. Jan 2008 19:17

Re: StringGrid und Popup
 
Moment, wenn Du das PopupMenu im OI zuweist, könntest Du doch OnPopup die entsprechende Zelle ermitteln und markieren, oder geht das nicht? Wie gesagt, ich kann das gerade nicht ausprobieren.

SaFu 5. Jan 2008 19:20

Re: StringGrid und Popup
 
meinst du so ungefähr

Delphi-Quellcode:
procedure TForm7.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var col, row: integer;
begin
StringGrid1.MouseToCell(x, y, col, row);
if Button = mbRight then
 StringGridpopup.Popup(col, row);

end;

DeddyH 5. Jan 2008 19:25

Re: StringGrid und Popup
 
Gerade mal unter Ubuntu mit Lazarus versucht:
Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var aCol,aRow: integer;
    p: TPoint;
begin
  p := StringGrid1.ScreenToClient(Mouse.CursorPos);
  StringGrid1.MouseToCell(p.X,p.Y,aCol,aRow);
  StringGrid1.Col := aCol;
  StringGrid1.Row := aRow;
end;

SaFu 5. Jan 2008 19:28

Re: StringGrid und Popup
 
Genau das wars hatte nicht an die Eigenschaft vom Popup gedacht dank dir Trotzdem :thumb:

SaFu 5. Jan 2008 19:50

Re: StringGrid und Popup
 
vielleicht doch noch einen kleinen tipp

das verhindern des Popups bei Spalte null

Delphi-Quellcode:
procedure TForm7.StringGridPopupPopup(Sender: TObject);
var iCol,iRow: integer;
    Position: TPoint;
begin
if StringGrid1.Col = 0 then
  begin
    abort;
  end
  else
  begin
   Position := StringGrid1.ScreenToClient(Mouse.CursorPos);
   StringGrid1.MouseToCell(Position.X,Position.Y,iCol,iRow);
   StringGrid1.Col:= iCol;
   StringGrid1.Row:= iRow;
  end;
end;
geht net so ganz


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr.
Seite 1 von 2  1 2      

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