IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Grand débutant adresser un composant TForm dans une procédure


Sujet :

Delphi

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2020
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Grand débutant adresser un composant TForm dans une procédure
    Bonjour , Comment adresser un composant dans une procedure ?
    J'ai un tform avec un composant Label , et je suivre le deroulement des opérations, aussi ai je fait une procedure dans laquelle je met une variable à jour et voudrait l'afficher dans le tlabel de ma form , mais le compilateur ne veut pas .
    Je sais c'est surement idiot mais je butte la dessus .
    si je marque label1.text:='e' ou tform1.label1.text:='e' , le compilateur ne veut pas .
    Merci de votre aide !

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Vous devriez lire : https://fbeaulieu.developpez.com/guide/


    Tout dépend où !

    une procedure ou une fonction dans la même unité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure MaProc();
    begin
      form1.label1.text:='e'; // cela utilisera la variable globale par défaut que vous avez du conservé (une pratique dont il faut se méfier par la suite)
    end;
    une méthode de la classe TForm1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.MaMethode();
    begin
      self.label1.text:='e'; 
    end;
    a savoir que self est implicite dans ce cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.MaMethode();
    begin
      label1.text:='e'; 
    end;
    et enfin dans une autre unité, là faut en plus le uses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure MaProcDansUnAutreFichier();
    begin
      unit1.form1.label1.text:='e'; // cela utilisera la variable globale par défaut ...
    end;
    unit1 n'est pas obligatoire mais c'est à titre démonstratif
    D'ailleurs le fichier DPR utilise cette fameuse variable par défaut, elle n'est utile qu'à cela en réalité, c'est un cas très particulier avec un uses dans une autre unité

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    begin
      Application.Initialize();
      Application.CreateForm(TForm1, Form1);
    end;

  3. #3
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 504
    Points : 2 776
    Points
    2 776
    Billets dans le blog
    10
    Par défaut
    Citation Envoyé par Fly_Box Voir le message
    Bonjour , Comment adresser un composant dans une procedure ?
    J'ai un tform avec un composant Label , et je suivre le deroulement des opérations, aussi ai je fait une procedure dans laquelle je met une variable à jour et voudrait l'afficher dans le tlabel de ma form , mais le compilateur ne veut pas .
    Je sais c'est surement idiot mais je butte la dessus .
    si je marque label1.text:='e' ou tform1.label1.text:='e' , le compilateur ne veut pas .
    Merci de votre aide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form1.label1.text := 'e'
    Form1 pour accéder à la class Tform1. Form1 est instanciée au lancement de l'application

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 114
    Points : 41 244
    Points
    41 244
    Billets dans le blog
    63
    Par défaut
    Bonjour et bienvenue,

    Une petite information quand même Label1.text:='e' c'est pour les programmes FMX, s'il s'agit d'un programme VCL, il faut écrire Label1.caption:='e'.

    C'est pour ce genre de "détail" qu'il faut toujours mieux précisé la version de Delphi utilisée et dans le cas des versions récentes s'il s'agit d'un programme FMX (multi-plateforme) ou VCL (windows uniquement)

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 730
    Points : 5 391
    Points
    5 391
    Par défaut
    En plus, de ça, tu risques de ne pas voir le résultat à l'écran tant que ta routine ne sera pas terminé.
    Il existe des techniques plus ou moins évoluée pour résoudre ce problème.
    La plus basique d'entre elle consiste à appeler Application.ProcessMessages après le changement de libellé.

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    C'est pour ce genre de "détail" qu'il faut toujours mieux précisé la version de Delphi utilisée et dans le cas des versions récentes s'il s'agit d'un programme FMX (multi-plateforme) ou VCL (windows uniquement)
    D'ailleurs le numéro et le texte de l'erreur aurait précisé ce problème de framework

Discussions similaires

  1. [Composant] Dialogue dans une propriété
    Par Raylemon dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/08/2005, 19h05
  2. TForm dans une DLL avec utilisation d'Interface
    Par guedelmalin dans le forum Langage
    Réponses: 13
    Dernier message: 17/06/2005, 11h58
  3. Réponses: 13
    Dernier message: 25/03/2005, 11h00
  4. Réponses: 2
    Dernier message: 15/11/2004, 15h12
  5. [RAVE]Composant RTF dans une feuille RAVE ?
    Par hpalpha dans le forum Rave
    Réponses: 3
    Dernier message: 29/03/2004, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo