Créer un composant [DELPHI] - Programmation
Marsh Posté le 14-11-2001 à 21:51:10
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
Marsh Posté le 14-11-2001 à 21:57:47
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
Marsh Posté le 14-11-2001 à 21:31:38
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.