killerdam
Messages postés21Date d'inscriptionjeudi 3 mars 2005StatutMembreDernière intervention26 mai 2006
-
26 mai 2006 à 20:53
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 2013
-
27 mai 2006 à 11:50
Bonjour tout le monde!
je voudrai savoir si il est possible de nommer les cellules d'une drawgrid (un nom qui me sert juste pour le traitement).
En faite je voudrai que certraine cellule de ma drawgrid corresponde à des salles
la cellule de "coordonné" [1,1] devrai correspondre a la salle 0
la cellule de "coordonné" [1,5] devrai correspondre a la salle 1
la cellule de "coordonné" [1,9] devrai correspondre a la salle 2
la cellule de "coordonné" [1,13] devrai correspondre a la salle 3
la cellule de "coordonné" [5,1] devrai correspondre a la salle 4
la cellule de "coordonné" [5,5] devrai correspondre a la salle 5
...
merci
ca doit pas etre très clair, mais je vous assure que ce n'est pas évident a expliquer
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 26 mai 2006 à 21:11
simple
cellule a un type exemple "TCells"
il suffit de créer un tableau comme cela par exemple :
type
TSallon = record
Name : string;
Cells: TCells;
end;
TSallons = array[0..5] of TSallon;
var
Sallons : TSallons;
function GetSallon(const SallonName : string) : TCells;
var N : integer;
begin
for N := 0 to 5 do
if Sallons[N].Name := SallonName then begin
result := Sallons[N].Cells;
exit;
end;
end;
procedure InitSallon;
begin
Sallons[0].Name := 'Salle 0';
Sallons[1].Name := 'Salle 1';
Sallons[2].Name := 'Salle 2';
Sallons[3].Name := 'Salle 3';
Sallons[4].Name := 'Salle 4';
Sallons[5].Name := 'Salle 5';
Sallons[0].Cells := DrawGrid.Cell[1,1];
Sallons[1].Cells := DrawGrid.Cell[1,5];
Sallons[2].Cells := DrawGrid.Cell[1,9];
Sallons[3].Cells := DrawGrid.Cell[1,13];
Sallons[4].Cells := DrawGrid.Cell[5,1];
Sallons[5].Cells := DrawGrid.Cell[5,5];
end;
et voila, aprés tu appel
with GetSallon('Salle 0') do
// modification ou recuperation des propriétés et methodes de la cellule
end;
ps : possible erreurs, j'ai pas tester pour debugger
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 27 mai 2006 à 11:50
Salut,
Tu as les propriétés Col et Row qui te renvoient les coordonnées de la cellule active.
Tu pourrais peut-être te créer un tableau de string à 2 dimensions (colonnes, lignes)
var
Salles: array[0..5, 0..5] of string; // ou de type record avec nom,...
que tu initialises :
Salles[0,0]:= 'Salle 0';
Salles[0,1]:= ..........
récupération en te déplaçant dans le drawgrid :
procedure TForm1.DrawGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
begin
if (Acol <= high(Salles)) and (ARow <= high(Salles)) then
edit1.text:= Salles[ACol, ARow];
end;
si tu veux aussi la valeur affichée dans le grid :
procedure TForm1.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (Acol <= high(Salles)) and (ARow <= high(Salles)) then
Drawgrid1.Canvas.TextOut(Rect.left, Rect.top, Salles[Acol,ARow]);
end;