DBGRID Titel - Hoehe
DBGRID Titel - Hoehe
Hallo Zusammen.
kann es sein dass man die Titel Höhe eines DBGrids nicht einstellen kann ?
Verändert man die Rowhight wird automatisch die Höhe der Titelleiste mit angepasst.
Ich brauch aber eine Rowhöhe von 80 und eine Titel -Höhe von 20
Danke für eure Hilfe
Lg Bernie
kann es sein dass man die Titel Höhe eines DBGrids nicht einstellen kann ?
Verändert man die Rowhight wird automatisch die Höhe der Titelleiste mit angepasst.
Ich brauch aber eine Rowhöhe von 80 und eine Titel -Höhe von 20
Danke für eure Hilfe
Lg Bernie
-
- Beiträge: 31
- Registriert: So 14. Aug 2011, 09:11
Re: DBGRID Titel - Hoehe
Hey Bernie,
die Höhe der Titelzeile kannst Du über RowHeights[0] einstellen.
die Höhe der Titelzeile kannst Du über RowHeights[0] einstellen.
Re: DBGRID Titel - Hoehe
Hi, danke für deine Antwort. Ja bei einem StringGrid funktioniert das.Aber bei einem DBGrid ?TraumTaenzerDieter hat geschrieben: Di 16. Jun 2020, 16:31 Hey Bernie,
die Höhe der Titelzeile kannst Du über RowHeights[0] einstellen.
Wie soll das aussehen ?
Lg Bernie
Edit... jetzt war ich zu schnell..
So funktioniert es : TCustomDrawGrid(DBGrid1).RowHeights[0] := 22;
Danke hast mir sehr weitergeholfen !! Lg Bernie
Re: DBGRID Titel - Hoehe
Hast du das ausprobiert? Bei mir läuft es zwar durch den Compiler, aber die Zeilenhöhe ändert sich nicht (Win 10, Laz trunk)
Re: DBGRID Titel - Hoehe
Ja funktioniert bei mir einwandfrei. (Win 10, Lazerus Version 2.0.8 for Windows 64 bit )wp_xyz hat geschrieben: Di 16. Jun 2020, 17:03 Hast du das ausprobiert? Bei mir läuft es zwar durch den Compiler, aber die Zeilenhöhe ändert sich nicht (Win 10, Laz trunk)
Code: Alles auswählen
procedure TFrm_AUFTRAEGE_ERFASSEN.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
TCustomDrawGrid(DBGrid1).RowHeights[0] := 22;
DBGrid1.DefaultRowHeight := 75;
with (Sender as TDBGrid) do
If Column.Index = 0 then //SNDG_ID
begin
with dbgrid1.canvas do
Re: DBGRID Titel - Hoehe
In OnDrawColumnCell änderst du die Zeilenhöhe? Es wundert mich, dass dir das nicht um die Ohren fliegt, denn eine Änderung der Zeilenhöhe bewirkt ein Neuzeichnen des Grid, was wiederum OnDrawColumnCell aufruft, was wiederum ein Neuzeichnen des Grid bewirkt, was wiederum ...
In einem "vernünftigen" Event wie FormCreate oder FormShow ist jedenfalls das Setzen der RowHeight mit Hilfe des Type-Cast wirkungslos. Ich habe das nun auch mit Laz 2.0.8 (64 bit), Laz trunk (32 bit, 64 bit) und Laz 1.8.4 (32 bit) geprüft.
In einem "vernünftigen" Event wie FormCreate oder FormShow ist jedenfalls das Setzen der RowHeight mit Hilfe des Type-Cast wirkungslos. Ich habe das nun auch mit Laz 2.0.8 (64 bit), Laz trunk (32 bit, 64 bit) und Laz 1.8.4 (32 bit) geprüft.
Re: DBGRID Titel - Hoehe
wp_xyz.. interessant. Ok anderen Vorschlag ?
Lg Bernie
Lg Bernie
Re: DBGRID Titel - Hoehe
Den ganzen Dataset (sofern nicht zu groß) in ein StringGrid einlesen anstatt ein DBGrid zu verwenden?
Re: DBGRID Titel - Hoehe
@wp_xyz
Ich hab es jetzt so gemacht.
Jetzt funktioniert es. Was wäre daran falsch ?
Was verstehst du unter zu gross ?
Lg Bernie
Ich hab es jetzt so gemacht.
Code: Alles auswählen
uses
Classes, SysUtils, db, sqldb, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, Buttons, EditBtn, LCLType, DBGrids, Grids, ColorBox, ValEdit,
ComCtrls, FileCtrl, ActnList, ButtonPanel;
type
TMyCustomGrid = Class(TCustomDrawGrid);
{ TFrm_AUFTRAEGE_ERFASSEN }
Code: Alles auswählen
procedure TFrm_AUFTRAEGE_ERFASSEN.FormShow(Sender: TObject);
var
XBackColor : String;
XFontColor : String;
begin
TCustomDrawGrid(DBGrid1).RowHeights[0] := 22;
DBGrid1.DefaultRowHeight := 75;
wp_xyz hat geschrieben: Mi 17. Jun 2020, 01:05 Den ganzen Dataset (sofern nicht zu groß) in ein StringGrid einlesen anstatt ein DBGrid zu verwenden?
Was verstehst du unter zu gross ?
Lg Bernie
Re: DBGRID Titel - Hoehe
Jetzt habe ich's nochmal probiert, und plötzlich geht's. Seltsam...
Mit "zu groß" meinte ich, "nicht so groß, dass das man das Umkopieren in ein StringGrid bemerkt".
Mit "zu groß" meinte ich, "nicht so groß, dass das man das Umkopieren in ein StringGrid bemerkt".
Re: DBGRID Titel - Hoehe
Aha und was hast du jetzt bei dir anders gemacht, dass es funktioniert ?wp_xyz hat geschrieben: Mi 17. Jun 2020, 19:07 Jetzt habe ich's nochmal probiert, und plötzlich geht's. Seltsam...
Mit "zu groß" meinte ich, "nicht so groß, dass das man das Umkopieren in ein StringGrid bemerkt".
Umkopieren ? ... ja ist zu gross

Lg Bernie
Re: DBGRID Titel - Hoehe
Von Grund auf ein Projekt dafür geschrieben, vorher hatte ich die zwei Zeilen aus deinem Post nur in ein vorhandenes Projekt eingefügt. Und wenn ich mir das jetzt mit klarem Kopf nochmals anschaue, dann sehe ich, dass du die Reihenfolge anders hast als ich - und wenn ich es genauso mache, habe ich wieder den Zustand von gestern, wo alle Zeilen gleich hoch sind. Probier's mit dem beigefügten Projekt aus (du kannst in "FormShow()" durch Änderung der Auskommentierung zwischen beiden Varianten umschalten).Bernie110 hat geschrieben: Mi 17. Jun 2020, 20:10 Aha und was hast du jetzt bei dir anders gemacht, dass es funktioniert ?
Offenbar kommt es auf die Reihenfolge an, denn wenn man DefaultRowHeight setzt, werden die individuellen Zeilenhöhen gelöscht. Das sieht man im Quellcode beim Setter von DefaultRowHeight:
Code: Alles auswählen
procedure TCustomGrid.SetDefRowHeight(AValue: Integer);
...
begin
...
for i:=0 to RowCount-1 do
FRows[i] := -1;
...
end;
- Dateianhänge
-
dbgrid_header_rowheight.zip
- (3.08 KiB) 123-mal heruntergeladen