Convertir variable string en TForm ?

cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009 - 22 juin 2004 à 11:53
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 - 23 juin 2004 à 10:39
Bonjour,

J'aimerais convertir une variable de type string en TForm ou tout autre composants existant. Quelqu'un a t-il une idée ?

Merci
Orélien.

4 réponses

TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
22 juin 2004 à 15:00
bah fait unje procedure ki creer un TForm... et tu le nome avec ta variable de type string ;)

sinon , je voi spo :shy)
0
cs_orelien Messages postés 137 Date d'inscription dimanche 7 juillet 2002 Statut Membre Dernière intervention 11 janvier 2009
22 juin 2004 à 22:56
Ok, mais en fait je doit lire dans un fichier texte des noms de fiches qu'il me faut manipuler par la suite.

J'ai essayé ceci :
var
Maform : Tform

begin
Maform := TForm(form1);
Maform.caption := 'nouveau nom';
end;

Mais cela ne fonctionne pas si je remplace "form1" par une variable string.

Orélien.
0
TheShAmAn Messages postés 148 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 1 février 2006
23 juin 2004 à 10:22
heu.. bah pr commencer, tu n'a pa de .create :dissapprove)
Dc ca va etre dur...
et pr renommer, essaie :
Maform.Name := tavar; <=de type string :)

car le .caption, c pr le titre ;)

Voila, voilou :big)
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
23 juin 2004 à 10:39
Salut,

La seule méthode que je vois pour résoudre ton problème est de lister tous tes composants TForm et de comparer leur nom à celui que tu recherche...

comme le code suivant :

procedure TWndMain.Button1Click(Sender: TObject);
var
  iNoComponent : integer;
  sNameForm    : string;
begin
  sNameForm := 'WndMain';

  for iNoComponent := 0 to Application.ComponentCount - 1 do
  begin
    if Application.Components[iNoComponent] is TForm then
    begin
      if (Application.Components[iNoComponent] as TForm).Name = sNameForm then
        ShowMessage((Application.Components[iNoComponent] as TForm).Name);
    end;
  end;
end;


Bonne prog,

loulibier.
0