[DELPHI] StringGrid

0

Mam w Stringgridzie 3 kolumny. Potrzebuje odczytywać wartość zawsze z pierwszej ,niezależnie jaką kolumnę zaznaczyłem w wierszu. Wiersz sobie zaznaczam za każdym razem cały. Jednak jak podstawić do zmiennej wartośc z pierwszej kolumny? :-/

I jeszcze jedno. Jak wyświetlać taką ilosc wierszy jaka jest mi w danej chwili potrzebna. Próbowałem ustawiac opcje VisibleColCount na konketną warośc, ale kompilator krzyczy mi że jest to stała i niemogę zmienić? Teraz po podaniu ilosci wierszy wyświetla mi bez końca(scrola przewijami i przewjam).

0
  1. Np. tak:

procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
Caption := StringGrid1.Cells[0, ARow];
end;

  1. StringGrid1.ColCount := 10;
0

Dzięki. Ale nie zrozumieliśmy sie co do drugiego pytania. Pisałe ze mam wstawiać odpowiednią ilosc wierszy a ty podałes mi kolumn. Zresztą jezeli odpowiednio napsize Stringrid.RowCount:=10 to własnie wypisuje mi więcej niz 10. Pytanie moje byo właśnie w tym kierunku skierowane- jak to rozwiązac? :-(

Pierwsze także niebardzo dziła. Zwraca mi zawsze 0 ;-|
Dzieje sie to przy używaniu myszki czy klawiatury, przechodzenie i enter.

procedure TForm1.StringGrid1Click(Sender: TObject);
var Acol,ARow : integer;
CanSelect : Boolean;
begin
StringGrid1SelectCell(Sender,ACol,ARow,CanSelect);
end;

0

Mam w Stringgridzie 3 kolumny. Potrzebuje odczytywać wartość zawsze z pierwszej ,niezależnie jaką kolumnę zaznaczyłem w wierszu. Wiersz sobie zaznaczam za każdym razem cały. Jednak jak podstawić do zmiennej wartośc z pierwszej kolumny? :-/

no to podstawiasz w zdarzeniu OnClick

x:=StringGrid.Cells[kolumna,wiersz];
gdzie kolumna to numer kolumny z ktorej potrzebujesz dane, a wiersz to numer zaznaczonego wiersza.

A w ogóle prawie to samo napisal Dryo..

I jeszcze jedno. Jak wyświetlać taką ilosc wierszy jaka jest mi w danej chwili potrzebna. Próbowałem ustawiac opcje VisibleColCount na konketną warośc, ale kompilator krzyczy mi że jest to stała i niemogę zmienić? Teraz po podaniu ilosci wierszy wyświetla mi bez końca(scrola przewijami i przewjam).

no a tutaj Dryo tez ma racje, przeciez wlasnie o to chodzi

StringGrid.RowCount:=Ilosc_potrzebnych wierszy;

W sumie nie wiem po co ten posta napisalem, ale wydaje mi sie ze moze pomoze.

0

Dzięki. Ale nie zrozumieliśmy sie co do drugiego pytania. Pisałe ze mam wstawiać odpowiednią ilosc wierszy a ty podałes mi kolumn. Zresztą jezeli odpowiednio napsize Stringrid.RowCount:=10 to własnie wypisuje mi więcej niz 10. Pytanie moje byo właśnie w tym kierunku skierowane- jak to rozwiązac? :-(

masz rację Dry się pomylił ale i tak ci pomógł ponieważ RowCount musi działać, i dzieła może używasz zmiennej w podobny sposób jak poniżej w onclick (wtedy ona ma wartoś przypadkową i może być bardzo wysoka ).

Pierwsze także niebardzo dziła. Zwraca mi zawsze 0 ;-|
Dzieje sie to przy używaniu myszki czy klawiatury, przechodzenie i enter.

procedure TForm1.StringGrid1Click(Sender: TObject);
var Acol,ARow : integer;
CanSelect : Boolean;
begin
StringGrid1SelectCell(Sender,ACol,ARow,CanSelect);
end;

no tu Dry ma 100% racji, to co wstawiasz do onClick NIE MA sensu
deklarujesz Acol, Arow i CanSelect, potem nic im nie przypisujesz i używasz do wywołania zdarzenia StringGrid1SelectCell, odpuśc sobie
StringGrid1SelectCell jest automatycznie wywoływane przez program gdy zmieniasz komórkę a Acol, Arow są wtedy wskazane zgodnie z tym na którą komórkę się przeniosłeś.

0

Dzieki. Poradziłem sobie w końcu. Napisanie w zdarzeniu onclick powodowało wywołanie prcedury dwa razy. Przy pierwszym wlasnie nic to niepowodowało, dopiero przy drugim działało. poza tym w jeszcze jednym miejscu miałem błąd i go poprawiłm. Teraz program działa ok. :-P

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