[gelöst]DBGrid Spaltenbreite anpassen

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
purzel1994
Beiträge: 18
Registriert: Do 11. Feb 2016, 17:13

[gelöst]DBGrid Spaltenbreite anpassen

Beitrag von purzel1994 »

Hallo zusammen,
ich arbeite mit einem Sqlite3 Datenbank die ich auf einem DBGrid ausgeben möchte. Das funktioniert auch soweit.
Das Problem ist aber die Spaltenbreite. Das DBGrid zeigt immer nur eine Spalte der Datenbank (dann muss ich mit der Scrollbox auf die nächste Seite springen). Bei den FieldDefs wurde der Wert Size auf "30" gesetzt. Wo liegt der Fehler, bzw wie kann ich die Spaltenbreite anpassen?

Dankeschön.
Zuletzt geändert von purzel1994 am Mi 24. Feb 2016, 13:35, insgesamt 1-mal geändert.

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: DBGrid Spaltenbreite anpassen

Beitrag von Michl »

z.B.:

Code: Alles auswählen

procedure TForm1.SQLQuery1AfterOpen(DataSet: TDataSet);
var
  i: Int32;
begin
  for i := 0 to SQLQuery1.FieldCount - 1 do
    case SQLQuery1.Fields[i].FieldName of
      'id':
        begin
          DBGrid1.Columns.Items[i].SizePriority := 0;  //wird bei AutoFillColumns nicht in der Größe geändert
          DBGrid1.Columns.Items[i].Width := 0;
          DBGrid1.Columns.Items[i].Title.Caption := 'ID-Person';  //man könnte hier auch den angezeigten Column-Titel ändern (gänge auch mit automatisch übersetzen Resourcestrings)
        end;
      'prename':
        begin
          DBGrid1.Columns.Items[i].SizePriority := 0;
          DBGrid1.Columns.Items[i].Width := 100;
          DBGrid1.Columns.Items[i].Title.Caption := 'Vorname';
        end;
      'surname':
        begin
          DBGrid1.Columns.Items[i].SizePriority := 1;  //wird in der Größe bei AutoFillColumns automatisch geändert
          DBGrid1.Columns.Items[i].Title.Caption := 'Nachname';
        end;
    end;
end; 
Zuletzt geändert von Michl am Mi 24. Feb 2016, 13:05, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

purzel1994
Beiträge: 18
Registriert: Do 11. Feb 2016, 17:13

Re: DBGrid Spaltenbreite anpassen

Beitrag von purzel1994 »

Danke für die schnelle Antwort, funktioniert bei mir aber leider nicht. Die Spalte wird zwar umbenannt, die Größe bleibt aber auch nach dem hinzufügen einer neuen Zeile gleich.
Irgendeine Idee an was das liegen könnte?

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: DBGrid Spaltenbreite anpassen

Beitrag von Michl »

Hast du die Eigenschaft AutoFillColumns vom DBGrid an oder aus?

Wenn du nicht weiter kommst, poste doch hier ein Minimalbsp als Zip (ohne Executable, ohne Verzeichnis Lib, ohne SQLite Library).

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

purzel1994
Beiträge: 18
Registriert: Do 11. Feb 2016, 17:13

Re: DBGrid Spaltenbreite anpassen

Beitrag von purzel1994 »

Das war´s...
Danke für deine Hilfe!

Antworten