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!
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.
Dzięks imienniku:) spojrzę i przeanalizuję. Jak można usunąć pojedynczy wiersz?
Jak można usunąć pojedynczy wiersz?
No, co w tym trudnego?
Usuwasz wiersz, a potem wszystkie za nim przesuwasz o jedno w górę. :|
Tyle to i ja wiem! Ale jak to przełożyć na kod? :|
à propos pytania 1:
nie wiem czy tak sie da ale sprawdz czy StringGrid nie ma właściwości Filter, bo np. DBGrid ma.
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. :)
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...
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...:(