Urgent prog PASCAL - Programmation
Marsh Posté le 11-01-2002 à 09:37:08
Break-out a écrit a écrit : je debut dan delphi et je doi realiser qch pouvez vous m aider je vous enverrai le pro par mail |
négatif
Essaie de te débrouiller et pose des questions quand tu es vraiment bloqués ... Ca te servira plus que si qqun le fait à ta place.
Marsh Posté le 11-01-2002 à 10:00:55
g deja bien avancer il me reste plus qu a afficher mes objet dans une listbox en cliquan sur un bouton et j en ai tellement fait que je suis perdu maintenant.
sinon ba tanpis c pa grave
Marsh Posté le 11-01-2002 à 10:11:12
Break-out a écrit a écrit : g deja bien avancer il me reste plus qu a afficher mes objet dans une listbox en cliquan sur un bouton et j en ai tellement fait que je suis perdu maintenant. sinon ba tanpis c pa grave |
Bin voilà. Pq tu ne poses pas ta question clairement ! C'est quoi ton problème exactement. Qu'est ce que tu n'arrives pas à faire?
Marsh Posté le 11-01-2002 à 11:31:38
Voila g créer tous mes objet au bebut :
private
{ Déclarations privées }
ListeObjGraph : TObjectList;
public
{ Déclarations publiques }
end;
TpointG = class(Tobject)
private
couleur: Tcolor;
X : Integer;
Y : Integer;
public
procedure affiche ; Virtual;
constructor Init(X_,Y_: Integer; Couleur_ : Tcolor);
procedure ModifCouleur (newCouleur : Tcolor);
procedure edition ; Virtual;
end;
Tligne = class(TpointG)
private
Xfin : Integer ;
Yfin : Integer ;
public
procedure affiche; OverRide;
constructor Init (X_,Y_,Xfin_,Yfin_: Integer; Couleur_ : Tcolor);
procedure edition ; OverRide;
end;
Tcercle = class(Tligne)
public
procedure affiche; overRide;
constructor Init (X_,Y_,Xfin_,Yfin_: Integer; Couleur_ : Tcolor);
procedure edition ; OverRide;
end;
et je voudrais maintenant les affichez dans une LISTBOX
encliquant sur un bouton mais je n y arrive pas
je debute
Marsh Posté le 11-01-2002 à 11:33:09
[cLe Prog resemble a ca :
unit Ugraph1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls , contnrs, Menus, Buttons, ComCtrls ;
type
TFdesigner = class(TForm)
BtModifCouleur: TButton;
BtRedessine: TButton;
ColorDialog1: TColorDialog;
RadioGroup1: TRadioGroup;
BtEditer: TBitBtn;
ListBox1: TListBox;
BtlistObjet: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BtModifCouleurClick(Sender: TObject);
procedure BtRedessineClick(Sender: TObject);
procedure BtEditerClick(Sender: TObject);
procedure BtlistObjetClick(Sender: TObject);
private
{ Déclarations privées }
ListeObjGraph : TObjectList;
public
{ Déclarations publiques }
end;
TpointG = class(Tobject)
private
couleur: Tcolor;
X : Integer;
Y : Integer;
public
procedure affiche ; Virtual;
constructor Init(X_,Y_: Integer; Couleur_ : Tcolor);
procedure ModifCouleur (newCouleur : Tcolor);
procedure edition ; Virtual;
end;
Tligne = class(TpointG)
private
Xfin : Integer ;
Yfin : Integer ;
public
procedure affiche; OverRide;
constructor Init (X_,Y_,Xfin_,Yfin_: Integer; Couleur_ : Tcolor);
procedure edition ; OverRide;
end;
Tcercle = class(Tligne)
public
procedure affiche; overRide;
constructor Init (X_,Y_,Xfin_,Yfin_: Integer; Couleur_ : Tcolor);
procedure edition ; OverRide;
end;
var
Fdesigner: TFdesigner;
{-------------------------------------------------------------------------------}
implementation
{-------------------------------------------------
------------------------------}
{$R *.DFM}
Uses UeditionLigne, Ueditionpoint, Ueditioncercle;
{********************************** TpointG ****************************}
procedure TpointG.affiche;
begin
Fdesigner.Canvas.Pixels [X,Y] := Couleur;
end;
{-------------------------------------------------
------------------------------}
{ Fenetre d edition d un point }
{-------------------------------------------------------------------------------}
procedure TpointG.edition ;
begin
FeditionPoint := TFeditionPoint.create (application) ; // ouverture fenetre EditionPoint
If FeditionPoint.ShowModal = mrOk then
Begin
X := StrToInt (FeditionPoint.EcoordX.text);
Y := StrToInt (FeditionPoint.EcoordY.text);
end;
FeditionPoint.Release; // destruction de la fenetre
end;
{-------------------------------------------------
------------------------------}
{ }
{-------------------------------------------------------------------------------}
constructor TpointG.Init(X_, Y_: Integer; Couleur_: Tcolor);
begin
create;
X := X_;
Y := Y_;
Couleur := couleur_;
end;
{-------------------------------------------------
------------------------------}
{ Affecte la nouvelle couleur à la couleur de TpointG }
{-------------------------------------------------------------------------------}
procedure TpointG.ModifCouleur (newCouleur : Tcolor);
begin
couleur := newCouleur;
end;
{****************************** Tligne ********************************}
procedure Tligne.affiche;
begin
Fdesigner.Canvas.pen.Color := couleur;
Fdesigner.Canvas.MoveTo (X,Y);
Fdesigner.Canvas.LineTo (Xfin,Yfin);
end;
{-------------------------------------------------
------------------------------}
{Fenetre d edition d une ligne }
{-------------------------------------------------------------------------------}
procedure Tligne.edition;
begin
FeditionLigne := TFeditionLigne.Create (application);
If FeditionLigne.ShowModal = mrOk then
Begin
X := StrToInt (FeditionLigne.EcoordX.text);
y := StrToInt (FeditionLigne.EcoordY.text);
Xfin := StrToInt (FeditionLigne.EcoordXfin.text);
yfin := StrToInt (FeditionLigne.EcoordYfin.text);
end;
FeditionLigne.Release; // destruction de la fenetre
end;
{-------------------------------------------------
------------------------------}
{ }
{-------------------------------------------------------------------------------}
constructor Tligne.Init(X_,Y_,Xfin_,Yfin_: Integer; Couleur_: Tcolor);
begin
Inherited Init (X_, Y_, Couleur_);
Xfin := Xfin_;
Yfin := Yfin_;
end;
{-------------------------------------------------
------------------------------}
{ Créations de la liste des objets graphiques
{-------------------------------------------------
------------------------------}
procedure TFdesigner.FormCreate(Sender: TObject);
begin
ListeObjGraph := TObjectList.Create;
end;
{-------------------------------------------------
------------------------------}
{ fermeture de la fenetre et demande d'autorisation de fermeture}
{-------------------------------------------------
------------------------------}
procedure TFdesigner.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ListeObjGraph.free;
ListeObjGraph := nil;
end;
{-------------------------------------------------------------------------------}
{ Modification de la couleur }
{-------------------------------------------------------------------------------}
procedure TFdesigner.BtModifCouleurClick(Sender: TObject);
var index : Integer;
ObjGraph : TpointG;
newcouleur: Tcolor ;
begin
If ColorDialog1.Execute then // ouvre la fenetre de couleur
Begin
newCouleur := ColorDialog1.Color ; // Memorisation de la nouvelle couleur
For index := 0 to (ListeObjGraph.Count -1)do // recherche de chaque objet
begin
ObjGraph := ListeObjGraph.Items [Index] as TpointG;
ObjGraph.ModifCouleur(newcouleur); // affectetion de la nouvelle couleur
end ;
end;
end;
{-------------------------------------------------------------------------------}
{ Redessine tout en remplacent la couleur précédente }
{-------------------------------------------------------------------------------}
procedure TFdesigner.BtRedessineClick(Sender: TObject);
var index : Integer;
ObjGraph : TpointG;
begin
For index := 0 to (ListeObjGraph.Count -1)do
begin
ObjGraph := ListeObjGraph.Items [Index] as TpointG;
ObjGraph.affiche;
end;
end;
{********************************** Tcercle **************************}
procedure Tcercle.affiche;
begin
Fdesigner.Canvas.Ellipse ( X, Y, Xfin, Yfin);
Fdesigner.Canvas.pen.Color := couleur;
end;
{-------------------------------------------------
------------------------------}
{Fenetre d edition du cercle }
{-------------------------------------------------------------------------------}
procedure Tcercle.edition;
begin
FeditionCercle := TFeditionCercle.Create (application);
If FeditionCercle.ShowModal = mrOk then
Begin
X := StrToInt (FeditionCercle.EcoordX.text);
y := StrToInt (FeditionCercle.EcoordY.text);
Xfin := StrToInt (FeditionCercle.EcoordXfin.text);
yfin := StrToInt (FeditionCercle.EcoordYfin.text);
end;
FeditionCercle.Release; // destruction de la fenetre
end;
{-------------------------------------------------------------------------------}
{ }
{-------------------------------------------------------------------------------}
constructor Tcercle.Init(X_, Y_, Xfin_, Yfin_: Integer; Couleur_: Tcolor);
begin
Inherited Init (X_, Y_, Xfin_, Yfin_, Couleur_);
end;
{-------------------------------------------------
------------------------------}
{ Selection de l'élement a créer point, ligne, cercle }
{-------------------------------------------------------------------------------}
procedure TFdesigner.BtEditerClick(Sender: TObject);
var ObjGraphique : TpointG;
begin
Case RadioGroup1.ItemIndex of
0 : //Selection de point
ObjGraphique := TpointG.Init (-5,-5,clBlack );
1 : //Selection de Ligne
ObjGraphique := TLigne.Init (-5,-5,-5,-5,clBlack );
2 : //Selection de Cercle
ObjGraphique := TCercle.Init (-5,-5,-5,-5,clBlack );
end; // du case
ListeObjGraph.Add (ObjGraphique);
ObjGraphique.edition;
ObjGraphique.affiche;
end;
{-------------------------------------------------
------------------------------}
{ Affichage des objets dans une liste }
{-------------------------------------------------------------------------------}
[edtdd]--Message édité par Break-out--[/edtdd]
Marsh Posté le 11-01-2002 à 15:58:50
Je suis en alternance et c avec mon boss que je fait ca (ca fait 2 semaines) j essai de me debrouiller mais il est quand meme la pour m aider mai aujourd hui je gallere
Marsh Posté le 11-01-2002 à 15:59:58
C pour m apprendre a manipuler les Objet
C assez compliqué quand meme quand on s y connai pas trop
Marsh Posté le 11-01-2002 à 16:17:25
est ce que ca ressemblerai a ca :
procedure TFdesigner.BtlistObjetClick(Sender: TObject);
var i : Integer;
ObjGraph : TpointG;
begin
ListBox1.Clear;
For i := 0 to (ListeObjGraph.Count -1) do
begin
ObjGraph := ListeObjGraph.Items[i] as TpointG;
ListBox1.Items.Add (ObjGraph);
end;
end;
en GRAS car il plent ici
ci c faut ne vous foutez pas de moi SVP
Marsh Posté le 11-01-2002 à 20:04:23
si tu veux associer un objet à un élément de ta liste tu dois utiliser AddObject.
ListBox1.Items.AddObject('mon objet',ObjGraph);
Marsh Posté le 11-01-2002 à 09:21:52
je debut dan delphi et je doi realiser qch pouvez vous m aider je vous enverrai le pro par mail