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

Lazarus Pascal Discussion :

Agir sur le canvas d'une TForm à partir d'une méthode d'une class qui de dérive pas de la TForm [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable maintenance
    Inscrit en
    Mai 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable maintenance

    Informations forums :
    Inscription : Mai 2012
    Messages : 12
    Par défaut Agir sur le canvas d'une TForm à partir d'une méthode d'une class qui de dérive pas de la TForm
    Bonjour.
    je cherche comment agir sur le canvas d'une TForm à partir d'une méthode d'un class qui de dérive pas de la TForm.
    Faut il passer la TForm comme paramètre de la méthode.
    Si quelqu'un a un exemple, il serait le bien venu.
    Merci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Par défaut
    Bonjour,

    Il me semble que c'est plus direct et plus réutilisable de passer seulement le canvas que son conteneur (Le TForm). Mais ça marcherait aussi bien.

    Ce qui donnerait quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    procedure Dessine ( const Canvas : TCanvas );
     
    begin
      Canvas.Moveto ( 0, 100 );
      Canvas.LineTo ( 100, 100 );
    end;
     
    procedure Dessine ( const Form : TForm ); overload;
     
    begin
      Form.Canvas.Moveto ( 0, 100 );
      Form.Canvas.LineTo ( 100, 100 );
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Dessine ( Canvas );
      Dessine ( Self ); // fait la même chose
    end;
    Bien sûr, la procedure Dessine sera plus probablement la méthode d'un objet dont elle utilisera les propriétés, et/ou elle aura plus de paramètres.

    Ceci dit, je ne pense pas que ce soit une bonne idée de dessiner directement sur le canvas de la Form. Je mettrais une TImage ou une TPaintBox sur la Form, et je dessinerais dans leur canvas.

  3. #3
    Membre averti
    Homme Profil pro
    Responsable maintenance
    Inscrit en
    Mai 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable maintenance

    Informations forums :
    Inscription : Mai 2012
    Messages : 12
    Par défaut
    Merci de ton aide.
    Effectivement il es plus judicieux de ne pas dessiner directement dans la Form.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2008, 16h47
  2. Charger une Textbox à partir d'un combobox lié à une table
    Par fomblardo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/03/2008, 13h24
  3. Réponses: 8
    Dernier message: 24/01/2008, 22h36
  4. Réponses: 2
    Dernier message: 05/10/2007, 23h49
  5. Réponses: 3
    Dernier message: 08/10/2005, 00h02

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