StringGrid filtrowanie, wa?żne!

0

Witam!
Mam sobie stringgrida z np. 8 kolumnami.
W ostatniej wyskakuje mi literka B lub P w zalezności co wpisuję w reszcie kolumn.
Chodzi o to aby zaprogramować buttona który pokazywałby wiersze tylko z literką B lub P. Czyli filtrował i pokazując wiersze tylko z B lub P. Czyli np. wgrane są wszystkie wiersze z pliku z B i P, klikam na button "Pokaz B" to mi usuwa wiersze z P no i odwrotnie. Tam gdzie będą usunięte wpisy z wiersza to żeby nie było tych pustych wierszy tylko podciągał do góry dane. Czy ktoś umie takie coś zrobić? Ja nie mam pojęcia za bardzo:( Pozdrawiam!

0

Kiedyś napisałem taki prymitywny porgram, który zawierał podobną funkcję. Przeanalizuj kod, może ci się przyda: http://www.iii-lo.tarnow.pl/~dominick/Projekt88_DomBase.zip.

0

Dzięks imienniku:) spojrzę i przeanalizuję. Jak można usunąć pojedynczy wiersz?

0

Jak można usunąć pojedynczy wiersz?

No, co w tym trudnego?
Usuwasz wiersz, a potem wszystkie za nim przesuwasz o jedno w górę. :|

0

Tyle to i ja wiem! Ale jak to przełożyć na kod? :|

0

à propos pytania 1:
nie wiem czy tak sie da ale sprawdz czy StringGrid nie ma właściwości Filter, bo np. DBGrid ma.

0

Niestety S-Grid nie ma Filtra ale głównie musiałbym obcykać warunek:
if StringGrid1.Cells[4,x]:='B' then usuwaj_cały_wiersz_z_B;
I tak samo z P. A jak już usunie (wyczyści) to podciąga niższe dane do góry aby nie było takich luk :) Jak napisać wyczyszczenie wiersza i podciągnięcie danych? Dzięki za odpowiedzi. :)

0
procedure TForm1.Button1Click(Sender: TObject);
var x,i,j:integer;
begin
  for x:=1 to StringGrid1.RowCount do
  if StringGrid1.Cells[2,x]='B' then
  begin
    for i:=1 to StringGrid1.ColCount do
    for j:=2 to StringGrid1.RowCount-1 do
    StringGrid1.Cells[i,j]:=StringGrid1.Cells[i,j+1];
    StringGrid1.RowCount:=StringGrid1.RowCount-1;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var x:integer;
begin
  for x:=1 to StringGrid1.RowCount do
  StringGrid1.Cells[x,x]:='B';
end;

Jak ja to już wymyśliłem to to musi być proste :| // zjeło mi to 5 min :|

[dopisane_do_postu_poniżej] ja już nie wiem o co ci chodzi...

0

To w ogóle nie reaguje mi na to co jest wpisane w kolumnie :(
Wpisałem np. B i P w kolumnie [2,x] a ma np. usuwać B, a on usuwa wszystkie wiersze nawet z P. W sumie mi chodziło aby czyścił z danych te wiersze które ma w kolumnie B lub P, a jak wyczyści te wiersze i będą puste to żeby je usuwał (ale tylko te wyczyszczone!) i to byłoby super! :) A tak teraz mi źle to działa.
Na wyczyszczenie wszystkich wierszy mam takie cos:

var
I: Integer;
begin
for I := 0 to StringGrid1.RowCount - 1 do
StringGrid1.Rows[I].Clear();


Hmm...:(

1 użytkowników online, w tym zalogowanych: 0, gości: 1