[gelöst] Wo finde ich TCustomStringGrid?
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
[gelöst] Wo finde ich TCustomStringGrid?
Moin,
wo finde ich das "TCustomStringGrid"?
Gruß Heiko
wo finde ich das "TCustomStringGrid"?
Gruß Heiko
Zuletzt geändert von kralle am Do 7. Mär 2024, 10:45, insgesamt 1-mal geändert.
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
Re: Wo finde ich TCustomStringGrid
Manchmal hast du schon echt merkwürdige Fragen für jemand, der schon 14 Jahre dabei ist.
Am gleichen Ort wo TStringGrid ist, nämlich in Grids (grids.pas)
TCustomXYZ ist fast immer der direkte Vorfahr von TXYZ.
Der Unterschied liegt meistens nur im publishen von Eigenschaften für den Objekinspektor.
Ausserdem kann man so etwas allgemein auch über "Suche Bezeichner" durch Rechtsklick im Nachrichtenfenster finden (via Code Browser). Siehe z.B. viewtopic.php?p=120881#p120881
Am gleichen Ort wo TStringGrid ist, nämlich in Grids (grids.pas)
TCustomXYZ ist fast immer der direkte Vorfahr von TXYZ.
Der Unterschied liegt meistens nur im publishen von Eigenschaften für den Objekinspektor.
Ausserdem kann man so etwas allgemein auch über "Suche Bezeichner" durch Rechtsklick im Nachrichtenfenster finden (via Code Browser). Siehe z.B. viewtopic.php?p=120881#p120881
- Niesi
- Lazarusforum e. V.
- Beiträge: 338
- Registriert: So 26. Jun 2016, 19:44
- OS, Lazarus, FPC: Linux Mint Cinnamon (Windows wenn notwendig), Lazarus 3.0 FPC 3.3.1
Re: Wo finde ich TCustomStringGrid?
Lege Dir ein TStringGrid auf eine Form.
Klicke im Quelltext mit der rechten Maustaste auf TStringGrid und wähle "Find Declaration ...".
Die Unit "Grids" wird geöffnet.
Klicke rechts auf "TCustomStringGrid" und wähle "Find Declaration ..." ...
Edit: Für Anfänger auch nützlich sind
https://lazarus-ccr.sourceforge.io/docs ... ggrid.html
https://wiki.freepascal.org/Grids_Reference_Page
Klicke im Quelltext mit der rechten Maustaste auf TStringGrid und wähle "Find Declaration ...".
Die Unit "Grids" wird geöffnet.
Klicke rechts auf "TCustomStringGrid" und wähle "Find Declaration ..." ...
Edit: Für Anfänger auch nützlich sind
https://lazarus-ccr.sourceforge.io/docs ... ggrid.html
https://wiki.freepascal.org/Grids_Reference_Page
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Wo finde ich TCustomStringGrid
Hallo Theo,
Aber ich habe es nie gelernt. Ich habe mir immer wenn ich eine Tool brauchte, die nötigen Codezeilen für das was ich nicht wusste, zusammen gesucht.
Das heißt jetzt aber doch auch, dass das hier auch für das Stringgrid gilt:
nur das die Option nicht im Objektinspektor angezeigt wird - oder?
Gruß Heiko
14 Jahre? Pascal Erstkontakt Mitte der 80er Jahre.
Aber ich habe es nie gelernt. Ich habe mir immer wenn ich eine Tool brauchte, die nötigen Codezeilen für das was ich nicht wusste, zusammen gesucht.
Okay, deshalb gibt es keine Komponenten die so heißt.
Egal in welches Suchfenster/-feld ich "TCustomStringGrid" eingebe, es wird nichts dazu gefunden.
Das heißt jetzt aber doch auch, dass das hier auch für das Stringgrid gilt:
Code: Alles auswählen
DBGrid1.Options := DBGrid1.Options + [dgAutoSizeColumns];
Gruß Heiko
Zuletzt geändert von kralle am So 18. Feb 2024, 12:04, insgesamt 1-mal geändert.
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Wo finde ich TCustomStringGrid?
oin,
Gruß Heiko
Das funktioniert alles so weit, aber als ich den Tipp fand, das "TCustomStringGrid" die Spaltenbreite an den Inhalt automatisch anpassen kann, suchte ich nach einer Visuellen Komponente mit diesem Namen.
Da sieht man schön wer von wem abstammt, aber nicht wer als Visuelle Komponente vorliegt und wer nicht.Niesi hat geschrieben: ↑So 18. Feb 2024, 08:41Edit: Für Anfänger auch nützlich sind
https://lazarus-ccr.sourceforge.io/docs ... ggrid.html
https://wiki.freepascal.org/Grids_Reference_Page
Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
Re: Wo finde ich TCustomStringGrid
Bei mir schon:
Wahrscheinlich.kralle hat geschrieben: ↑So 18. Feb 2024, 11:55Das heißt jetzt aber doch auch, dass das hier auch für das Stringgrid gilt:nur das die Option nicht im Objektinspektor angezeigt wird - oder?Code: Alles auswählen
DBGrid1.Options := DBGrid1.Options + [dgAutoSizeColumns];
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Wo finde ich TCustomStringGrid?
Mein Fehler. Habe es im Code-Explorer eingegeben und nicht im Code-Browser.
Die Darstellung war so klein, das ich nur "Code-" sehen konnte.
Es gibt zwar das hier
beim "TCustomStringGrid", aber nicht bei "TStringGrid".
Hier gibt es nur "goColSizing", aber das erlaubt nur das Ändern der Breite.
Ich habe mir dann ein Procedure aus dem Netz geladen, die es angeblich kann, aber auch die schafft es nicht.
Die Darstellung war so klein, das ich nur "Code-" sehen konnte.
Es gibt zwar das hier
Code: Alles auswählen
procedure AutoSizeColumn(aCol: Integer);
procedure AutoSizeColumns;
Hier gibt es nur "goColSizing", aber das erlaubt nur das Ändern der Breite.
Ich habe mir dann ein Procedure aus dem Netz geladen, die es angeblich kann, aber auch die schafft es nicht.
Code: Alles auswählen
procedure grdColWidth(grd: TStringGrid; min: Word);
var i, j, tmp, max: Word;
const dx = 5;
begin
with grd do begin
for j := 0 to (ColCount -1) do begin // alle Spalten
max := 0;
for i := 0 to (RowCount - 1 ) do begin // alle Zeilen
tmp := Canvas.TextWidth(Cells[j, i]);
if tmp > max then max := tmp
end;
if max > min then // nur wenn Minimalbreite überschritten wird,
ColWidths[j] := max + GridLineWidth + dx // ... dann Spalte verbreitern
end
end
end;
Gruß Heiko
Code: Alles auswählen
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
Re: Wo finde ich TCustomStringGrid
Wieso soll denn TStringGrid eine Eigenschaft haben, die zu TDBGrid gehört? Richtig ist dass TStringGrid einen Satz von Optionen (vom Typ TGridOptions) von TCustomGrid erbt. In TCustomGrid sind diese Options als protected deklariert, also von außen nicht sichtbar; TStringGrid deklariert die Options dann als published, so dass sie im Objekt-Inspektor sichtbar werden. TDBGrid (das auch von TCustomGrid abgeleitet ist) hat zwar ebenfalls Options, jedoch sind die ein anderer Typ: TDBGridOptions, haben also trotz der Namensgleichheit überhaupt nichts mit den Options des StringGrid zu tun. Und vor allem: beide Grids stammen von TCustomGrid ab, aber das heißt nicht dass TStringGrid auf irgendwelche Properties zugreifen kann, die in TDBGrid eingeführt wurden.kralle hat geschrieben: ↑So 18. Feb 2024, 11:55Das heißt jetzt aber doch auch, dass das hier auch für das Stringgrid gilt:nur das die Option nicht im Objektinspektor angezeigt wird - oder?Code: Alles auswählen
DBGrid1.Options := DBGrid1.Options + [dgAutoSizeColumns];
Um bei einem TStringGrid die Spaltenbreite an den Text anzupassen, kannst du die Methode AutoSizeColumn(ColumnIndex) anwenden (oder AutoSizeColumns() für alle Spalten).
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Wo finde ich TCustomStringGrid
Moin,
Die Spaltenbreite bleibt gleich. Auch "DefaultColWitdh" kann ich auf beliebige Werte setzen.
Gruß Heiko
War nur als Beispiel.
Beides interessiert mein StringGrid nicht. Es ist auch egal, ob die Option "goColSizing" aktiv ist oder nicht.
Die Spaltenbreite bleibt gleich. Auch "DefaultColWitdh" kann ich auf beliebige Werte setzen.
Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Wo finde ich TCustomStringGrid?
Hier mal das Programm als ZIP.
Vielleicht bin ich wirklich zu blöd.
Gruß Heiko
Vielleicht bin ich wirklich zu blöd.
Gruß Heiko
- Dateianhänge
-
- Dateinamen kuerzen.zip
- (126.02 KiB) 70-mal heruntergeladen
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Wo finde ich TCustomStringGrid?
Wenn du AutosizeColumns aufrufst, bevor du das Grid füllst, was erwartest du dann für ein Ergebnis?
- kralle
- Lazarusforum e. V.
- Beiträge: 994
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: Wo finde ich TCustomStringGrid?
Danke.
Gruß Heiko
Ich habe schon an meinem Verstand gezweifelt.fliegermichl hat geschrieben: ↑So 18. Feb 2024, 14:50Wenn du AutosizeColumns aufrufst, bevor du das Grid füllst, was erwartest du dann für ein Ergebnis?
Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1