Cum să plasați o imagine într-o celulă de table stringgrid delphi

Cum să plasați o imagine într-o celulă într-o tabelă StringGrid


Componenta StringGrid poate plasa în celulele sale nu numai text, ci și grafică. Pentru a plasa o imagine sau o altă imagine în celula tabelului StringGrid, este activată proprietatea Canvas a componentei StringGrid.







Proprietatea Canvas are o metodă de afișare a graficelor într-un dreptunghi specificat:

Canvas.StretchDrav (const Rect: TRect; Grafic: TGraphic);

Această metodă "ajustează" mărimea desenului la mărimea dreptunghiului, se întinde sau îl comprimă atât pe orizontală cât și pe verticală, și nu neapărat proporțional. Dacă dimensiunile dreptunghiului și dimensiunile imaginii nu sunt similare, modelul va fi distorsionat.







procedura TForm1.StringGrid1DrawCell (Expeditor: TObject;
AcOI. Arow. integer; Rect. TRect;
Stat: TGridDrawState);
începe

var Imagine: Imagine; // variabilă globală
începe
Imagine: = TPicture.Create;
Picture.LoadFromFile ("FileName");
StringGrid1.ColWidths [1]: = Picture.Width;
StringGrid1.RowHeights [1]: = Picture.Height;
se încheie;

Dacă se presupune că o imagine JPEG este descărcată, modulul JPEG trebuie să fie conectat la lista de utilizări.

Dacă imaginea este prea mare, trebuie să setați dimensiunea celulei cu un factor de similaritate n:

StringGrid1.ColWidths [1]: = Imagine.Lățime div n;
StringGrid1.RowHeights [1]: = Picture.Height div n;

Astfel, în manualul de evenimente OnDrawCell este scrisă ieșirea imaginii într-o celulă cu coordonate (1, 1) astfel:

cu StringGrid1 face
dacă ((ACol = 1) și (ARow = 1)) atunci
Canvas.StretchDraw (Rect, Picture.Graphic);







Articole similare

Trimiteți-le prietenilor: