PopupMenu proprietate
Proprietatea PopupMenu a Delphi StringGrid determină dacă și ce meniu contextual apare atunci când este apăsat butonul drept al mouse-ului. Proprietatea PopupMenu conține numele componentei PopupMenu care va funcționa atunci când este apelat tabela de context.
În Inspectorul de obiecte, proprietatea PopupMenu este o listă derulantă care conține toate componentele PopupMenu aflate pe Formular. Puteți selecta una dintre ele sau puteți lăsa câmpul PopupMenu în Inspectorul de obiecte gol. În acest caz, meniul contextual text standard al Windows va fi folosit ca meniu de comenzi rapide:
Chiar dacă proprietatea PopupMenu nu a fost configurată în timpul fazei de dezvoltare, în acest caz puteți configura programabil proprietatea PopupMenu, de exemplu, prin Formulare de eveniment OnCreate:
Controlul programului este, de asemenea, folosit pentru a da tabelului diferite meniuri de context, fiecare dintre ele fiind utilizat în acest mod sau în acest fel. De exemplu, dacă conținutul celulei este gol, trebuie utilizat componenta PopupMenu1. dacă conține textul, apoi PopupMenu2.
În acest caz, codul pentru schimbarea proprietății PopupMenu a tabelului ar trebui să fie executat când butonul mouse-ului este apăsat și se află în poziția inferioară, adică prin evenimentul OnMouseDown. deoarece meniul contextual este apelat atunci când butonul drept al mouse-ului este mutat de la poziția inferioară la cea superioară și de atunci proprietatea PopupMenu ar trebui să fie deja schimbată:
procedura TForm1.StringGrid1MouseDown (Expeditor: TObject;
Buton: TMouseButton; Schimbare: TShiftState;
X, Y: Integer);
var ACol, ARow: Integer;
începe
cu StringGrid1 face
începe
MouseToCell (X, Y, ACol, ARow);
Col: = ACol; Rând: = ARow;
dacă celulele [ACol, ARow] = ''
apoi PopupMenu: = PopupMenu1
altfel PopupMenu: = PopupMenu2;
se încheie;
se încheie;
Același cod trebuie utilizat dacă nu există niciun meniu contextual pentru tabelul StringGrid, în locul uneia dintre componentele PopupMenu ar trebui să se utilizeze numai cuvântul cheie nul:
Atunci când utilizați cuvântul cheie zero, tabelul nu va conține niciun meniu contextual, chiar și meniul contextual standard al textului Windows.