DBGRID Automatische breite

Für Fragen von Einsteigern und Programmieranfängern...
Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

DBGRID Automatische breite

Beitrag von Andy Nightingale »

Hallo Leute,
ich habe eine Frage wo ich nicht weiter komme. Ich habe ein DBGRID un darauf sind die einzelnen Felder. Alles soweit super. Nun möchte ich aber das die Daten in den einzelnen Felder die Feldbreite automatisch anpassen. Also je nachdem wie viel drin steht. Das müßte doch auch ohne Programmierung gehen.-als Anfänger steh ich irgendwie aufm Schlauch.
Grüße

Benutzeravatar
theo
Beiträge: 11108
Registriert: Mo 11. Sep 2006, 19:01

Re: DBGRID Automatische breite

Beitrag von theo »

Mit "Options" -> "dgAutoSizeColumns" schon probiert?

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

Hallo Theo,

ja klar hab das probiert und angeklickt.-aber funktioniert nicht. Manchmal schon komisch.
Grüße

charlytango
Beiträge: 1215
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: DBGRID Automatische breite

Beitrag von charlytango »

ich bin jetzt wirklich kein Crack bei DBGrids, laut meiner Erfahrung reicht es nicht, einfach in den Options dgAutoSizeColumns zu setzen. Warum das nicht reicht, weiß ich leider nicht.

Wenn man aber - nachdem man Daten geholt hat, im Code die Aktion (bei gesetztem dgAutoSizeColumns ) auslöst, klappt es.

Code: Alles auswählen

SQLQuery.Open;
DBGrid1.AutoAdjustColumns;

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

charlytango hat geschrieben: So 21. Dez 2025, 10:23 ich bin jetzt wirklich kein Crack bei DBGrids, laut meiner Erfahrung reicht es nicht, einfach in den Options dgAutoSizeColumns zu setzen. Warum das nicht reicht, weiß ich leider nicht.

Wenn man aber - nachdem man Daten geholt hat, im Code die Aktion (bei gesetztem dgAutoSizeColumns ) auslöst, klappt es.

Code: Alles auswählen

SQLQuery.Open;
DBGrid1.AutoAdjustColumns;
Wo schreibst du denn den Code hin? SQLQuery.open da motzt Lazarus....Grüße

charlytango
Beiträge: 1215
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Re: DBGRID Automatische breite

Beitrag von charlytango »

ich kenne deinen Programmierstil nicht. Du bezeichnest dich selbst als Anfänger.
Da liegt es nahe dass man möglichst viel in der GUI und mit Komponenteneinstellungen macht. Das ändert sich mit mehr Erfahrung.

Auf einem typischen Formular mit DB Anbindung liegt/'Klebt' bei mir eine TSQLQuery Komponente, ein TDatasource, ein TDBGrid und einige datensensitive Controls.
In der GUI wird das TDBGrid und die datensensitiven Controls mit dem TDatasource und dieses mit der TSQLQuery verbunden.

Der Rest erfolgt im Code.

Meistens gibt es eine Prozedur welche das SQL Statement zusammen baut, ggfs Parameter einsetzt und die Query durchführt. Dort findet sich dann auch auch DBGrid1.AutoAdjustColumns.

Aircode:

Code: Alles auswählen

function OpenQuery:boolean;
begin
  result:=false;
  try
    if SQLQuery1.Active then SQLQuery1.Close;
    SQLQuery1.SQL.Text := 'SELECT......';
    SQLQuery1.Open;

    if SQLQuery1.RecordCount <= 0 then showmessage('Kein Abfrageergebnis gefunden');
    Result := SQLQuery1.RecordCount > 0;  // True nur bei echten Daten

    DBGrid1.AutoAdjustColumns;
  except
    on E: Exception do MyLog.dlog(FsTitle, 'OpenQuery Fehler: ' + E.Message);
  end;

end;
Aufgerufen wird so eine Prozedur im OnActivate, dan kann man sicher sein dass Lazarus bereits alle Komponenten geladen hat.

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

Hallo Charlytango,

ja Anfänger.-naja bis ich soweit bin wie die meisten hier braucht es noch lange.
Ich habe gemerkt das wenn ich etwas herausfinde und das dazugehörige programmiere (eher zusammenstelle als programmieren) dann vielleicht ein paar Wochen etwas anderes mache.-das erste nicht mehr genau weis und dann muß ich mir das alles nochmals ansehen.

Ist mühsam. Es gibt auch keine Art Lehrgang wo man Lazarus lernen könnte. Es wäre cool wenn es eine Art "Volkshochschule gäbe wo man hingehen könnte und es "richtig" lernen und verstehen könnte. Das was du sagst verstehe ich so das du das meiste programmierst anstatt es irgendwo einstellst..-richtig?
Das macht Sinn. Aber man muß es können.
Bin ja sehr froh das es hier das Forum gibt.-damit ich wenigstens einiges lernen und verstehen kann. Ich werde dein Tipp versuchen umzusetzen.
DANKE dir.

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1283
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 4.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: DBGRID Automatische breite

