Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UTILITAIRE MDI & ROUTINES MDI DE BASE


Information sur la source

Catégorie :Formulaire Niveau : Débutant Date de création : 20/12/2002 Date de mise à jour : 20/12/2002 12:50:46 Vu / téléchargé: 7 206 / 869

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Une application MDI permet d'ouvrir plusieurs fenêtres indépendantes l'une de l'autre. Celles-ci se chevauchant, ... dans la fenêtre principale.
C'est un utilitaire permet d'atteindre facilement ( en un clic ) une des fenêtres MDI enfants. Un peu à l'image de l'application Taskman de windows.
J'en profite pour y ajouter des routines MDI de base tel que mettre toutes les fenêtres enfants en cascade, les fermer toutes, ...

L'utilitaire peut être encore améliorer & vos suggestions sont toujours les bienvenues.
 

Source

  • No code. All in the zip.
No code. All in the zip.

Conclusion

Je voudrais pouvoir récupérer l'image ( via l'icône ) de chaque fenêtre enfant et le charger dans chaque bouton de mon utilitaire. Merci pour votre aide.

Pour le moment cette utilitaire est juste un petit projet mais je voudrais l'améliorer à la façon du Alt-tab de Windows. La suite dans quelques temps donc.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de Nono40 le 21/12/2002 18:44:49

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...

signaler à un administrateur
Commentaire de Nono40 le 21/12/2002 20:11:48

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;

          //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.

signaler à un administrateur
Commentaire de sp2308 le 01/01/2008 22:52:20

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

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.