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 :

VA création descendant d'un TLabel


Sujet :

Lazarus Pascal

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 877
    Points : 11 369
    Points
    11 369
    Billets dans le blog
    6
    Par défaut VA création descendant d'un TLabel
    Bonjour,

    Je m'essaye à Lazarus ( 0.9.30 ; W7 64 bits) depuis quelques heures seulement.

    Souhaitant adapter des codes Delphi pour m'entraîner et évaluer la facilité de portabilité, je cherche à le faire sur un descendant très simple de TLabel qui surcharge la fonction GetText.

    le constructeur permet de "remplacer" le Label initial, passé en var

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    constructor TDepasseLabel.Create(var aLabel: TLabel; // ...
    begin
      //...
      aLabel:=self; 
    end;
    A l'exécution, j'obtiens une violation d'accès, dès la création, apparemment sur l'appel suivant (je suppose engendrée par ma surcharge de la méthode GetText) à la fonction TControl.GetText de l'unité Control.inc de Lazarus :

    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
    {------------------------------------------------------------------------------
      TControl GetText
    ------------------------------------------------------------------------------}
    function TControl.GetText: TCaption;
    var
      len: Integer;
    begin
      // Check if GetTextBuf is overridden, otherwise
      // we can call RealGetText directly
      if TMethod(@Self.GetTextBuf).Code = Pointer(@TControl.GetTextBuf) //ici !
      then begin
        Result := RealGetText;
      end
      else begin
        // Bummer, we have to do it the compatible way.
    La syntaxe avec "@" ne m'est pas courante en Delphi, aurais-je dû utiliser aLabel:=@self, ou @aLabel:=@self, ou ?
    Ou bien une autre piste ?

    Au passage, je récolte une erreur "Error: Project raised exception class 'External:SIGSEGV'" à l'ecécution à partir de l'EDI, ce qui ne facilite pas la trace. Sur le net, il semble que ce puisse être un bug du debugger ?

    Merci pour vos idées et conseils.

  2. #2
    Membre éclairé Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Points : 790
    Points
    790
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    Au passage, je récolte une erreur "Error: Project raised exception class 'External:SIGSEGV'" à l'ecécution à partir de l'EDI, ce qui ne facilite pas la trace. Sur le net, il semble que ce puisse être un bug du debugger ?
    Bonjour

    Effectivement, une mauvaise cohabitation entre le débugger et l'antivirus.
    Pour ma part, j'ai "résolu" ce problème en configurant mon antivirus (BitDefender) en mode "Jeux" et en ajoutant à la liste des jeux autorisés le chemin du débugger (C:\lazarus\mingw\bin\gdb.exe)
    Ce n'est pas le top des solutions, mais au moins, je peux déboguer.
    En attendant que le débogueur soit rendu compatible, ce qui n'est pas pour demain au regard de la roadmap Lazarus bugtracker.

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 877
    Points : 11 369
    Points
    11 369
    Billets dans le blog
    6
    Par défaut
    Merci, je vais essayer de l'exclure d'Avira. Bon week-end.

Discussions similaires

  1. Création d'un index descendant
    Par TsCyrille dans le forum Requêtes
    Réponses: 12
    Dernier message: 05/06/2012, 22h53
  2. Réponses: 1
    Dernier message: 14/11/2008, 00h24
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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