Witam! Istnieje możliwość zrobienia czegoś takiego ze wpisze w dane pole numer wiersza, wcisne przycisk i zaznaczy mi sie dany wiersz w StringGridzie?
Tak.
Przykładowy sposób:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if Key = VK_RETURN then
with StringGrid1 do
Selection := TGridRect(Rect(FixedCols, Row, ColCount, Row));
end;
Nie wiem ile masz FixedCols
, ale powinno działać z dowolną ich ilością; Jedna wada - po wciśnięciu klawisza Enter
aktywowana jest ostatnia komórka w podświetlonym wierszu, więc po ponownym wciśnięciu klawisza edytowana jest ostatnia komórka; Aktywowanie odpowiedniej komórki pozostawiam do zrobienia Tobie;
Dodam jeszcze, że typ TGridRect to alias typu TRect, więc można go wypełnić funkcją Rect i wykorzystując rzutowanie na ten pierwszy uzupełnić właściwość.
Jak mawia stara porzekadło. Jak dwie osoby mówią Tobie, że jesteś pijany, to się połóż spać. Także skoro dwie osoby, które powinienem słuchać tutaj wspominały mi że stanowczo za dużo piszę na tym forum i pewnie w ogólę. Dlatego na zadane tak konkretnie pytanie, odpowiedziałem najkrócej jak się dało. Bo rozumiem, ze ktoś takiej odpowiedzi, a nie gotowca oczekiwał.
Co do konkretnego kodu ja zrobił bym to tak, bo zrozumiałem, że pole może być i edycyjne. Jeśli nie to można tak, jak podał poprzednik. I na przyszłość radzę, zajrzeć do Helpa, pogooglować. Pytanie na forum powinno paść - w ostateczności. Tylko po samodzielnym wkładzie w rozwiązanie problemu.
var
RowNum : integer;
SelRect : TGridRect;
begin
if TryStrToInt(Edit1.Text, RowNum) then
begin
with StringGrid1 do
begin
with SelRect do
begin
Top := RowNum;
Bottom := RowNum;
Left := FixedRows;
Right := ColCount - 1;
end;
Selection := SelRect;
end;
end;
end;
W polu edycyjnym podajemy numer wiersza indeksowany od zera. Tym razem wyszła rozpiska. Ale sam kod pewnie zrodził by kolejne pytania.
Dzięki Panowie...oby dwie odpowiedzi były przydatne:)