Autor Beitrag
20:30
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Mo 31.12.12 19:13 
Also, habe folgenden Quellcode:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
type
  TMeinSG = class(TStringGrid);

procedure TMain.Button1Click(Sender: TObject);
var i: integer;
begin
  for i := 1 to StrinGrid1.RowCount do
    begin
      if pos(ED_Suche.Text, StrinGrid1.Cells[1,i]) = 0 then DeleteRow(i);
    end;
end;

procedure TMain.DeleteRow(ARow: Integer);
begin
  with TMeinSG(StrinGrid1) do
    DeleteRow(ARow);
end;


Man soll im Stringgrid einen String suchen. Wenn dieser nicht gefunden wird, soll die entsprechende Zeile rausgelöscht werden, so dass nur die "richtigen" noch da sind.

Blöd nur, dass meins nicht will. Hilfe wäre großartig. ;)
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Mo 31.12.12 19:37 
user profile icon20:30 hat folgendes geschrieben Zum zitierten Posting springen:

Blöd nur, dass meins nicht will. Hilfe wäre großartig. ;)


Auch blöd, wenn man die Fehlermeldung verschweigt. Oder aber, nicht sagt, dofern keine erscheint und nur nicht gemacht wird, wie gewünscht. Insofern : blöd. :mrgreen:

_________________
Gruß
Hansa

Für diesen Beitrag haben gedankt: 20:30
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 31.12.12 20:57 
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
type
    THackGrid=Class(TCustomGrid)
      procedure DeleteRow(ARow: Longint);
    end;
{ THackGrid }
procedure THackGrid.DeleteRow(ARow: Integer);
begin
   inherited;
end;


Procedure DeleteRow(sg:TStringGrid;Index:Integer);
begin
  THackGrid(sg).DeleteRow(index);
end;

procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
begin
  for i := StringGrid1.RowCount - 1 DownTo 1 do
    begin
      if pos(ED_Suche.Text, StringGrid1.Cells[1,i]) = 1 then DeleteRow(StringGrid1,i);
    end;
end;




procedure TForm1.FormCreate(Sender: TObject);
begin
  ReportMemoryLeaksOnShutDown := true;
end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: 20:30
20:30 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Mo 31.12.12 22:12 
Eine Fehlermeldung gabs nicht... Höchstens eine unvorhersebare Ausführung.
Es wurden alle bis auf die fixed gelöscht.

Danke für die Antwort! Werde ich mir noch anschauen und ausprobieren (Sieht etwas komisch aus..?)... Gibt es auch eine Erkärung, für diejenigen, die das selbe Problem haben (/werden). Wäre nett. ;)

EDIT:
So mal getestet. Nachdem ich das befragte Ergebnis von pos auf 0 gesetzt habe, funktioniert alles. Man sollte noch auf Groß und Kleinschreibung achten...