AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TStringGrid Move

Offene Frage von "KodeZwerg"
Ein Thema von mcinternet · begonnen am 11. Jun 2018 · letzter Beitrag vom 14. Jun 2018
Antwort Antwort
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#1

TStringGrid Move

  Alt 11. Jun 2018, 17:55
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
Jörg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TStringGrid Move

  Alt 11. Jun 2018, 18:26
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;
Markus Kinzler
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
479 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TStringGrid Move

  Alt 14. Jun 2018, 00:47
Class helpers sind einfach genial! Weiß echt nicht mehr, wie ich damals ohne auskam...
Dennis
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TStringGrid Move

  Alt 14. Jun 2018, 09:15
Hallo,
Zitat:
immer ne Exception hoch
Die da wäre ?
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TStringGrid Move

  Alt 14. Jun 2018, 09:30
So klappts ohne Helfer
Delphi-Quellcode:
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;
Beispiel-Aufruf DeleteSGRow(MyStringGrid, MyStringGrid.Row); für aktuelle Selektion oder DeleteSGRow(MyStringGrid, 10); um Zeile 10 zu löschen.
Gruß vom KodeZwerg

Geändert von KodeZwerg (14. Jun 2018 um 09:33 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.269 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TStringGrid Move

  Alt 14. Jun 2018, 10:23
Hallo,
übernimmt das Assign auch das Objects-Property?
Ich glaube nicht, weiss aber nicht.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TStringGrid Move

  Alt 14. Jun 2018, 11:50
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 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