Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Fragen zu Stringgrids (https://www.delphipraxis.net/150210-fragen-zu-stringgrids.html)

idefix2 10. Apr 2010 00:41


Fragen zu Stringgrids
 
Hallo,

ich versuche mich gerade erstmals an einem Stringgrid. Jetzt habe ich die Hilfe schon ein paar mal von vorne nach hinten durchsucht, ich finde keine Methode, mit der ich eine ganze Zeile oder eine ganze Spalte des Stringgrids entfernen kann. Sowas muss es doch geben?!!!

Und eine zweite Frage: ein inplace edit mit Doppelklick in ein Feld hinein scheinen die Stringgrids überhaupt nicht zu unterstützen - oder gibt es da eine Property, mit der man das doch aktivieren kann?

Hobby-Programmierer 10. Apr 2010 01:12

Re: Fragen zu Stringgrids
 
Moin ...,
wenn dich die Delphi - Hilfe im Stich lässt suche doch einfach hier im Forum ob das Thema schonmal diskutiert wurde.
zu 1) ...
zu 2) ich glaube unter Optionen gabs goEditing

scrat1979 10. Apr 2010 06:23

Re: Fragen zu Stringgrids
 
Wenn Du komfortabel mit StringGrids arbeiten möchtest, empfehle ich Dir die Komponenten NextGrid von Bergsoft und AdvStringGrid von TMSSoftware. Ein Blick lohnt es sich auf jeden Fall!!

Viel Spass

idefix2 10. Apr 2010 09:41

Re: Fragen zu Stringgrids
 
ja, danke fürs erste für die Antworten - ich bin jetzt einigermassen verblüfft, dass man im Delphi Stringgrid eine derartige Basisfunktionalität wie das Entfernen einer Zeile oder Spalte offenbar zu Fuß programmieren oder externe Komponenten verwenden muss. Ich war fest davon überzeugt, dass ich da bloss etwas übersehen habe :shock:

henk 10. Apr 2010 12:13

Re: Fragen zu Stringgrids
 
moin moin,

vielleicht hilfts dir, müsste aber noch ein bisschen optimiert werden, wenn ich mich recht erinnere stammt der code aus dem kochbuch 'borland delphi 7' von hanser, aber ganz sich bin ich nicht, hab grad keine lust nachzuschaun....


Delphi-Quellcode:

//--------prozedur für zeilen löschen---------------------------------
procedure tform2.stringGridDelRow(RowNumber : Integer; Grid : TStringGrid);
var i : Integer;
begin
   with Grid do begin
    if grid.Row < FixedRows+2 then
    begin
    exit; end
    else
    begin

 Grid.Row := RowNumber;
 if (Grid.Row = Grid.RowCount -1) then
  begin  // Falls letzte Zeile
  Grid.RowCount := Grid.RowCount - 1;
  end
     else
  begin  // Wenn doch nicht die letzte Zeile
  for i := RowNumber To Grid.RowCount - 1 do
    begin
     Grid.Rows[i] := Grid.Rows[i+ 1];
    end;
     Grid.RowCount := Grid.RowCount - 1;
    end;
end;    end;end;

//--------prozedur für spalte löschen---------------------------------
procedure tform2.stringgridDelcol(colNumber : Integer; Grid1 : TStringGrid);
var i : Integer;
begin
Grid1.col := colNumber;
if (Grid1.col = Grid1.colCount -1) then
   begin
   // Falls letzte spalte
   Grid1.colCount := Grid1.colCount - 1;
   end
else
   begin
   // Wenn doch nicht die letzte spalte
   for i := colNumber To Grid1.colCount - 1 do
     begin
     Grid1.Cols[i] := Grid1.cols[i+ 1];
     end;
     Grid1.colCount := Grid1.colCount - 1;
   end;
end;
wie gesagt, nicht optimal, musst du noch auf dein projekt zuschneiden, aber es bringt dich vielleicht in bisschen weiter...

idefix2 10. Apr 2010 13:07

