Plz spune-mi cum să eliminați celula de izolare la stringgrid

Plz spune-mi cum să eliminați celula de izolare la StringGrid

Automat tabel StringGrid elemntov evidențiată în albastru [0,0]
Dacă apoi faceți clic pe mouse-ul pe masă. eliberarea de culoare albastră dispare.
Cum să deselecta albastru atunci când Stringgrid de pornire?

Da uitat să spun nu există elemente fixe.

Atunci el a găsit o proprietate de celule de curent goDrawFocusSelected este marcată în culori. Colegii ca eliminarea acestei legarea?

Am înțeles că Saint-woo trebuie să i se atribuie statutul de fals
Ce sintaxă acolo?
StringGrid1.Options: = [goDrawFocusSelected: = false];

StringGrid1.Options.goDrawFocusSelected: = false, astfel încât, de asemenea, nu merge

Dacă aș putea răspunde la Cton. Am cerut ca prostii?


> StringGrid1.Options: = [goDrawFocusSelected: = false];

Și ceea ce nu le place compilator certat.
Opțiuni este setat. Set operațiuni sunt descrise în certificat și se aplică conceptele de bază ale limbii.


> smartleds # XA0; (07.12.07 18:32)
>
> Standuri albastru automat elemntov tabel StringGrid [0,
> 0]
> Dacă apoi faceți clic pe mouse-ul pe masă. albastru de selecție
> Color dispare.
> Cum să deselecta albastru atunci când Stringgrid de pornire?
>
>

xs. Nu am găsit modalități simple.


> # XA0; TabOrder = 0

Ea nu ajută. Prin modul în care numărul de FixedXX nu joacă la pian.

Amenințare TabOrder - Nu l-am atinge, el „accidental“ a primit febră aftoasă, deoarece are proprietățile unui default -1, și se schimbă în IE (cel puțin 0)

Mulțumesc, dar, din păcate, fără nici un rezultat.
Și problema a fost. mai detaliat.
Într-adevăr, în cazul în care grila este desenat de celule albe, iar celula cu coordonatele [0,0] selecție în frontieră abia vizibile, dar imediat ce fac clic pe orice buton în formă de prioritate ridicată în cadrul celulei pictate automat în albastru. Și eu pot selecta orice celulă din mouse-ul, sau chiar câteva, și toate dintre ele sunt vopsite în albastru. Un buton comună nu face nimic. chiar a crea un buton gol va afecta în continuare.

Procedura TForm2.Button3Click (Expeditor: TObject);
var i: integer;
începe
i: = 0;
se încheie;

O grilă este inițializat după cum urmează:
StringGrid1.ColCount: = 32;
StringGrid1.RowCount: = 8;
StringGrid1.DefaultColWidth: = 20;
StringGrid1.DefaultRowHeight: = 20;
StringGrid1.FixedCols: = 0;
StringGrid1.FixedRows: = 0;
form2.StringGrid1.TabOrder: = 0;
StringGrid1.Options: = StringGrid1.Options- [goDrawFocusSelected];
k: = 1;
pentru i: = 0 până la 7 do
# XA0; Pentru j: = 0 până la 31 Deci
# XA0; începe
StringGrid1.Cells [j, i]: = inttostr (k);
# XA0; k: = k + 1;
# XA0; end;

Da, folosind D7

> [13] smartleds # XA0; (07.12.07 23:45)
> [14] smartleds # XA0; (07.12.07 23:45)

Procedura TForm1.FormCreate (Expeditor: TObject);
i var, j, k: Integer;
începe
# XA0; StringGrid1.ColCount: = 32;
# XA0; StringGrid1.RowCount: = 8;
# XA0; StringGrid1.DefaultColWidth: = 20;
# XA0; StringGrid1.DefaultRowHeight: = 20;
# XA0; StringGrid1.FixedCols: = 0;
# XA0; StringGrid1.FixedRows: = 0;
# XA0; k: = 1;
# XA0; pentru i: = 0 până la 7 do
# XA0; # XA0; Pentru j: = 0 până la 31 Deci
# XA0; # XA0; începe
# XA0; StringGrid1.Cells [j, i]: = inttostr (k);
# XA0; # XA0; k: = k + 1;
# XA0; se încheie;
se încheie;

Procedura TForm1.StringGrid1DrawCell (Expeditor: TObject; AcOI, Arow: Integer;
# XA0; Dreptunghi: TRect; Stat: TGridDrawState);
începe
# XA0, în cazul în care gdSelected în stat atunci
# XA0; cu TStringGrid (Sender), TStringGrid (Sender) .Canvas nu începe
# XA0; # XA0; Brush.Color: = clWhite;
# XA0; # XA0; FillRect (Dreptunghi);
# XA0; # XA0; TextRect (Rect, Rect.Left + 2, Rect.Top + 2, Celule [AcOI, Arow]);
# XA0; se încheie;
se încheie;

> Brush.Color: = clWhite;

Această linie de mai bine înlocuit pe:
Brush.Color: = culoare;
Dacă am confundat cu ceva care este fără el:
în cazul în care nu Expeditor este TStringGrid apoi Exit; // dar, de asemenea, cu, de asemenea, trebuie să verificați pentru a face
în cazul în care gdSelected în stat atunci începe
# XA0; TStringGrid (Expeditor) .Canvas.Brush.Color: = Color;
# XA0; TStringGrid (Sender) .Canvas.FillRect (Dreptunghi);
# XA0; TextRect (Rect, Rect.Left + 2, Rect.Top + 2, TStringGrid (Sender) .Cells [AcOI, Arow]);
se încheie;

> TStringGrid (Expeditor) .Canvas.Brush.Color: = Color;

Ei bine, desigur,
TStringGrid (Expeditor) .Canvas.Brush.Color: = TStringGrid (Sender) .Color;
Am fost foarte confuz :)

