Hallo,
ich habe mir eine von TSTringGrid abgeleitete Komponente geschaffen, der ich nun noch die Möglichkeit geben wollte, im Objektinspektor die Spaltenüberschriften (ColumnHeader) eingeben zu können.
Das klappt auch alles. Die Daten werden auch im
DFM-File gespeichert. Dummerweise werden die Spaltenüberschriften aber nicht wieder in das Formular geladen, wenn man das Projekt geschlossen hatte und wieder neu öffnet. Die Daten stehen zwar im
OI, aber erst wenn man sie neu bestätigt, werden sie auch in das Grid geschrieben.
Was fehlt mir da noch oder was mache ich falsch?
Danke im Voraus!
Freejay
Hier der
relevante Code:
Delphi-Quellcode:
TMyStringGrid = class(TStringGrid)
private
FColumnHeader: TStrings;
procedure SetColumnHeader(Value: TStrings);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property ColumnHeader: TStrings read FColumnHeader write SetColumnHeader;
end;
constructor TMyStringGrid.Create(AOwner: TComponent);
begin
inherited create(AOwner);
FColumnHeader := TStringList.Create;
end;
destructor TMyStringGrid.Destroy;
begin
FColumnHeader.Free;
inherited destroy;
end;
procedure TMyStringGrid.SetColumnHeader(Value: TStrings);
var
iCol: integer;
begin
FColumnHeader.Assign(Value);
for iCol := 0 to ColCount - 1 do
if iCol < FColumnHeader.Count then
Cells[iCol,0] := FColumnHeader[iCol]
else
Cells[iCol,0] := '';
end;