Firebird DBGRid 2.zeilige Überschrift möglich?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Anfänger33
Beiträge: 24
Registriert: Sa 15. Feb 2025, 13:33

Firebird DBGRid 2.zeilige Überschrift möglich?

Beitrag von Anfänger33 »

Mittlerweile klappt die Verbindung zu Firebird 5.0.

Jetzt habe ich eine Tabelle erstellt. Ich möchte mehr Text in die Überschrift reinpacken (z.B. 1. Zeile "Pausenzeit'; 2. Zeile 'in Minuten'). In der Spalte sind naximal 4 stellige Zahlen ohne Nachkommastellen enthalten.
Den ganzen Text in eine Zeile zu packen führt zu sehr breiten Spalten. Das macht das Ganze sehr unübersichtlich.

https://www.phind.com empfiehlt in diesem Fall #13#10 (Zeilenumbruch) zu nehmen, das funktioniert aber nicht.

procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.Columns[4].Title.Caption :=
'Oberer Text'#13#10 +
'Unterer Text';
end;

Alternativ könnte man ein Tooltip verwenden, der erscheint wenn man mit der Maus darüber fährt. Habe ich aber noch nicht ausprobiert. Die Funktion Hint habe ich im DBGrid noch nicht zum laufen bekommen.

Anfänger33
Beiträge: 24
Registriert: Sa 15. Feb 2025, 13:33

Re: Firebird DBGRid 2.zeilige Überschrift möglich?

Beitrag von Anfänger33 »

Mit Multiline auf true gehen mehrzeilige Spaltenüberschriften. Nur die Spaltenhöhe in der Überschrift passt dann nicht mehr. Die Höhe der Überschrift kann im Programmcode mit

DBGrid1.DefaultRowHeight := 35;

geändert werden.

Leider werden alle anderen Zeilen auch mit der selben Höhe dargestellt.

Soner
Beiträge: 726
Registriert: Do 27. Sep 2012, 00:07
OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
CPU-Target: x86_64-win64
Wohnort: Hamburg

Re: Firebird DBGRid 2.zeilige Überschrift möglich?

Beitrag von Soner »

Das:

Code: Alles auswählen

type
  TDBGridHack = class(TDBGrid)
  public
    property RowHeights;
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TDBGridHack(DBGrid1).RowHeights[0]:=35; 
  // für 35 am besten: DBGrid1.Canvas.TextHeight('Äj')*ZeilenAnzahl+Ränder
end;  
Hier gibt es TdxDBGridController, aber ich weiß nicht ob es mehrzeilige Überschriften unterstützt.

Antworten