Beitrag von kralle »

Moin,

zum lernen, schaue mal hier: https://www.youtube.com/playlist?list=P ... uRFaK0JE2z

Gruß Kralle
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 653
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: DBGRID Automatische breite

Beitrag von Niesi »

Andy Nightingale hat geschrieben: Mo 22. Dez 2025, 10:20 Hallo Charlytango,

ja Anfänger.-naja bis ich soweit bin wie die meisten hier braucht es noch lange.
Ich habe gemerkt das wenn ich etwas herausfinde und das dazugehörige programmiere (eher zusammenstelle als programmieren) dann vielleicht ein paar Wochen etwas anderes mache.-das erste nicht mehr genau weis und dann muß ich mir das alles nochmals ansehen.

Ist mühsam. Es gibt auch keine Art Lehrgang wo man Lazarus lernen könnte. Es wäre cool wenn es eine Art "Volkshochschule gäbe wo man hingehen könnte und es "richtig" lernen und verstehen könnte. Das was du sagst verstehe ich so das du das meiste programmierst anstatt es irgendwo einstellst..-richtig?
Das macht Sinn. Aber man muß es können.
Bin ja sehr froh das es hier das Forum gibt.-damit ich wenigstens einiges lernen und verstehen kann. Ich werde dein Tipp versuchen umzusetzen.
DANKE dir.
Ja, es ist "mühsam". Da müssen alle durch, die programmieren wollen - unabhängig von der Programmiersprache.

Was einen Kurs angeht: Du kannst auch auf die Bücher, Videos usw. zu Delphi zurück greifen - es ist sehr ähnlich. Aber Du möchtest vermutlich einen Kurs zu Deinen Themen - und da wird es einfach schwierig, weil es nun einmal sehr viele unterschiedliche Themen gibt.

Zum Programmierstil: Mach Dein Ding. Lass Dir nix erzählen sondern probiere aus und bleibe bei dem, was Dir gefällt / liegt. Es gibt keinen einheitlichen Programmierstil, das ist von Person zu Person unterschiedlich. (Ich programmiere seit 1986 mit Pascal - ich benutze GUI und Komponenteneinstellungen so oft es nur geht. Das gibt mir mehr Zeit, mich auf mein eigentliches Thema zu konzentrieren und da vorwärts zu kommen. Lebenszeit ist schließlich knapp. Oder anders ausgedrückt: Wenn ich eine Software zur Optimierung von Getrieben schreibe, will ich micht mit Form, Farbe oder Tönen von irgendwelchen Buttons, Fensterbalken und Klingeln beschäftigen. Aber das ist allen selbst überlassen ...)

Zum Vergessen: Da helfen nur Notizen, da bin ich mir sicher. Schreib es auf und ergänze das Dokument immer wieder. Niemand kann sich alles im Kopf merken ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

kralle hat geschrieben: Mo 22. Dez 2025, 10:46 Moin,

zum lernen, schaue mal hier: https://www.youtube.com/playlist?list=P ... uRFaK0JE2z

Gruß Kralle
Moin Kralle,.-danke das habe ich schon gemacht,- aber Datenbank und C/S war leider nicht dabei.-es wäre doch cool wenn ein paar Lazarus Profis sich zusammentun und eine Lazarus Schule oder Kurs anbieten würden. Also so richtig live. :D

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

Zum Programmierstil: Mach Dein Ding. Lass Dir nix erzählen sondern probiere aus und bleibe bei dem, was Dir gefällt / liegt. ....
Hallo Niesi,

danke das ist ein sehr guter Ratschlag.-wirklich. Man versucht als Anfänger alles richtig zu machen und vergisst sich dabei selbst. Grüße in den Osten. Die Ossis (lieb gemeint) sind einfach bodenständiger und blicken noch was in Deutschland so vor sich geht. Ich fand es super wie ihr 89 für eure Freiheit gekämpft habt.-ohhh das vermisse ich bei den Wessis sehr. :-)

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 653
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 4.5 Fpc 3.2.3 und allerlei mit FpcUpDeLuxe
Kontaktdaten:

Re: DBGRID Automatische breite

Beitrag von Niesi »

Andy Nightingale hat geschrieben: Mo 22. Dez 2025, 12:05
Zum Programmierstil: Mach Dein Ding. Lass Dir nix erzählen sondern probiere aus und bleibe bei dem, was Dir gefällt / liegt. ....
Hallo Niesi,

