[Gelöst] Rechte MT und Popup in Drawgrid

Für Fragen von Einsteigern und Programmieranfängern...

[Gelöst] Rechte MT und Popup in Drawgrid

Beitragvon MacWomble » 13. Mär 2019, 10:26 [Gelöst] Rechte MT und Popup in Drawgrid

Für euch sicher kein Problem, aber ich bekomme es nicht hin :oops:

Ich habe ein PopupMenu mit einem Drawgrid verknüpft und kann dieses nun mit der rechten Maustaste aufrufen.
Nun möchte ich aber, dass zuächst die Zeile unter dem Mauszeiger zur aktuellen Zeile gemacht wird, so dass das Menu auf diese Zeile angewendet werden kann.
Zuletzt geändert von MacWomble am 14. Mär 2019, 19:54, insgesamt 1-mal geändert.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 787
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.80 / FP 3.3.1 SVN Rev 41791 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon fliegermichl » 13. Mär 2019, 10:41 Re: Rechte MT und Popup in Drawgrid

Im OnPopup des PopupMenüs DrawGrid.GetChildAccessibleObjectAtPos aufrufen und in einer Variablen merken.
Im Onclick des Popupmenüeitems kannst du dann damit hantieren.
fliegermichl
 
Beiträge: 312
Registriert: 9. Jun 2011, 08:42

Beitragvon MacWomble » 13. Mär 2019, 10:58 Re: Rechte MT und Popup in Drawgrid

Danke, ich werde das später versuchen.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 787
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.80 / FP 3.3.1 SVN Rev 41791 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon MacWomble » 13. Mär 2019, 19:49 Re: Rechte MT und Popup in Drawgrid

Gibt es hierzu irgendwo ein Beispiel?

Die Zeile soll markiert, dann das Popup ausgeführt werden.
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 787
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.80 / FP 3.3.1 SVN Rev 41791 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

Beitragvon fliegermichl » 14. Mär 2019, 12:21 Re: Rechte MT und Popup in Drawgrid

Hab's grad mal ausprobiert. Geht so nicht. aber so:
TDrawGrid.MouseToCell ist der Schlüssel.

Code: Alles auswählen
 
type
 
 { TForm1 }
 
 TForm1 = class(TForm)
  DrawGrid1: TDrawGrid;
  MenuItem1: TMenuItem;
  PopupMenu1: TPopupMenu;
  procedure DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
   aRect: TRect; aState: TGridDrawState);
  procedure DrawGrid1SelectCell(Sender: TObject; aCol, aRow: Integer;
   var CanSelect: Boolean);
  procedure MenuItem1Click(Sender: TObject);
  procedure PopupMenu1Popup(Sender: TObject);
 private
  fCol, fRow : integer;
 public
 
 end;
 
var
 Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var O : TObject;
    mp : TPoint;
begin
 mp := DrawGrid1.ScreenToClient(Mouse.CursorPos);
 DrawGrid1.MouseToCell(mp.x, mp.y, fCol, fRow);
end;
 
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
 aRect: TRect; aState: TGridDrawState);
begin
 DrawGrid1.Canvas.TextOut(aRect.Left + 3, aRect.Top + 3, Format('%d / %d', [aRow, aCol]));
end;
 
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; aCol, aRow: Integer;
 var CanSelect: Boolean);
begin
 
end;
 
procedure TForm1.MenuItem1Click(Sender: TObject);
var s : string;
    cs : boolean;
begin
 DrawGrid1.Row := fRow;
 DrawGrid1.Col := fCol;
 cs := true;
 DrawGrid1SelectCell(self, fCol, fRow, cs);
end;
 
fliegermichl
 
Beiträge: 312
Registriert: 9. Jun 2011, 08:42

Beitragvon MacWomble » 14. Mär 2019, 19:53 Re: Rechte MT und Popup in Drawgrid

Danke, da hat nun deutlich geholfen!
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.
MacWomble
Lazarusforum e. V.
 
Beiträge: 787
Registriert: 17. Apr 2008, 00:59
Wohnort: Freiburg
OS, Lazarus, FPC: Mint 19.1 Cinnamon / CodeTyphon LAB Version 6.80 / FP 3.3.1 SVN Rev 41791 | 
CPU-Target: Intel i7 64/32 Bit
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 4 Gäste

porpoises-institution
accuracy-worried