> TextRect (Rect, Rect.Left + 2, Rect.Top + 2, TStringGrid (Sender) .Cells [AcOI, Arow]);

In general, este clar :) TextRect - o metodă a grilei de panza)
și anume
TStringGrid (Sender) .Canvas.TextRect (Rect, Rect.Left + 2, Rect.Top + 2, TStringGrid (Sender) .Cells [AcOI, Arow]);
toate sunt de la acest compact :)

Ceva nu funcționează. celulă încă selectată în albastru iese în evidență atunci când apăsați orice buton.
Poate interzice, în general, alocarea unui mouse sau celula?

> [19] smartleds # XA0; (08.12.07 00:11)
> Ce nu funcționează. celule încă selectate standuri albastre
> Prin apăsarea oricărui buton

E incredibil. În acest exemplu, am eliminat toate selecție.

> [19] smartleds # XA0; (08.12.07 00:11)

Sau tu și FokusRekt, de asemenea, interferează.
Apoi StringGrid.DefaultDrawing = false și trage grila, astfel încât să doriți.

Am pus StringGrid1.DefaultDrawing: = false;
în inițializarea și textul lipsește.

Procedura TForm1.FormCreate (Expeditor: TObject);
i var, j, k: Integer;
începe
StringGrid1.ColCount: = 32;
StringGrid1.RowCount: = 8;
StringGrid1.DefaultColWidth: = 20;
StringGrid1.DefaultRowHeight: = 20;
StringGrid1.FixedCols: = 0;
StringGrid1.FixedRows: = 0;
k: = 1;
StringGrid1.DefaultDrawing: = false;<<<<<<<<<<<<<Сюда вставил
pentru i: = 0 până la 7 do
# XA0; Pentru j: = 0 până la 31 Deci
# XA0; începe
StringGrid1.Cells [j, i]: = inttostr (k);
# XA0; k: = k + 1;
# XA0; end;
se încheie;
Grila text gol nu este completat

> [22] smartleds # XA0; (08.12.07 00:22)
> Insert StringGrid1.DefaultDrawing: = false;

DefaultDrawing - nu este doar. Acest lucru sugerează că întregul (!) grila concluzie este pe conștiința de programator
Ie aici este de care aveți nevoie să ia în considerare totul și toată lumea, cu excepția rețelei, este tras o mină grilă.
Deci, punând această proprietate fals, trebuie acum în sine și fundalul celulei și conținutul (text) trage.
având în vedere starea celulei, această opțiune va ajuta la stat. E bine că nu aveți o celulă fixă, iar atunci ei ar trebui să atragă „manual“.
Din nou. verificați codul în [15]. poate că nu sunteți conectat handler OnDravKell.

Nu este bine, nu există nici o separare a celulelor, numai cutia albastră care este alocată în mod automat mouse-ul izolat anterior în cutie.
Și acele celule hotorye am dorit să evidențiem în roșu nu sunt alocate.
Cum se poate interzice celulele alocă în cadrul cu mouse-ul? Pentru că atunci celula izolată în cadru devine albastru atunci când apăsați orice buton. Din [15] testat de două ori nu este alocat, numai acele celule care am vrut să le evidențiați.

Ceea ce este interesant, a atras o celulă de grilă este selectat poate vedea zero în cadru, apăs butonul
Procedura TForm2.Button3Click (Expeditor: TObject);
var i: integer;
începe
i: = 0;
se încheie;
Se pare albastru. Apăs mouse-ul pe celula. albastru dispare. dar el rămâne izolat în cadru, se agită Jacek învecinat. ea stanovimtsya alocate în conformitate cu. Apăs butonul. Acum, celula vecină pentru a deveni albastru. Cum să scapi de ea, că aceasta a fost singura modalitate de a afișa informații grilă. și nu pe nici mouse-ul deychtviya nu a răspuns?

> [27] smartleds # XA0; (08.12.07 01:17)

Și acum face ambele [15] și totul funcționează. ) Nu glumesc)
Nu ați activat condiție
dacă # XA0; (onezero512 [index]> 0) atunci
# XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; # XA0; începe
.
se încheie;
De ce? dezasambla în sine. )
Ei bine și, în consecință, o bucată de cod de la [15], care este apoi începe. se încheie „în zbor.“ prin urmare, toate necazurile tale)
De ce nu trebuie doar să verificați codul de pe un proiect nou gol fără linii suplimentare de cod. Mi-ar fi mult timp în urmă a dat seama ce se întâmplă. )
noroc)

> [30] smartleds # XA0; (08.12.07 01:34)

Ai toate elementele acestui control (onezero512) matrice, dar nicăieri conținutul său, adică toate elementele din matrice conține 0.
Prin urmare TForm2.StringGrid1DrawCell, verificați elementul de matrice cu orice index au eșuat și codul „ștergerea evidenția albastru“ - nu este îndeplinită :(

Acest tablou este completat prin apăsarea butonului Inserare DMX canal. elemente de matrice este fie 0 sau 1, 1 în cazul în care canalele sunt considerate a fi folosite, iar GRID aceste canale ar trebui să fie evidențiate în roșu, astfel încât utilizatorul să știe că el este ocupat. și ceea ce nu este.
Matricea conține 256 octeți numărul de celule.

Memorie: 0.79 MB
Timp: 0,04 c