Einzelnen Beitrag anzeigen

etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#8

Re: Erscheinungsbild TDBgrid im Titel ändern

  Alt 4. Sep 2005, 14:01


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
  Mit Zitat antworten Zitat