Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid Spaltenköpfe ändern? (https://www.delphipraxis.net/123349-dbgrid-spaltenkoepfe-aendern.html)

Borschti 31. Okt 2008 08:00

Datenbank: ADS • Version: 3.1 • Zugriff über: kA

DBGrid Spaltenköpfe ändern?
 
Hi,

wie der Threadname schon sagt suche ich eine Möglichkeit die Spaltenköpfe meines DBGrid zu verändern, das soll natürlich passieren nachdem ich ich meine SQL Statement ausgeführt habe, also zur Laufzeit.

Ich benutze von den ADS Komponenten abgeleitete Komponenten, aber ich denke mal das es in der der hinsicht keinen Unterschied machen wird.

Ich hoffe mir kann jemand helfen, schonmal danke :)

mfg
Alex

sx2008 31. Okt 2008 08:23

Re: DBGrid Spaltenköpfe ändern?
 
Im Eventhandler AfterOpen können die Feldlabels geändert werden:
Delphi-Quellcode:
procedure SetFieldCaption(dataset:TDataset; const FieldName, Label:string);
var
  f : TField;
begin
  Assert(Assigned(dataset));
  f := dataset.FindField(FieldName);
  if Assigned(f) then f.DisplayLabel := Label;
end;

procedure TForm1.Query1AfterOpen(...);
begin
  SetFieldCaption('BetrNetto', 'Nettobetrag (Eur)');
end

nahpets 31. Okt 2008 08:54

Re: DBGrid Spaltenköpfe ändern?
 
Hallo,

andere Alternative wäre
Delphi-Quellcode:
DBGrid1.Columns.Items[0].Title := 'Spalte A';
Hiermit bekommst Du den Inhalt der ersten Zeile des Datasets als Spaltenüberschrift.
Delphi-Quellcode:
procedure TForm1.Table1AfterOpen(DataSet: TDataSet);
Var
         i : Integer;
begin
  DataSet.First;
  for i := 0 to DBGrid1.Columns.Count - 1 do begin
    DBGrid1.Columns.Items[i].Title := DBGrid1.Columns.Items[i].Field.AsString;
  end;
end;

Borschti 31. Okt 2008 09:53

Re: DBGrid Spaltenköpfe ändern?
 
Zitat:

Zitat von sx2008
Im Eventhandler AfterOpen können die Feldlabels geändert werden:
Delphi-Quellcode:
procedure SetFieldCaption(dataset:TDataset; const FieldName, Label:string);
var
  f : TField;
begin
  Assert(Assigned(dataset));
  f := dataset.FindField(FieldName);
  if Assigned(f) then f.DisplayLabel := Label;
end;

procedure TForm1.Query1AfterOpen(...);
begin
  SetFieldCaption('BetrNetto', 'Nettobetrag (Eur)');
end

Danke hat auf anhieb geklappt, danke auch an die restlichen Antworten.

mfg
Alex

aurikel_Max 3. Mär 2010 19:19

Re: DBGrid Spaltenköpfe ändern?
 
Zitat:

Zitat von nahpets
Hallo,

andere Alternative wäre
Delphi-Quellcode:
DBGrid1.Columns.Items[0].Title := 'Spalte A';

Hallo,

ich hoffe, das stellt kein Problem dar, dass ich den Thread nochmal "ausgrabe", wenn doch, bitte nicht steinigen. :?

Ich möchte, wie der Threadstarter, bei einem DBGrid die "Überschrift" einer Spalte bearbeiten, dafür hab ich folgendes, nach dem Zitat von nahpets, versucht:

Delphi-Quellcode:
dbgBlubb.Columns.Items[2].Title := 'Blubbah';
Dafür bekomm ich die folgende Fehlermeldung beim Kompilieren:

Zitat:

Incompatible types: 'TColumnTitle' and 'string'
Mir ist schon klar, was die Fehlermeldung aussagt, aber ich weiß nicht wirklich, wie ich die Anweisung ändern muss, damit der Fehler nicht mehr auftritt. :gruebel:

Liebe Grüße (und bitte nicht steinigen)

DeddyH 3. Mär 2010 19:30

Re: DBGrid Spaltenköpfe ändern?
 
Delphi-Quellcode:
dbgBlubb.Columns.Items[2].Title.Caption := 'Blubbah';

aurikel_Max 3. Mär 2010 19:36

Re: DBGrid Spaltenköpfe ändern?
 
Zitat:

Zitat von DeddyH
Delphi-Quellcode:
dbgBlubb.Columns.Items[2].Title.Caption := 'Blubbah';

Du hast Recht, danke. :)

Warum bin ich heute nachmittag, als ich mich damit beschäftigt habe, nicht selbst darauf gekommen? :wall: Brett vor dem Kopf ..

Liebe Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz