Hallo,
wieder eine Frage zum Thema Klassenmodellierung. Diesmal folgendes.
Delphi-Quellcode:
unit IDatabase;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
type
IDatabase =
interface (IInterface)
procedure Load;
stdcall;
procedure Save;
stdcall;
end;
...
Deklaration eines Interfaces, welches mir zwei Prozeduren zur Verfügung stellt.
Delphi-Quellcode:
unit akDatabase;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
type
TakDatabase =
class (TmysqlDatabase, IDatabase)
private
FQuerys: TObjectList;
function GetQuery(
Index: Integer): TakQuery;
procedure SetQuery(
Index: Integer; Value: TakQuery);
public
property Query[
Index: Integer]: TakQuery
read GetQuery
write SetQuery
implements TakQuery;
end;
Die Klasse 'TakDatabase' ist eine Unterklasse der Komponente 'mysqlDatabase', welche die Implementation des Interface über die Property '
Query' an die Klasse TakQuery delegiert.
Im Feld 'FQuerys' sollen für jede Tabelle der Datenbank eine Komponente des Typs 'TakQuery' gespeichert werden.
Der Vollständigkeit halber hier noch die Klasse TakQuery:
Delphi-Quellcode:
unit akQuery;
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs;
type
TakQuery =
class (TmysqlQuery)
public
procedure Load;
procedure Save;
end;
...
Wenn ich jetzt auf die Property '
Query' zugreife(in akDatabase), kann ich dann
Query[index].Load ausführen?