Hi zusammen,
ich muss zugeben, ich weiß gerade nicht so recht, wie ich nach meinem Problem suchen kann,
daher poste ich hier, auch wenn es möglicherweise schon eine Antowrt dazu irgendwo gibt.
Es handelt sich hierbei um eine theoretische Frage, da ich das ganze im Projekt nun anders gelöst habe.
Trotzdem würde ich gerne wissen, was ich falsch mache oder wie man das Problem reell lösen könnte.
Ich habe eine vordefinierte Quelle in welchem ich Daten als "TObject" speichern kann. Ein StringGrid.
In diesem StringGrid speichere ich pro Zeile die Nutzinformationen in StringGrid.Objects[0, iRow].
Zum Speichern verwende ich einen eigenen Typ "TGridObject".
Nun möchte ich eine allgemeingültige Funktion haben, mit welcher ich im StringGrid einen Hint anzeigen kann.
Damit diese Funktion auch auf anderen Grids funktioniert definiere ich ein Interface "IGridInfo",
welches mir die Funktion "GetVal(const iCol : Integer) : String;" bereit stellen soll.
Die Idee ist, dass die "AutoGridHint"-Funktion den String, welcher angezeigt werden kann über diese Funktion erhällt.
Das Objekt muss dann natürlich von diesem Interface erben und die Funktion umsetzen.
Definition vom Interface in der Tools-
Unit:
Delphi-Quellcode:
type
IGridInfo = interface(IInterface)
['{675C1022-0376-4583-AF24-8FAA2D008139}']
Function GetVal(const iCol : Integer) : String;
end;
Definition des GridObjects in der
Unit mit dem Form:
Delphi-Quellcode:
type
TGridObject = class(TInterfacedObject, IGridInfo)
private
FRow : Integer;
FSomeText : String;
FSomeMore : String;
public
Function GetVal(const iCol : Integer) : String;
Constructor Create(const iRow : Integer; const sText1 : String; const sText2 : String);
end;