Autor Beitrag
Herr der Runden
Hält's aus hier
Beiträge: 7


D6 Ente
BeitragVerfasst: Mi 27.07.05 09:49 
Hi,
ich hab zwar schon im Forum gesucht aber nichts passendendes gefunden

gibt es die möglichkeit eine Zeile aus einem StringGrid mit nur einem Befehl zu löschen
sodass die folgenden Zeilen einfach nachrücken, (ähnlich wie bei Excel)

ich hab ma folgendes versucht:

StringGrid1.Cols[x].Delete(x);

dann kommt immer Fehler dass ich nix löschen darf
muss ich da irgend ne eigenschaft verändern oder vorher die Spalte irgenwie freigeben ??

THX im vorraus
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 27.07.05 09:57 
:welcome: im DF
1. Sind Zeilen die Rows vom StringGrid und nicht die Cols.
2. afaik geht das nur über eine Schleife, Dort verschiebst die die Zeilen nach der zu löschenden Zeile einfach nach "oben" und setzt zum Schluss RowCount um eins kleiner.

Hier ein bisschen Source aus einem meiner Programme:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TfrmMain.Eintraglschen1Click(Sender: TObject);
var
  cnt : Integer;
begin
  if grdProtokoll.RowCount > 2 then begin
    if grdProtokoll.Row < grdProtokoll.RowCount - 1 then begin
      for cnt := grdProtokoll.Row+1 to grdProtokoll.RowCount - 1 do begin
        if cnt > 1 then begin
          grdProtokoll.Rows[cnt-1] := grdProtokoll.Rows[cnt];
        end;
      end;
    end;
    grdProtokoll.RowCount := grdProtokoll.RowCount - 1;
  end
  else begin
    for cnt := 0 to grdProtokoll.ColCount - 1 do begin
      grdProtokoll.Cells[cnt,1] := '';
    end;
  end;
end;

Dort sind, glaube ich, alle Sonderfälle abgehandelt. Zumindest funktioniert es bei mir ohne Fehler.


Zuletzt bearbeitet von jasocul am Mi 27.07.05 10:03, insgesamt 1-mal bearbeitet
Herr der Runden Threadstarter
Hält's aus hier
Beiträge: 7


D6 Ente
BeitragVerfasst: Mi 27.07.05 10:02 
user profile iconjasocul hat folgendes geschrieben:
:welcome: im DF
1. Sind Zeilen die Rows vom StringGrid und nicht die Cols.
2. afaik geht das nur über eine Schleife, Dort verschiebst die die Zeilen nach der zu löschenden Zeile einfach nach "oben" und setzt zum Schluss RowCount um eins kleiner.


Stimmt hab vor lauter Bäumen den Wald nimmer gesehn, Vielen dank.

würd mich trotzdem interessieren was der oben genannte Befehl machen soll
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 27.07.05 10:19 
user profile iconHerr der Runden hat folgendes geschrieben:
würd mich trotzdem interessieren was der oben genannte Befehl machen soll

Ich glaube, dass ist eine abstrakte Methode, die erst noch überchrieben werden muss. Aber das weiß ich nicht sicher.