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.