Autor Beitrag
sunday_2
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Fr 15.11.02 17:27 
Hi,

ist mir schon fast peinlich, aber wieso klappt das Löschen im StringGrid nicht. Habe folgendes eingegeben:
ausblenden Quelltext
1:
2:
3:
for i:=1 to sg_auswahl.RowCount-1 do
          begin
            sg_auswahl.Rows.Delete(1)

Beim Löschen einer ComboBox funktioniert es ja auch mit.
ausblenden Quelltext
1:
2:
for i:=0 to 26 do
           ComboBox_zahlen.Items.Delete(0);


(17.11.02 17:54 Tino) Titel geändert.

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 15.11.02 17:44 
Hallo

überschreib besser den Zellinhalt

Mfg Frank
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Fr 15.11.02 18:02 
Hi Kendorn

tolle Idee, :lol: nur leider brauch ich die Zeilen gelöscht. :(

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Fr 15.11.02 18:05 
wie meinst du mit gelöscht?

die vom ende, die in der mitte ?

ende: rowcount verkürzen
mitte: mit rows.assign die Zellen einzlen hochkopieren und zum schluß rowcount verkürzen

Frank
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Sa 16.11.02 03:25 
Hallo,

wenn du Code brauchst: --> hier.

_________________
If accidentally read, induce vomitting.
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Mo 18.11.02 10:05 
Das hilft leider alles noch nicht so richtig.
Also: Ich habe ein StrigGrid, das der User füllt (mal 3 Zeilen, mal 12 Zeilen usw.) Wenn der User festgestellt hat, das er Fehler gemacht hat, soll er mittels eines Reset-Buttons alle Zeilen löschen und neu starten können. Habe im augenblick folgenden Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
for i:=1 to sg_auswahl.RowCount-1 do
          begin
            sg_auswahl.Rows[i] := sg_auswahl.Rows[i + 1];
            sg_auswahl.RowCount := sg_auswahl.RowCount - 1;
            sg_auswahl.Repaint;

Die Zeilen werden dann auch anscheinend gelöscht, jedoch wenn ich eine neue Zeile hinzufüge, ist mindestens eine Zeile von den alten wieder da.

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mo 18.11.02 12:47 
hallo

du hast das Beispiel nicht richtig verstanden:
ausblenden Quelltext
1:
            sg_auswahl.RowCount := sg_auswahl.RowCount - 1;					

innerhalb der einer For-schleife veränderst du das Ende, hast glück, das hier kein Laufzeitfehler entsteht
ausblenden Quelltext
1:
            sg_auswahl.Repaint;					

innerhalb der schleife das grid neuzeichen ist totaler quark und außerdem brauchst du es nicht überhaupt nicht neuzeichnen lassen

Sorry, hab nich so verstanden, daß du das ganze Grid löschen willst, das obengenannte Code-bsp ist dafür ausgelegt, eine bestimmte Zeile im Grid zu löschen.

das könnte dir weiterhelfen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
Var acol,arow:integer;
begin
  with sg_auswahl do
    begin
      //Zelleninhalt löschen
      for arow:=1 to rowcount-1 do
       for acol:=0 to colcount-1 do cells[acol,arow]:='';
      //anzahl der Zeilen neu setzen, 1 Zeile bleibt immer stehen, sonst entstehen Probleme mit fixedrows
      RowCount:= 2;
    end;
end;

Du mußt den Code evtl. ein wenig anpassen, wenn du fixedrows/-cols hast

mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Mo 18.11.02 13:13 
Hab den Fehler gefunden. Muß heißen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for i:=1 to sg_auswahl.RowCount-1 do
      begin
          sg_auswahl.Rows[i].Clear;
      end;
          sg_auswahl.RowCount:=2;
          Zaehlwerk2:=1; 
          // Globale Variable, die beim Füllen hochgezählt wird.
          sg_auswahl.Repaint;


Trotzdem Danke
:lol:

_________________
Gruß Sunday

... wer nicht fragt, bleibt dumm!!!