begin process at 2010 02 09 22:06:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

ouvrir la form portant le nom contenu dans un TLabel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

ouvrir la form portant le nom contenu dans un TLabel

samedi 23 août 2003 à 03:18:12 | ouvrir la form portant le nom contenu dans un TLabel

darkduck

Bonjour,


J'aimerai ouvrir une form portant le nom contenu dans mon TLabel.


J'ai essayé Label1.Caption.Show mais biensur ça ne marche pas car delphi ne sait pas que je veut indiquer par Label1.Caption, le nom d'une form.

J'aimerai donc savoir ce qu'il faut que je fasse?

Merci bcp
samedi 23 août 2003 à 10:58:55 | Re : ouvrir la form portant le nom contenu dans un TLabel

hepho

Pas sur d avoir vraiment compris ton probleme
mais si jai bien compris ....



procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Caption := label1.Caption ;
end;




-------------------------------
Réponse au message :
-------------------------------

> Bonjour,
>
>
> J'aimerai ouvrir une form portant le nom contenu dans mon TLabel.
>
>
> J'ai essayé Label1.Caption.Show mais biensur ça ne marche pas car delphi ne sait pas que je veut indiquer par Label1.Caption, le nom d'une form.
>
> J'aimerai donc savoir ce qu'il faut que je fasse?
>
> Merci bcp
>
samedi 23 août 2003 à 12:47:13 | Re : ouvrir la form portant le nom contenu dans un TLabel

darkduck

Merci pour ton aide mais c pas tout a fait ça mon prob.

Je me réexplique :

Je vais essayer d'etre plus clair:

Disons que j'ai une string s'appelant NomForm

NomForm:=Ma_page;

je veut donc savoir comment ouvrir la Form Ma_page mais sans faire appel a la fonction Ma_page.show car la valeur de NomForm change constament suivant la Form active

Je veut donc savoir comment ouvrir la form dont le nom est contenu dans NomForm

Merci





-------------------------------
Réponse au message :
-------------------------------

> Pas sur d avoir vraiment compris ton probleme
> mais si jai bien compris ....
>
>
>

> procedure TForm1.FormActivate(Sender: TObject);
> begin
> form1.Caption := label1.Caption ;
> end;
>

>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour,
> >
> >
> > J'aimerai ouvrir une form portant le nom contenu dans mon TLabel.
> >
> >
> > J'ai essayé Label1.Caption.Show mais biensur ça ne marche pas car delphi ne sait pas que je veut indiquer par Label1.Caption, le nom d'une form.
> >
> > J'aimerai donc savoir ce qu'il faut que je fasse?
> >
> > Merci bcp
> >
>
samedi 23 août 2003 à 15:36:51 | Re : ouvrir la form portant le nom contenu dans un TLabel

Delphiprog

Administrateur CodeS-SourceS
Effectivement, le problème est un peu plus complexe et voici ma réponse commentée :

procedure TForm1.btnFindClassClick(Sender: TObject);
var
FormClass : TFormClass;
Existing: boolean;
i: integer;
begin
//Rechercher si la classe existe à l'aide de GetClass qui
//a l'avantage de ne pas déclencher d'exception
//s'il ne parvient pas à trouver la classe, contrairement
//à FindClass
FormClass := TFormClass(GetClass(Label1.Caption));
//Si le classe est enregistrée
if FormClass <> nil then
begin
Existing := False;
//Rechercher la première fenêtre de la classe
for i := 0 to Screen.FormCount - 1 do
if Screen.Forms[i] is FormClass then
begin
//Montrer la fenêtre
Screen.Forms[i].Show;
//Restaurer ses dimensions
ShowWindow(Screen.Forms[i].Handle, SW_Restore);
Existing := True;
break;
end;
//S'il n'y a pas de fenêtre visible de ce type
if not Existing then
//alors, il faut en créer une
with FormClass.Create(Self) do
Show;
end;

end;


Et, de plus, pour ne pas référencer, dans l'unité qui contient ce code, toutes les unités que l'on est susceptible d'appeler, il faudra faire appel à la function RegisterClass dans chaque unité que l'on veut pouvoir appeler. Comme la classe appelée doit être connue dès le départ, il est préférable de mettre l'appel à RegisterClass dans une section Initialization.

Exemple, dans Unit2 qui contient Form2 de type TForm2 :

Unit2

type
TForm2 = Class(TForm);
end;
var
Form2: TForm2;
implementation

