develomagaly
Messages postés46Date d'inscriptionmercredi 5 octobre 2005StatutMembreDernière intervention 3 mai 2006
-
11 oct. 2005 à 14:46
develomagaly
Messages postés46Date d'inscriptionmercredi 5 octobre 2005StatutMembreDernière intervention 3 mai 2006
-
12 oct. 2005 à 14:11
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 !
develomagaly
Messages postés46Date d'inscriptionmercredi 5 octobre 2005StatutMembreDernière intervention 3 mai 2006 12 oct. 2005 à 14:11
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!
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 11 oct. 2005 à 18:30
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