sp2308
Messages postés13Date d'inscriptionvendredi 28 décembre 2007StatutMembreDernière intervention14 avril 2013 1 janv. 2008 à 22:52
bnjour
Je debute totalement et souhaiterais savoir comment faire pour afficher un autre formulaire car l ajout d un item dans le menu et la nouvelle proceudre onclick associee ne me permet pas d afficher autre chose que la meme fenetre.
Je souhaiterais donc appeller une fenetre que j aurais cree moi mais j en suis incapable je debute totalement...
merci de votre aide et de votre patience
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 21 déc. 2002 à 20:11
Pour créer une fenêtre enfant, ce n'est pas application.CreateForm qu'il faut appeler mais :
procedure TForm_Main.Menu_Mdi_NewClick(Sender: TObject);
Var Form:TForm1;
begin
if Mdichildcount <= 4 then Form:=TForm1.Create(Application);
if Mdichildcount > 4 then Menu_Mdi_New.Enabled := False;
end;
Ainsi tu peux supprimer les déclaration de Form2,Form3 et Form4 situées dans Form1. Car ceci t'a obligé à limiter le nombre de fenêtre enfants alors que ce n'est pas utile.
Pour récupérer l'icone de la fenêtre enfant, voici la nouvelle procédure Tache() :
procedure TForm_Tache.Tache();
var SpeedBouton:TSpeedButton;
Cpt:Integer;
Bmp1,Bmp2:TBitMap;
begin
if Form_Main.MDIChildCount > 0 then
for Cpt := Form_Main.MDIChildCount-1 downto 0 do
begin
SpeedBouton := TSpeedButton.Create(self);
SpeedBouton.Parent := Form_Tache;
SpeedBouton.Name := 'SP_Tache' + IntToStr(Cpt);
SpeedBouton.Height := SP_Height;
SpeedBouton.Width := SP_Width;
SpeedBouton.Top := (Cpt - MDIChildCount) * (SP_Height + EcartH);
SpeedBouton.Visible := True;
SpeedBouton.Caption := Form_Main.MDIChildren[Cpt].Caption;
SpeedBouton.Tag := Cpt;
SpeedBouton.Font.Size := 8;
SpeedBouton.OnClick := Form_Tache.OnClick;
Pour le tester j'ai ajouté une icone ménuellement dans le OnCreate de TForm1 : Icon.LoadFromFile('MonIcone.Ico'). Mais le mieux serai d'ajouter un fichier .RES avec les icones.
Bonne continuation,
Nono.
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 21 déc. 2002 à 18:44
Dans la procédure TForm_Tache.Tache();
Il faut supprimer la ligne suivante pour ne pas avoir d'erreur à la fermeture de l'application :
Image := TImage.Create(self);
Pour les icones, je vais voir si je trouve quelque-chose...
1 janv. 2008 à 22:52
Je debute totalement et souhaiterais savoir comment faire pour afficher un autre formulaire car l ajout d un item dans le menu et la nouvelle proceudre onclick associee ne me permet pas d afficher autre chose que la meme fenetre.
Je souhaiterais donc appeller une fenetre que j aurais cree moi mais j en suis incapable je debute totalement...
merci de votre aide et de votre patience
21 déc. 2002 à 20:11
procedure TForm_Main.Menu_Mdi_NewClick(Sender: TObject);
Var Form:TForm1;
begin
if Mdichildcount <= 4 then Form:=TForm1.Create(Application);
if Mdichildcount > 4 then Menu_Mdi_New.Enabled := False;
end;
Ainsi tu peux supprimer les déclaration de Form2,Form3 et Form4 situées dans Form1. Car ceci t'a obligé à limiter le nombre de fenêtre enfants alors que ce n'est pas utile.
Pour récupérer l'icone de la fenêtre enfant, voici la nouvelle procédure Tache() :
procedure TForm_Tache.Tache();
var SpeedBouton:TSpeedButton;
Cpt:Integer;
Bmp1,Bmp2:TBitMap;
begin
if Form_Main.MDIChildCount > 0 then
for Cpt := Form_Main.MDIChildCount-1 downto 0 do
begin
SpeedBouton := TSpeedButton.Create(self);
SpeedBouton.Parent := Form_Tache;
SpeedBouton.Name := 'SP_Tache' + IntToStr(Cpt);
SpeedBouton.Height := SP_Height;
SpeedBouton.Width := SP_Width;
SpeedBouton.Top := (Cpt - MDIChildCount) * (SP_Height + EcartH);
SpeedBouton.Visible := True;
SpeedBouton.Caption := Form_Main.MDIChildren[Cpt].Caption;
SpeedBouton.Tag := Cpt;
SpeedBouton.Font.Size := 8;
SpeedBouton.OnClick := Form_Tache.OnClick;
//Associer une image au bouton
Bmp1:=TBitMap.Create;
Bmp2:=TBitMap.Create;
Try
bmp1.Width :=32;
bmp1.Height:=32;
bmp1.Canvas.Brush.Color:=clbtnface;
bmp1.Canvas.FillRect(Bmp1.Canvas.ClipRect);
bmp1.Canvas.StretchDraw(Bmp1.Canvas.ClipRect,Form_Main.MDIChildren[Cpt].Icon)
bmp2.Width :=20;
bmp2.Height:=20;
bmp2.Canvas.StretchDraw(Bmp2.Canvas.ClipRect,Bmp1);
SpeedBouton.Glyph.Assign(bmp2);
Finally
Bmp1.Free;
Bmp2.Free;
End;
end;
end;
Pour le tester j'ai ajouté une icone ménuellement dans le OnCreate de TForm1 : Icon.LoadFromFile('MonIcone.Ico'). Mais le mieux serai d'ajouter un fichier .RES avec les icones.
Bonne continuation,
Nono.
21 déc. 2002 à 18:44
Il faut supprimer la ligne suivante pour ne pas avoir d'erreur à la fermeture de l'application :
Image := TImage.Create(self);
Pour les icones, je vais voir si je trouve quelque-chose...