Plusieurs forms dans une unité

Résolu
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 2 févr. 2007 à 12:11
sylvunix Messages postés 93 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 4 mars 2009 - 2 févr. 2007 à 12:58
Salut a tous,
j'ai une question toute bete : est il possible de mettre plusieurs forms dans une unité?

du genre

unit unit1;

interface

type
    Tfrm1 = class(TForm)
    ...
    end;

    TFrm2 = class(TForm)
    ...
    end;

implementation

{$R *.dfm} // <= peut etre en créant 2 DFMs, ou en mettant le code des 2 forms dans le meme DFM?
...

Merci.

4 réponses

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
2 févr. 2007 à 12:30
Merci pour votre réponse

en fait j'ai trouvé. C'est pas super pratique, mais c'est utile pour integrer une 2eme form peu importante dans une unité qui contient deja une form.
Il n'est possible d'afficher qu'une seule form en faisant "basculer fiche/unité" (le .dfm de meme nom que la .pas)

Voici le code:

unit1.pas
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

  TForm2 = class(TForm)
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;
  Form2: TForm2;

implementation

{$R *.dfm} // <= ici, Form1 doit etre dans Unit1.dfm, et il faut ABSOLUMENT utiliser "*.dfm" et pas le nom
{$R Unit1Form2.dfm} // <= le dfm de la deuxieme form

end.

unit1.dfm
object Form1: TForm1
  Left = 124
  Top = 245
  Width = 870
  Height = 640
  Caption = 'Form1'
  Color = clGreen
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Shell Dlg 2'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end

unit1Form2.dfm
object Form2: TForm2
  Left = 198
  Top = 160
  Width = 870
  Height = 640
  Caption = 'Form2'
  Color = clRed
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Shell Dlg 2'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end

 
3
Utilisateur anonyme
2 févr. 2007 à 12:43
Ho la la la : il faut arreter la moquette mon grand .

Ca ne sert strictement à rien : autant rajouté une form directement
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
2 févr. 2007 à 12:48
Salut,

c'est quoi l'intérêt de la chose
 
@+
Cirec

<hr size="2" />
0
sylvunix Messages postés 93 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 4 mars 2009
2 févr. 2007 à 12:58
Le seul intérêt qu'on puisse y trouver est ... de rendre le source illisible !

Peux-tu nous préciser ton besoin ? Je pense qu'il y a obligatoirement une solution beaucoup plus élégante.
0
Rejoignez-nous