![]() |
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? |
Re: Fragen zu Stringgrids
|
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 |
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:
|
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:
wie gesagt, nicht optimal, musst du noch auf dein projekt zuschneiden, aber es bringt dich vielleicht in bisschen weiter...//--------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; |
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. |
Re: Fragen zu Stringgrids
Zitat:
|
Re: Fragen zu Stringgrids
Hallo,
bevor das StringGrid hier völlig zerrissen wird ... Zitat:
Zitat:
|
Re: Fragen zu Stringgrids
Und der Vortei ist, dass man es leicht kann
|
Re: Fragen zu Stringgrids
Zitat:
Zitat:
Einige Beispiele wären da schon nett :) |
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!
|
Re: Fragen zu Stringgrids
Zitat:
Zitat:
|
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 |
Re: Fragen zu Stringgrids
Zitat:
|
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. |
Re: Fragen zu Stringgrids
|
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.
|
Re: Fragen zu Stringgrids
Treffender kann man es nicht sagen :)
|
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 |
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 ![]() Gesucht per Google "delphi grid.rows.delete" OK, ist schon blöd, das das nicht public ist. Heiko |
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 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz