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
113 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

TStringGrid Move

  Alt 11. Jun 2018, 16: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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
38.817 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: TStringGrid Move

  Alt 11. Jun 2018, 17: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
242 Beiträge
 
Delphi XE5 Professional
 
#3

AW: TStringGrid Move

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

Registriert seit: 5. Jul 2006
Ort: Magdeburg
6.346 Beiträge
 
Delphi XE4 Professional
 
#4

AW: TStringGrid Move

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

Registriert seit: 1. Feb 2018
2.066 Beiträge
 
Delphi 2010 Professional
 
#5

AW: TStringGrid Move

  Alt 14. Jun 2018, 08: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
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...

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

Registriert seit: 5. Jul 2006
Ort: Magdeburg
6.346 Beiträge
 
Delphi XE4 Professional
 
#6

AW: TStringGrid Move

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

Registriert seit: 1. Feb 2018
2.066 Beiträge
 
Delphi 2010 Professional
 
#7

AW: TStringGrid Move

  Alt 14. Jun 2018, 10: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
Wenn ein unerwarteter Fehler aufgetreten ist, frage ich mich immer, welche Fehler erwartet wurden...
  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 10:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2018 by Daniel R. Wolf