Convertir variable string en TForm ?

Signaler
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009
-
Messages postés
309
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
-
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

Messages postés
148
Date d'inscription
lundi 3 février 2003
Statut
Membre
Dernière intervention
1 février 2006

bah fait unje procedure ki creer un TForm... et tu le nome avec ta variable de type string ;)

sinon , je voi spo :shy)
Messages postés
137
Date d'inscription
dimanche 7 juillet 2002
Statut
Membre
Dernière intervention
11 janvier 2009

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.
Messages postés
148
Date d'inscription
lundi 3 février 2003
Statut
Membre
Dernière intervention
1 février 2006

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)
Messages postés
309
Date d'inscription
jeudi 6 juin 2002
Statut
Membre
Dernière intervention
24 septembre 2008
2
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.