Vielen Dank für die schnellen Antworten, leider komme ich damit aber nicht zurecht. Hier kommt mal ein Auszug aus meinem Code (ich hoffe, dass der Kontext reicht):
Delphi-Quellcode:
unit MyDBUnit
type
TMyCDS =
class (TClientDataSet)
...
public
constructor Create(AOwner : TComponent);
override;
...
end;
TWzg =
class (TMyCDS)
const
CDSFileName :
string = '
Wzg.cds';
public
constructor Create(AOwner : TComponent):
override
...
end;
constructor TMyCDS.Create(AOwner : TComponent);
begin
inherited;
...
end;
constructor TWzg.Create(AOwner: TComponent);
begin
inherited;
FileName := ProgInstPath + '
data\' + CDSFileName;
if FileExists(FileName)
then
Open
else
CreateNewCDSFile;
with IndexDefs
do begin
with AddIndexDef
do begin
Name := '
IdxMain';
Fields := '
ArtNr;Farbe;Dicke';
Options := [ixCaseInsensitive];
end;
end;
IndexName := '
IdxMain';
end;
unit WzgMgrFU
interface
uses MyDBUnit ...;
type
TWzgMgrF =
class(TForm)
...
procedure FormCreate(Sender: TObject);
...
public
procedure CDSWzgCalcFlds;
end;
implementation
var
CDSWzg : TWzg;
procedure TWzgMgrF.FormCreate(Sender: TObject);
begin
...
CDSWzg := TWzg.Create(Self);
// -> CDSWzg.OnCalcFields := CDSWzgCalcFlds;
end;
procedure TWzgMgrF.CDSWzgCalcFlds;
begin
...
end;
Leider führt die Zuweisung an OnCalcFields zum Fehler: E2009 Inkompatible Typen: 'Liste der Parameter ist unterschiedlich', was ja auch klar ist, da OnCalcFields einen Parameter vom Typ TDataSet erwartet. Jetzt weiß ich nicht mehr weiter