// etc

initialization
RegisterClass(TForm2);

end.


En résumé, si Label1.Caption (dans Form1) est égal à TForm2, alors, le code recherchera s'il existe une classe de ce nom. Si la classe est trouvée, alors on recherche si une fiche de ce type existe en mémoire et, si oui, on l'affiche et si non, on la crée.

Ce code fait appel à la notion de référence de classe (ici TFormClass).
Quand je vois que tu écris Label1.Caption.Show, je ne suis pas sûr que cette notion te soit familière.

Alors, un petit tour dans l'aide en ligne sur le Pascal Objet (voir "références de classe") t'aidera à comprendre la démarche employée ici, pas évidente au premier abord.

May Delphi be with you


-------------------------------
Réponse au message :
-------------------------------

> Merci pour ton aide mais c pas tout a fait ça mon prob.
>
> Je me réexplique :
>
> Je vais essayer d'etre plus clair:
>
> Disons que j'ai une string s'appelant NomForm
>
> NomForm:=Ma_page;
>
> je veut donc savoir comment ouvrir la Form Ma_page mais sans faire appel a la fonction Ma_page.show car la valeur de NomForm change constament suivant la Form active
>
> Je veut donc savoir comment ouvrir la form dont le nom est contenu dans NomForm
>
> Merci
>
>
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Pas sur d avoir vraiment compris ton probleme
> > mais si jai bien compris ....
> >
> >
> >

> > procedure TForm1.FormActivate(Sender: TObject);
> > begin
> > form1.Caption := label1.Caption ;
> > end;
> >

> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bonjour,
> > >
> > >
> > > J'aimerai ouvrir une form portant le nom contenu dans mon TLabel.
> > >
> > >
> > > J'ai essayé Label1.Caption.Show mais biensur ça ne marche pas car delphi ne sait pas que je veut indiquer par Label1.Caption, le nom d'une form.
> > >
> > > J'aimerai donc savoir ce qu'il faut que je fasse?
> > >
> > > Merci bcp
> > >
> >
>


Cette discussion est classée dans : ouvrir, form, contenu, tlabel, portant


Répondre à ce message

Sujets en rapport avec ce message

Aide urgente sur la création à la volée [ par rindra ] Voila, j'aurai une question de débutant à poser :kan je lance delphi, g une form qui est crée automatiquement, c'est comme ça chez tout le monde norma Ouvrir une seul fois une Form [ par kanabis ] Bonjour ! Je voudrais savoir comment faire pour qu'une Form soit ouverte une seul fois seulement (à l'aide d'un fichier .ini...). La Form doit être da Probème pour ouvrir une form. [ par Youyou0214 ] C'est une question hyper simple mais je suis un débutant dans delphi alors voilà:Comment on fait pour faire apparaître une form en clikant sur une ima Comment envoyer le contenu d'une form par mail? [ par Youyou0214 ] Imaginons que je fasse un logiciel ou l'utilisateur doit s'incrir pour acceder au logiciel. il s inscrit et j aimerai le resultat de l inscription me Comment ouvrir et afficher l'interieur d'un dossier [ par VashTheStampede ] Je ne trouve pas comment on peut ouvrir une nouvelle form me permettant d'ouvrir et d'accéder à tout les composants contenu à l'interieur d'un dossier comment sauvgarder le contenu d'une form!! [ par snakefinger ] salut ,comment sauvgarder chaque mouvement effectuer par un utilisateur example : deplacement d'un toolBar.merci d'avance. ouvrir un document word ds ma form [ par lnicos ] Voilà, ce que j'aimerais c'est que quelqu'un me fasse une petite appli pour me montrer toutes les fonctionnalités permettant d'utilisant des documents Suppression de composants [ par xzenou ] Bonjour;J'ai bien sur une question à poser, j'utilise des composants Tlabel que je crée 'dynamiquement' avec une simple fonction create.Quand je ferme dupliquer le contenu d une Form dans une autre [ par mimimou ] Bonjour a tous...Je voudrais inclure le contenu d une form dans les pages d un OfficeTabPager d une autre cree en runtime. J ai donc ma Form principal Comment imprimer un contenu... [ par Lunasoft ] Salut!J'ai une question peu pertinente. Mais avant de la poser, j'ai dû chercher ici et ailleurs (sans réponse).J'ai un Form ayant un Dbgrid connecté


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales