Hallo,
wie der Titel schon aussagt, habe ich ein kleines Problem beim Erstellen einer Komponente, welche ein TStrings Objekt als Property im
OI anbieten soll.
Ich habe mich beim Erstellen, an diverse Tutorials gehalten (zumindest versucht) aber jedesmal, wenn ich die Komponente dann auf ein Formular ziehe, der Property
SQL (das ist die TStrings Property) einen String zuweise und das ganze dann noch ein zweites mal versuche, bekomme ich Zugriffsverletzungen, so, dass nur noch das Beenden von Delphi hilft.
Ich verwende Delphi 7 Professional.
Delphi-Quellcode:
unit GSQuery;
interface
uses
SysUtils, Classes;
type
TGSQuery =
class(TComponent)
private
FSQL: TStringList;
procedure setSQL(
const Value: TStringList);
{ Private-Deklarationen }
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
constructor Create(aOwner: TComponent);
override;
destructor Destroy;
override;
published
{ Published-Deklarationen }
property SQL: TStringList
read FSQL
write setSQL;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
GS', [TGSQuery]);
end;
{ TGSQuery }
constructor TGSQuery.Create(aOwner: TComponent);
begin
inherited;
FSQL := TStringList.Create;
end;
destructor TGSQuery.Destroy;
begin
FSQL.Free;
inherited;
end;
procedure TGSQuery.setSQL(
const Value: TStringList);
begin
FSQL := Value;
end;
end.
Was mache ich da nur falsch?