![]() |
Sichtbare Feldnamen zur Laufzeit einstellen
Folgende Uni stammt von shmia und wurde
![]() Die sichtbaren Feldnamen (DisplayLabel) lassen sich zur Laufzeit einstellen, was den Vorteil hat, dass man keine persistenten Felder anlegen muss. Hier ein Unit, die zeigt, wie man alle Zuordnungen Feldname -> DisplayLabel zentral für die gesamte Anwendung abhandeln kann:
Delphi-Quellcode:
Anwendung:
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. Einfach die Procedure SetDisplayLabels im Event AfterOpen aufrufen:
Delphi-Quellcode:
procedure TForm1.Query1AfterOpen(DataSet: TDataSet);
begin SetDisplayLabels(DataSet); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:42 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-2025 by Thomas Breitkreuz