![]() |
TStringGrid Move
Hallo die Gemeinde,
ich möchte ganz einfach in einem TStringGrid eine Zeile löschen. Dazu cleare ich die Zeile, möchte danach den Rest von unten moven und die letzte Zeile löschen. Nur leider kommt schon beim xGrid.Rows.Move[x,y] immer ne Exception hoch: Es können keine Zeilen des Tabellengitters gelöscht oder eingefügt werden. mh .... Hat da wer nen Tipp? Fixed Rows und Cols ist auf 0 Gruss mcinternet |
AW: TStringGrid Move
Ich würde es per Helper realisieren:
Delphi-Quellcode:
type
TCustomGridHelper = class helper for TCustomGrid public procedure DelRow(ARow: Integer); end; procedure TCustomGridHelper.DelRow(ARow: Integer); begin Self.DeleteRow(ARow); end; |
AW: TStringGrid Move
Class helpers sind einfach genial! :D Weiß echt nicht mehr, wie ich damals ohne auskam... :lol:
|
AW: TStringGrid Move
Hallo,
Zitat:
|
AW: TStringGrid Move
So klappts ohne Helfer
Delphi-Quellcode:
Beispiel-Aufruf
procedure DeleteSGRow(MyGrid: TStringGrid; iRow: Integer);
var i: Integer; begin for i := iRow to MyGrid.RowCount - 2 do // kopiere alles unterhalb iRow MyGrid.Rows[i].Assign(MyGrid.Rows[i + 1]); // nach oberhalb von iRow MyGrid.RowCount := MyGrid.RowCount - 1; // entferne letzten Eintrag end;
Delphi-Quellcode:
für aktuelle Selektion oder
DeleteSGRow(MyStringGrid, MyStringGrid.Row);
Delphi-Quellcode:
um Zeile 10 zu löschen.
DeleteSGRow(MyStringGrid, 10);
|
AW: TStringGrid Move
Hallo,
übernimmt das Assign auch das Objects-Property? Ich glaube nicht, weiss aber nicht. |
AW: TStringGrid Move
Soweit hab ichs nicht getestet, Ziel für mich war es eine Zeile wegzubekommen ohne Helfer. Wie man sieht überschreibe ich lediglich alles und lösch das letzte.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 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