Für euch sicher kein Problem, aber ich bekomme es nicht hin
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.
[Gelöst] Rechte MT und Popup in Drawgrid
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
[Gelöst] Rechte MT und Popup in Drawgrid
Zuletzt geändert von MacWomble am Do 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.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
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.
Im Onclick des Popupmenüeitems kannst du dann damit hantieren.
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
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.
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
Re: Rechte MT und Popup in Drawgrid
Gibt es hierzu irgendwo ein Beispiel?
Die Zeile soll markiert, dann das Popup ausgeführt werden.
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.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Rechte MT und Popup in Drawgrid
Hab's grad mal ausprobiert. Geht so nicht. aber so:
TDrawGrid.MouseToCell ist der Schlüssel.
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;
-
- Lazarusforum e. V.
- Beiträge: 999
- Registriert: Do 17. Apr 2008, 01:59
- OS, Lazarus, FPC: Mint 21.1 Cinnamon / FPC 3.2.2/Lazarus 2.2.4
- CPU-Target: Intel i7-10750 64Bit
- Wohnort: Freiburg
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.