Re: Fragen zu Stringgrids
 
Danke, C+P wird mir vielleicht etwas Tipparbeit ersparen :-D

Mir ist nur nach wie vor unverständlich, dass das Delphi Stringgrid das nicht von vorneherein kann.

Delphi-Laie 10. Apr 2010 13:17

Re: Fragen zu Stringgrids
 
Zitat:

Zitat von idefix2
Danke, C+P wird mir vielleicht etwas Tipparbeit ersparen :-D

Mir ist nur nach wie vor unverständlich, dass das Delphi Stringgrid das nicht von vorneherein kann.

Mir auch. Stringgrids haben noch andere Überraschungen parat. So ist das Färben einzelner Zeilen, Spalten oder Zellen, egal ob des Hintergrundes oder der Schrift, ein K(r)ampf, aber möglich ist es.

Lannes 10. Apr 2010 14:16

Re: Fragen zu Stringgrids
 
Hallo,

bevor das StringGrid hier völlig zerrissen wird ...

Zitat:

Zitat von idefix2
Mir ist nur nach wie vor unverständlich, dass das Delphi Stringgrid das nicht von vorneherein kann.

das StringGrid ist nicht zur Datenhaltung gedacht. Nutzt man das StringGrid nur zur Anzeige der relevanten Daten ist das Löschen von Zeilen nicht erforderlich.

Zitat:

Zitat von Delphi-Laie
Stringgrids haben noch andere Überraschungen parat. So ist das Färben einzelner Zeilen, Spalten oder Zellen, egal ob Hintergrund oder der Schrift, ein K(r)ampf, aber möglich ist es.

Ein Krampf ist es nur wenn man es falsch anfängt. Außerdem ist es bei allen Standard-Komponenten so das man unterschiedliche Formatierungen selbst zeichen muss.

mkinzler 10. Apr 2010 14:26

Re: Fragen zu Stringgrids
 
Und der Vortei ist, dass man es leicht kann

Wolfgang Mix 10. Apr 2010 15:19

Re: Fragen zu Stringgrids
 
Zitat:

Ein Krampf ist es nur wenn man es falsch anfängt. Außerdem ist es bei allen Standard-Komponenten so das man unterschiedliche Formatierungen selbst zeichen muss.
Zitat:

Und der Vortei ist, dass man es leicht kann
Meint ihr, dass solche Antworten wirklich weiterhelfen?
Einige Beispiele wären da schon nett :)

mkinzler 10. Apr 2010 15:23

Re: Fragen zu Stringgrids
 
Beispiele hierfür findet man bei Delphi. Zudem war dsas nicht die Frage hier sondern nur eine Reaktion auf ein(e) Aussage(n) hier im Thread!

idefix2 10. Apr 2010 15:51

Re: Fragen zu Stringgrids
 
Zitat:

Ein Krampf ist es nur wenn man es falsch anfängt.
Zitat:

Und der Vortei ist, dass man es leicht kann
Naja, ich wollte eigentlich bestimmte Zeilen meines Stringgrids in einer anderen Schrift mit anderer Hintergrundfarbe darstellen, so "leicht" ist das offensichtlich aber doch nicht - Nachdem es nicht sehr wichtig ist, habe ich es jetzt einmal zurückgestellt. Natürlich ist alles leicht, wenn man einmal herausgefunden hat, wie es geht, aber oft ist es eben nicht so "leicht", das herauszufinden, und wenn es zu "leicht" ist, es "falsch anzufangen", dann liegt eben dort schon das Problem.

Wolfgang Mix 10. Apr 2010 16:15

Re: Fragen zu Stringgrids
 
Liste der Anhänge anzeigen (Anzahl: 1)
@idefix2:

Einige Grundlagen findest du im Anhang.
Weitere findest du bei Google mit den Stichworten
"Stringgrid" und "Tutorials"

Gruss

Wolfgang

Hansa 10. Apr 2010 16:18

Re: Fragen zu Stringgrids
 
Zitat:

