Hab am source nichts geändert wollte ja die
vcl nicht umschreiben
das grid liegt auf einem panel auf dem wiederum ein panel mit align top liegt der grid selbst dann align alclient und titles auf false.
Anschliessend werden über eine schleife die plastichen titel dynamisch erzeugt und über die parant control an das panel oberhalb des grids gebunden. durch setzen des events on resize zur laufzeit kann ich sogar die breite der spalten des grids ändern
Delphi-Quellcode:
private
prGrPanels:Array[0..20] of TAdvPanel;
Delphi-Quellcode:
procedure TFmArtikelSystem.FormCreate(Sender: TObject);
var
aComboListe:TStringList;
i:Integer;
begin
for i:=0 to exDbGr.Columns.Count-1 do
begin
prGrPanels[i]:=FmDmHaupt.ErzTitelDbGrid(panGrTitel);
prGrPanels[i].Width:=exDbGr.Columns[i].Width+1;
prGrPanels[i].Text:=StringReplace(prGrPanels[i].Text,'@bez',' '+exDbGr.Columns[i].Title.Caption,[rfReplaceAll]);
prGrPanels[i].Show;
end;
end;
Delphi-Quellcode:
function TFmDmHaupt.ErzTitelDbGrid(pParent:TPanel): TAdvPanel;
var
agrpan: TAdvPanel;
begin
agrpan := TAdvPanel.Create(Self);
with agrpan do
begin
Parent := pParent;
Align := alLeft;
Color := clWindow;
CanSize := False;
Caption.Visible := False;
Collaps := False;
ColorTo := 14075590;
Text := '<FONT size="10" face="MS Sans Serif">'+'@bez'+'</FONT>';
TextVAlign := tvaCenter;
BevelWidth:=1;
end;
Result:=agrpan;
end;

dazu noch eine Frage muss ich mich persönlich darum kümmern die dynamisch erstellten
komponenten mit free freizugeben oder wird das beim close des formulars (action ist bei mir cafree)
automatisch von delphi erledigt