[D7][Creation dynamique StrinGrid][Affichage]
Bonjour,
j'essaye de faire une creation dynamique de stringgrid a partir d'une classe que je suis en train de creer.
Voici la code de la classe, on ne peut plus simple pour l'instant.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
unit Affichage;
interface
uses
Classes, ExtCtrls, MMSystem, Windows,
SysUtils, forms, StdCtrls, Graphics,grids,comctrls;
//Les constantes pour régler la taille de l'affichage
Const
nb_col=64; //nombre de colones
nb_line=64; //nombre de lignes
largeur_cellule=80; //largeur de la cellule en pixels
hauteur_cellule=80;//hauteuur de la cellule en pixels
type TAffichage = class(Tobject)
private
public
Afficheur:TStringGrid; //On affiche dans un TStringGrid;
Constructor Create(pos:Tpoint); //Le constructeur (Pos=position dans la fiche)
published
end;
Type PAffichage = ^TAffichage;
var
Stop : boolean;
Erreur: byte;
implementation
uses test;
Constructor TAffichage.Create(pos:Tpoint);
begin
//--------------------------------------------------------
//Phase 1: On creer la stringgris avec les bons parametres
//--------------------------------------------------------
Afficheur:=TstringGrid.Create(Self);//creation
Afficheur.ColCount:=nb_col;//assignation du nombre de colones
Afficheur.RowCount:=nb_line;//assignation du nombre de lignes
Afficheur.ScrollBars:=ssNone;//pas d'ascenseur
Afficheur.FixedCols:=0;//pas de colone grisée
Afficheur.FixedRows:=0;//pas de ligne grisée
Afficheur.DefaultColWidth:=largeur_cellule;//largeur de cellule
Afficheur.DefaultRowHeight:=hauteur_cellule;//hauteur de cellule
Afficheur.Left:=pos.X;//positionnement de ma grille;
Afficheur.Top:=pos.Y;
Afficheur.Width:=nb_col*largeur_cellule;//taille de la grille en pixels
Afficheur.Height:=nb_line*hauteur_cellule;
Afficheur.Visible:=true;//paf on affiche
end;
end. |
Maintenant dans mon unit 1 apprès les uses d'usage et la déclaration d'un
Myviewer:Taffichage;
Je fais ceci
Code:
1 2 3 4 5
|
(...)
pos.x:=100;
pos.y:=100;
Myviewer:=Taffichage(pos); |
L'objet est bien créé dynamiquement et je peux meme remplir la stringrid.
Par contre elle n'apparait pas à l'ecran.
C'est à dire que tout fonctionne en memoire, mais la stringrid créée n'apparait pas au moment de la creation...
Suis-je clair?
Et bien sur j'ai besoin de le voir, car si je voulais travailler seulement en memoire, je n'utilisairais pas un Stringgrid mais un tableau à deux dimensions.
Voilà...
Je suis sur que c'est une question de noob et que la solution est simple mais... Elle m'echappe.:mouarf: