Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid Spaltenüberschrift <> Feldname (https://www.delphipraxis.net/63892-dbgrid-spaltenueberschrift-feldname.html)

davar 24. Feb 2006 08:23

Datenbank: Paradox • Version: 7 • Zugriff über: BDE

DBGrid Spaltenüberschrift <> Feldname
 
Hallo Leute,

wie kann ich die Spaltenüberschrift ändern, so dass nicht der Feldname als Überschrift genommen wird?

Ich gebe z.B. im Spalteneditor als Fieldname "Telefon1" an, damit der Inhalt des Feldes "Telefon1" angezeigt wird. Im DBGrid selbst soll aber als Überschrift "Telefon" stehen und nicht "Telefon1".

Wo kann ich das machen?

MfG

davar

Frank Borland 24. Feb 2006 08:26

Re: DBGrid Spaltenüberschrift <> Feldname
 
über title.caption

Gruß

Malte

dfried 24. Feb 2006 08:26

Re: DBGrid Spaltenüberschrift <> Feldname
 
Im Spalteneditor gibt es auch ein Property "DisplayLabel" das was da drin steht nimmt das Grid als Caption.

Jasocul 24. Feb 2006 08:37

Re: DBGrid Spaltenüberschrift <> Feldname
 
Du kannst probieren, ob meine Feld-Editor-Komponente (siehe Homepage) unter Delphi3 funktioniert. Da kann das zur Laufzeit eingestellt werden. Wenn man es vom Programm zulässt, kann das sogar der Anwender. Die entsprechenden Eintsllungsdateien (INI oder Registry) kannst du aber auch einfach mitliefern.

shmia 24. Feb 2006 11:53

Re: DBGrid Spaltenüberschrift <> Feldname
 
Man kann die sichtbaren Feldnamen (DisplayLabel) auch zur Laufzeit einstellen.
grosser Vorteil: man braucht keine persistenten Felder anlegen

Hier ein Unit, die zeigt, wie man alle Zuordnungen Feldname->DisplayLabel zentral für die gesamte Anwendung abhandeln kann:
Delphi-Quellcode:
unit UDisplayLabels;

interface

uses DB;

procedure SetDisplayLabels(ds:TDataset);

implementation

type
   T2strings = array[1..2] of string;


// Zuordnungstabelle
// FieldName -> DisplayName
const
   convliste: array[0..6] of T2strings =
   (
   ('IdWBruecke', 'Wechselbrücke'),
   ('IdTor',     'Tor-Nr'),
   ('EDatum',    'Einlieferdatum'),
   ('MaxHeight', 'max. Höhe'),
   ('IdLocation', 'Standort'),
   ('LastChange', 'letzte Änderung'),
   ('Disabled',  'Gesperrt')
   );

// suche DisplayLabel, das zu "fieldname" passt
function ConvertString(const fieldname:string):string;
var
   i : Integer;
begin
   for i := Low(convliste) to High(convliste) do
   begin
      if convliste[i][1] = fieldname then
      begin
         Result := convliste[i][2];
         Exit;
      end;
   end;
   Result := ''; // nix gefunden
end;


procedure SetDisplayLabels(ds:TDataset);
var
   i : Integer;
   dl : string;
begin
   for i := ds.Fields.Count-1 downto 0 do  // herunterzählen auf 0 ist etwas schneller
   begin
      dl := ConvertString(ds.Fields[i].FieldName);
      if dl <> '' then
         ds.Fields[i].DisplayLabel := dl;
   end;
end;

end.
Anwendung:
Einfach die Procedure SetDisplayLabels im Event AfterOpen aufrufen:
Delphi-Quellcode:
procedure TForm1.Query1AfterOpen(DataSet: TDataSet);
begin
   SetDisplayLabels(DataSet);
end;

davar 24. Feb 2006 16:59

Re: DBGrid Spaltenüberschrift <> Feldname
 
Zitat:

Zitat von Frank Borland
über title.caption

Gruß

Malte

Das war es. Dankeschön!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr.

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