Hi,
ich beschäftige mich jetzt zum ersten Mal richtig mit der Erstellung von Komponenten.
Und zwar habe ich ein
SQL-Tool als
ActiveX-Komponente vorliegen, mit dem man recht einfach ohne
SQL-Kenntnisse das
SQL-Statement zusammen basteln kann.
Jetzt soll diese Komponente einfach um die Eigenschaft "Text" erweitert werden, soweit kein Problem
Aber der String von FText soll gefüllt werden, wenn die Funktion SetSQLText aufgerufen wird. Text und GetSQLText sollen also immer gleich sein
SetSQLText muss also abgeleitet werden.
Ich habe das so versucht:
Delphi-Quellcode:
unit FUP_ELS_QB1;
interface
uses
SysUtils, Classes, Controls, OleCtrls, ELS_QBLib_TLB;
type
TFUP_ELS_QB1 =
class(TELS_QB)
protected
{ Protected-Deklarationen }
function SetSQLText(
const sSQLText: WideString): WordBool;
override;
private
{ Private-Deklarationen }
FText:
String;
public
{ Public-Deklarationen }
published
{ Published-Deklarationen }
property Text:
String read FText;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('
ActiveX', [TFUP_ELS_QB1]);
end;
{ TFUP_ELS_QB1 }
function TFUP_ELS_QB1.SetSQLText(
const sSQLText: WideString): WordBool;
begin
inherited SetSQLText(sSQLText);
FText := sSQLText;
end;
end.
Doch Delphi meldet: "Eine statische Methode kann nciht überschrieben werden"
Mache ich etwas falsch?
Im Anhang habe ich noch mal die TLB von der original Komponente, die von Delphi erzeugt worden ist.
Ich hoffe ihr könnt mir helfen
PS: Die Sourcen der Komponente habe ich natürlich nicht...