danke das ist ein sehr guter Ratschlag.-wirklich. Man versucht als Anfänger alles richtig zu machen und vergisst sich dabei selbst. Grüße in den Osten. Die Ossis (lieb gemeint) sind einfach bodenständiger und blicken noch was in Deutschland so vor sich geht. Ich fand es super wie ihr 89 für eure Freiheit gekämpft habt.-ohhh das vermisse ich bei den Wessis sehr. :-)
Danke Danke - aber ich bin gar kein echter Ossi. Ich wurde in Braunschweig geboren, habe in Hamburg studiert und dort 20 Jahre gelebt. Meine Familie und ich sind 2006 in den Osten gezogen - aber ich sag's mal ganz ehrlich: Der Unterschied zwischen Ossis und Wessis ist minimal, das kann ich gut beurteilen. Es betrifft ausschließlich den Dialekt. Es gibt hier gute und schlechte, genauso wie da. Wer was anderes behauptet hat keine Ahnung.

Hier noch mal was zu Datenbanken, vielleicht hilft Dir das: https://www.youtube.com/watch?v=TpxzCCoNFQY
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

Hier noch mal was zu Datenbanken, vielleicht hilft Dir das: https://www.youtube.com/watch?v=TpxzCCoNFQY
Hallo Niesi,
was du bist kein echter Ossi.- sauerei :lol: Nein alles gut.- Ich hatte einmal einen Mitstudenten in meinem Lehrberuf bei Siemens der floh damals ganz allein über die Nordsee/Ostsee.
Wir waren sofort Freunde. Ich hatte einen großen Respekt vor ihm. Allein zu fliehen und das mit 17 Jahre. Naja das sind so meine Erfahrungen. So macht jeder seine persönlichen Erfahrungen. Danke für das tolle Video.
Grüße

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7039
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: DBGRID Automatische breite

Beitrag von af0815 »

Andy Nightingale hat geschrieben: Mo 22. Dez 2025, 11:58 ....-danke das habe ich schon gemacht,- aber Datenbank und C/S war leider nicht dabei ....
Was stellt sich der Andy denn unter Datenbanken und/oder C/S wirklich vor. Beide Themen sind sehr weit zu fassen und auch davon abhängig wie sie definiert werden.

C/S:
Zitat aus Wikipedia:
Das Client-Server-Modell (auch Client-Server-Konzept, -Architektur, -System oder -Prinzip genannt) beschreibt eine Möglichkeit, Aufgaben und Dienstleistungen innerhalb eines Netzwerkes zu verteilen. Die Aufgaben werden von Computern/Programmen erledigt, die in Clients und Server unterteilt werden[1]. Der Client kann auf Wunsch einen Dienst vom Server anfordern (z. B. ein Betriebsmittel).
Das ganze kann allerdings auch innerhalb eines Programms zelebriert werden. Datenbankapplikationen die auf einen Datenbank Server zugreifen, sind damit auch gemeint.
Für das Thema gibt es soviel Möglichkeiten es zu definieren.

Datenbanken:
Was für Datenbanken - lokale Desktop Datenbanken (CSV -Dateien, DBase, Access,...) oder Server basierende Datenbanken (MS-SQL, Oracle, DB2, SQlite,.... ) Ein riesen Thema mit einem noch größeren Umfang und umsomehr Unterschieden. Jedes System hat seinen eigenen Zugang, seine eigene Syntax und Fallstricke. Dazu nach die Zugriffskomponenten die nicht immer alles was die DB kann abbilden. Und Fallstricke, wo du von den Dev nur als Antwort bekommst - "it's per design", "won't fix". Dazu noch verschiedene ZUgänge innerhalb von Lazarus (SQLdb und ZEOS).

So, wie soll man da jetzt erraten, was der Andy jetzt genau wissen will :-) Weil man kann ja auch nicht erraten, welches Wissen gibt es oder welche Problemstellung zwickt gerade.

BTW: Vielleicht kann man das herauslösen, falls das Thema zu lange wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Andy Nightingale
Beiträge: 309
Registriert: Mo 13. Jan 2025, 12:11

Re: DBGRID Automatische breite

Beitrag von Andy Nightingale »

Was stellt sich der Andy denn unter Datenbanken und/oder C/S wirklich vor. Beide Themen sind sehr weit zu fassen und auch davon abhängig wie sie definiert werden.

Hallo 0815,

das Video von Niesi hat schon absolut geholfen. Es wird ein C/S Anwendung mit bis zu 100 oder mehr Clients die alle auf eine Firebird Datenbank auf einem Server zugreifen.
Das Grundgerüst steht und so ein paar Dinge fehlen noch.-aber das mache ich alles Step by Step. Ich arbeite alles eins nach dem anderen ab.

Was viel Zeit kostet ist eher das Grafische und später noch die Programmierung von Suche Applikationen und Berichten und Sicherheitskonzepten usw..-.aber auch dazu habe ich Tests am laufen die alle gut aussehen.

Dann wurde mir noch ein großes Projekt angeboten mit bis zu 1000 Clients und hohen Datenmengen. Da muß ich bis Ende Januar zusagen. Das weis ich noch nicht ob ich das annehme. Muß das jetzige Projekt erst komplett fertig stellen. Allein das ist schon schwer genug für einen Anfänger.
Grüße

Antworten