Zitat von idefix2
Naja, ich wollte eigentlich bestimmte Zeilen meines Stringgrids in einer anderen Schrift mit anderer Hintergrundfarbe darstellen, so "leicht" ist das offensichtlich aber doch nicht.

Doch, ist es. Es nützt auch nichts, zu sagen : "einige Beispiele wären schon hilfreich". Zumindest nicht, wenn es alleine in der DP zig Beispiele gibt. Man sehe sich das mal an : [dp]Stringgrid Zellen färben[/dp] Oder geht es darum, dem Fragesteller aus den gefundenen Beispielen, genau das herauszusuchen, was ihm eventuell genau passen könnte oder wie ? :shock: Das muss doch der wissen. :gruebel:

idefix2 10. Apr 2010 16:49

Re: Fragen zu Stringgrids
 
Hallo Wolfgang, danke, das ist wirklich hilfreich, weil kompakt!


Liebe Grüsse Franz


P.S.:
Eines ist mir aufgefallen. Falls Du selbst das PDF erstellt hast, solltest Du in der Prozedur GridDelRow noch einen kleinen Fehler ausbessern (über den ich bei meinen Experimenten als allererstes auch gestolpert bin). Wenn man die unterste Zeile eines Grids löscht:
if (Grid.Row = Grid.RowCount-1) then
gehört auch noch:
Grid.Row := Grid.Row-1
gemacht, weil sonst nach dem Löschen der Zeile der Gridcursor ausserhalb des Gridbereichs steht.

Wolfgang Mix 10. Apr 2010 17:56

Re: Fragen zu Stringgrids
 
Nein, das PDF ist nicht von mir, sondern von hier
aber ich merke mir deine Anmerkung.

Interessant ist auch die Startseite hier
Gruss

Wolfgang

fatalerror 10. Apr 2010 21:11

Re: Fragen zu Stringgrids
 
Ein Stringgrid ist meines Erachtens eine Grundkomponente die in jede Entwicklungsumgebung gehört. Was sich hier aber Borland, Codegear und Embarcadero nun seit Jahren leisten ist jenseits jeglicher Standards. XP Themes werden in meiner Version (2009) noch immer nicht unterstützt. Grundlegende Funktionen sind nicht integriert. Klar kann ich mir als professioneller Entwickler auch ein externes Grid kaufen, doch wenn ich schon ca 900 € für eine Programmierumgebung ausgebe, erwarte ich auch ein benutzbares Stringgrid mit aktueller Optik.

Wolfgang Mix 10. Apr 2010 21:20

Re: Fragen zu Stringgrids
 
Treffender kann man es nicht sagen :)

R2009 30. Apr 2010 05:56

Re: Fragen zu Stringgrids
 
Hallo Wolfgang,

ich hoffe das PDF ist nicht von dir. Das Teil sollte schnellstens überarbeitet werden.
Ich habe mir nur das Teil für das Einfärben des Grids angesehen.
Das ist ein Ameisenhaufen voller Fehler.
Hast du die Quelldatei?
Ich würde das gerne machen, wenn du willst.

Grüsse
Rainer
Ps:Bitte nimms mir nicht übel

hoika 30. Apr 2010 08:36

Re: Fragen zu Stringgrids
 
Hallo,

um noch mal auf die Ausgangsfrage zurückzukommen.
Delphi-Quellcode:
type
  THackStringGrid = class(TStringGrid);

procedure DeleteRow(yourStringGrid: TStringGrid; ARow: Integer);
begin
  with THackStringGrid(yourStringGrid) do
    DeleteRow(ARow);
end;

Gefunden bei
1

Gesucht per Google "delphi grid.rows.delete"

OK, ist schon blöd, das das nicht public ist.


Heiko

Wolfgang Mix 30. Apr 2010 08:50

Re: Fragen zu Stringgrids
 
@R2009:
Nein, das PDF ist nicht von mir, siehe POST #16.
Wäre toll, wenn du das überarbeitest.

LG

Wolfgang


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz