Transformer un string en Tframe et inversement [Résolu]

Signaler
Messages postés
46
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
3 mai 2006
-
Messages postés
46
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
3 mai 2006
-
Bonjour,

Je vous explique en deux mots mon problème :
Voila, je recupere à partir d'une base de données le nom d'une fenêtre à afficher ( donc il s'agit bien d'un STRING)
Le probleme est que je voudrait afficher la fenetre en ecrivant :
Application.CreateForm(NomFenetre, fenetre);
windows.SetParent(NomFenetre.Handle,FrmSimulation.PnlDonnees.Handle);

Le probleme est que NomFenetre est de type String et pas TFrame alors je voudrait savoir s'il existe de transformer un Tframe en String ou inversement.
Je me galère depuis ce matin a trouver une solution alors sa serait cool si quelqu'un pourrait me donner la solution.
Merci a tous !

5 réponses

Messages postés
46
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
3 mai 2006

ok j'ai compris
Autres petites questions :
- la fiche a ouvrir en question doit être en fsMdiChild puisqu'elle doit apparaitre à la place d'un label sur une autre fiche fsMdiChild.
Et sa pour l'afficher j'ai du mal car il ne faut pas mettre application.formCreate(TfrmDonIdentification,FrmDonIdentification) au début alors j'ai essayé de le mettre avant l'appelle de GetForm().
Sa marche po!
Snif!
Messages postés
121
Date d'inscription
jeudi 24 janvier 2002
Statut
Membre
Dernière intervention
13 avril 2010

a mon avis tu dois créer un fichier que appellera ensuite avec le contenu de ton string issu de ta base...
Messages postés
436
Date d'inscription
vendredi 7 novembre 2003
Statut
Membre
Dernière intervention
8 octobre 2008
3
Bonjour,
Ou bien tu génére un tableau de TFrame en nommant chaque TFrame des noms de ta base de données.
Tes TFrame étant instanciés à l'exécution ...

Dom
Messages postés
46
Date d'inscription
mercredi 5 octobre 2005
Statut
Membre
Dernière intervention
3 mai 2006

J'ai pas trop compris ce que vous m'expliquez
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
1
Voila une solution simple et pratique :
<hr size= "2" width="100%">{ A mettre juste après implementation. }

function GetForm( const Caption: string): TCustomForm; // Fonction de recherche.
var
i: Integer;
begin
Result : = nil;
{ Parcours de tous les composants (dont les fiches) de l'application. }
for i := 0 to Application.ComponentCount -1 do
if Application.Components[i] is TCustomForm then
if (Application.Components[i] as TCustomForm).Caption = Caption then
begin
Result := Application.Components[i] as TCustomForm;
Exit;
end ;
if Result = nil then
raise Exception.Create('La fiche spécifiée n''existe pas');
end;

{ Test de la fonction ci-dessus. }

procedure TForm1.Button1Click(Sender: TObject);
begin
GetForm('Form 2').Show; // Affiche la fenetre qui a pour caption "Form 2"
end;
<hr size="2" width="100%">
Remarque: la fiche doit exister et avoir été préalablement crée par Application.CreateForm().
Remarque 2: n'apelle pas CreateForm(), Delphi se débrouille tout seul pour le faire au lancement de la'pplicaion et se charge de l'appel à Release à sa destruction

@ ++
Florent

Si tu ne te plantes pas ......
tu ne poussera jamais