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 :

Erreur Create (Self) [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Jlmat
    Homme Profil pro
    Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Inscrit en
    Avril 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 381
    Par défaut Erreur Create (Self)
    Bonjour,

    Je tente d'écrire un composant TGroupeRadio pour différencier les couleurs et police entre le fond du composant et les items... Voir discussion précédente ici

    J'ai commencé à écrire le composant et en compilant en mode conception (pas installé avec Register), j'ai le code suivant dans la création de la fiche principale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      GrpRadio.Create(Self);
      GrpRadio.Parent := Form1;
    end;
    A l'exécution, l'erreur suivante apparaît:

    Nom : Aide4.jpg
Affichages : 123
Taille : 25,1 Ko

    Mon composant n'étant pas terminé, j'ai neutralisé le code des constructeur et destructeur en laissant juste les lignes inherited


    toujours pareil, je réécris un composant minimal:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Unité du composant:
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, Messages, Controls, Graphics, ExtCtrls, StdCtrls;   
     
    type
     
      TSampleShape = class(TGraphicControl)
      private
        FPen: TPen;
        FBrush: TBrush;
        procedure SetBrush(Value: TBrush);
        procedure SetPen(Value: TPen);
      protected
        procedure Paint;
      published
        property Height default 65;
        property Width  default 65;
        property Brush: TBrush read FBrush write SetBrush;
        property Pen: TPen read FPen write SetPen;
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      end;
    Partie implémentation:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    constructor TSampleShape.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      Width  := 100;
      Height := 100;
      FPen   := TPen.Create;
      FBrush := TBrush.Create;
    end;
    destructor TSampleShape.Destroy;
    begin
      FPen.Free;
      FBrush.Free;
      inherited Destroy;
    end;
     
    procedure TSampleShape.Paint;
    begin
      with Canvas do
      begin
        Pen := FPen;
        Brush := FBrush;
        Rectangle(0, 0, Width, Height);
      end;
    end;
     
    procedure TSampleShape.SetBrush(Value: TBrush);
    begin
      FBrush.Assign(Value);
    end;
    procedure TSampleShape.SetPen(Value: TPen);
    begin
      FPen.Assign(Value);
    end;
    et le programme de la fiche:
    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
     
    var
      Form1 : TForm1;
      SH      : TSampleShape;
     
    implementation
    {$R *.lfm}
     
    { TForm1 }
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      SH.Create(Self);
      SH.Parent := Form1;
    end;
    Donc je ne pense qu'il y ait d'erreur dans le code du composant, je soupçonne encore une directive ou une option de compilation ésotérique!

    si quelqu'un sait pourquoi Self plante?
    merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 943
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 943
    Billets dans le blog
    6
    Par défaut
    Essaye plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SH := TSampleShape.Create(Self);
    Il faut garder la référence à l'objet créé dans la variable adhoc que tu utilises ensuite.
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre éclairé
    Avatar de Jlmat
    Homme Profil pro
    Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Inscrit en
    Avril 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ex Informaticien et Consultant en Ressources Humaines, Retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 381
    Par défaut
    Bien joué Tourlourou!

    merci

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

Discussions similaires

  1. Erreur Create table/foreign Key
    Par vashe9 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/09/2011, 16h29
  2. Erreur Create table lors d'un import Transport Tablespace
    Par ccaye dans le forum Import/Export
    Réponses: 3
    Dernier message: 26/05/2010, 16h46
  3. erreur create table
    Par Snooker dans le forum MySQL
    Réponses: 1
    Dernier message: 02/04/2010, 20h46
  4. [EJB Session] erreur create entité
    Par trin86 dans le forum Java EE
    Réponses: 4
    Dernier message: 29/09/2009, 11h43
  5. erreur create table
    Par slefevre01 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/02/2006, 17h43

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