Desenați o grilă pe formular

Desenați o grilă pe formular

Bună ziua, cunoscători!
Vreau să desenez o grilă pe formă (panouri, mai mult decât firul), ceva asemănător în delphi în designerul formei punct, dar mai bine grila. Se presupune că ar fi făcut din această formă / panou / ce altceva, de asemenea, este designerul și să ia componentele de pe el (aș dori doar moștenitorii TGraphicControl). În afară de cazul în care este necesar să se traseze o rețea, și (este adevărul deja o altă întrebare), cum se face o astfel de componentă, pe care apoi un mouse să-l trageți?







Cum și unde să desenați o rețea
procesați vopseaua moștenitorului TGraphicControl și nu uitați de St Align. (o jumătate de oră nu mai este)
cum se face o astfel de componentă, astfel încât să puteți trage cu mouse-ul
orice moștenitor de la TControl.

cum se face o astfel de componentă, astfel încât să puteți trage cu mouse-ul
orice moștenitor de la TControl.
ce trebuie procesat? ce mesaj? și cum?
mousedown, releasecapture, self.perform (ceva acolo) a lucrat pe tbutton, dar nu pe succesorul TGraphicControl

Dark Hunter (20.01.04 20:17) [2]
ce trebuie procesat? ce mesaj? și cum?
A știut mecanismul DragDrop despre asta?

în continuarea temei:
forma sa dovedit, pe el TCustomPanel succesor cu această rețea, dimensiunile panoului sunt mult mai mult decât dimensiunile formei. Au existat bare de derulare și este minunat.
Dar: grila este desenată numai pe panou pentru a pune ceea ce-componentă de fir, încetează să mai fie trasată inițial o parte invizibilă a grila de pe acest panou, numai colțul din stânga sus







800x600 (în cazul meu o astfel de permisiune). În alte locuri panoul gri obișnuit :(
cum să atragă o rețea peste panou?

Rescrieți pentru panoul dvs. evenimentul OnPaint - unde veți desena grila (pe panou).

Scriu în handler OnPaint:

Brush.Color: = FGridBackColor;
Brush.Style: = bsSolid;
Dreptunghi (Rect);
dacă FShowGrid începe apoi
Brush.Color: = FGridForeColor;
Brush.Style: = bsCross;
Dreptunghi (Rect);
capăt
grila este desenată complet.
Merită în această zonă vizibilă inițială, de exemplu, pentru a introduce TLabel (succesorul TGraphicControl) sau componenta mea (de asemenea, din TGraphicControl), grila este desenată numai pe această parte, în partea stângă sus, dimensiunea ecranului.
Dimensiunile panoului rămân aceleași ca și ele (4000 * 3000).
Aceasta este o problemă în Windows sau pe cineva. )

pentru construcția non-rusă a propunerilor

Și unde este grila aici - văd doar două dreptunghiuri, și cele rele.

gândurile mele:
prima umplere este solidă, culoarea de fundal este FGridBackColor (un membru protejat al clasei din panoul meu);
a doua, cu condiția să aveți nevoie să desenați o rețea - completați modelul bsCross cu culoarea FGridForeColor (similar înainte);
End;
explică-ți părerea despre situație, te rog

Nu știu ce aveți, dar am încercat să creez o componentă

utilizări
Windows, Mesaje, SysUtils, Clase, Controale, ExtCtrls, Grafică;

Procedură GrPanel.Paint;
începe
Vopsea moștenită;
Cu Canvas Do
începe
Brush.Style: = bsSolid;
Brush.Color: = clBtnFace;
FillRect (ClientRect);
Brush.Style: = bsCross;
Brush.Color: = clRed;
Dreptunghi (ClientRect);
End;
End;

Registrul procedurilor;
începe
RegisterComponents ("Standard", [GrPanel]);
End;

Nu l-am pus pe formular, ci în ScrollBox și am adăugat un buton pe panou, eticheta - când derularea totul este bine, grila este vizibilă pe panou.







Articole similare

Trimiteți-le prietenilor: