Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3204 connectés 

 


Dernière réponse
Sujet : [DELPHI] Créer un composant
rufo up pour mon pb de RichEdit...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
rufo up pour mon pb de RichEdit...
rufo

JWhy a écrit a écrit :

pas sur que ca soit ca mais dans ton create, cree des TStringList au lieu de creer des TStrings;
 
le TSTrings a plein de methodes virtuelle pures (virtual; abstract; dans delphi) et il ne faut pas le creer directement (cf. l'aide sur TStrings dans Delphi)
 
apres, je sais pas.. au lieu de le poser sur ta form, essaye de le creer dans le code pour tester avant. ca sera nettement plus facile pour debugger  




 
effectivement, dans un exemple du bouquin, ils font un TSTringList :)
 
merci du conseil

JWhy pas sur que ca soit ca mais dans ton create, cree des TStringList au lieu de creer des TStrings;
 
le TSTrings a plein de methodes virtuelle pures (virtual; abstract; dans delphi) et il ne faut pas le creer directement (cf. l'aide sur TStrings dans Delphi)
 
apres, je sais pas.. au lieu de le poser sur ta form, essaye de le creer dans le code pour tester avant. ca sera nettement plus facile pour debugger
rufo voilà, je voudrais créer un composant non visuel capable d'analyser du code HTML dont la source est un TRichEdit. En sortie, je veux avoir 4 TStrings :
- un qui contient les balises html trouvées
- un qui contient les positions des balises dans le TRichEdit (exprimé en nb de caractères)
- un qui contient les paramètres des balises
- enfin, un qui contient les attributs des paramètres.
 
voilà le code déjà tapé pour créer mon composant et ses attributs. Le composant s'installe bien, mais quand je veux manipuler les propriétés du composant, je me prends pleins demessages d'erreurs :(... Alors si l'un d'entre-vous pouvait me dire où j'ai merdé. Merci :)
 
unit ParserHTML;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Comctrls;
 
type
  TParserHTML = class(TComponent)
  private
    { Déclarations privées }
    FBalises: TStrings ;
    FPositions: TStrings ;
    FParametres: TStrings ;
    FAttributs: TStrings ;
    FSource: TRichEdit ;
    function GetBalises: TStrings ;
    function GetPositions: TStrings ;
    function GetParametres: TStrings ;
    function GetAttributs: TStrings ;
    function GetSource: TRichEdit ;
    procedure SetBalises (Value: TStrings) ;
    procedure SetPositions (Value: TStrings) ;
    procedure SetParametres (Value: TStrings) ;
    procedure SetAttributs (Value: TStrings) ;
 
  public
    { Déclarations publiques }
    constructor Create(AOwner: TComponent) ; override ;
    destructor Destroy ; override ;
    procedure Analyse ;
  published
    { Déclarations publiées }
    property Balises: TStrings
             read GetBalises write SetBalises ;
    property Positions: TStrings
             read GetPositions write SetPositions ;
    property Parametres: TStrings
             read GetParametres write SetParametres ;
    property Attributs: TStrings
             read GetAttributs write SetAttributs ;
    property Source: TRichEdit
             read GetSource ;
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
  RegisterComponents('Parser HTML', [TParserHTML]);
end;
 
constructor TParserHTML.Create(AOwner: TComponent) ;
begin
     // Constructeur du composant
     inherited Create(AOwner) ;
     FBalises := TStrings.Create ;
     FPositions := TStrings.Create ;
     FParametres := TStrings.Create ;
     FAttributs := TStrings.Create ;
     FSource := TRichEdit.Create(AOwner) ;
end ;
 
destructor TParserHTML.Destroy ;
begin
     // Destructeur du composant
     FBalises.Free ;
     FPositions.Free ;
     FParametres.Free ;
     FAttributs.Free ;
     FSource.Free ;
     inherited Destroy ;
end ;
 
function TParserHTML.GetBalises: TStrings ;
begin
     // Renvoie la liste des balises trouvées
     Result := FBalises ;
end ;
 
function TParserHTML.GetPositions: TStrings ;
begin
     // Renvoie la liste des positions (en caractères) des balises trouvées
     Result := FPositions ;
end ;
 
function TParserHTML.GetParametres: TStrings ;
begin
     // Renvoie la liste des paramètres des balises trouvées
     Result := FParametres ;
end ;
 
function TParserHTML.GetAttributs: TStrings ;
begin
     // Renvoie la liste des attributs des paramètres des balises trouvées
     Result := FAttributs ;
end ;
 
function TParserHTML.GetSource: TRichEdit ;
begin
     // Renvoie la source
     Result := FSource ;
end ;
 
procedure TParserHTML.SetBalises(Value: TStrings) ;
begin
     FBalises.Assign(Value) ;
end ;
 
procedure TParserHTML.SetPositions(Value: TStrings) ;
begin
     FPositions.Assign(Value) ;
end ;
 
procedure TParserHTML.SetParametres(Value: TStrings) ;
begin
     FParametres.Assign(Value) ;
end ;
 
procedure TParserHTML.SetAttributs(Value: TStrings) ;
begin
     FAttributs.Assign(Value) ;
end ;
 
procedure TParserHTML.Analyse() ;
begin
     // Lance la procédure d'analyse
     Showmessage('Analyse lancée à partir de ' + FSource.Name) ;
end ;
 
end.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)