아래와 같이... 버튼을 누르면, 에디터(nameserch)에 입력되어 있는과
같은 내용을 가지고 있는 셀을 찾아서 그 찾은 라인에 바탕색을 주거나,
셀렉트 되어 있게 표현되게 하려면... 어떻게 해야 하나요???
참고로, 각 라인의 첫칸에 이름이 나타나고 있습니다..
그리고, 찾고 나면 for 문을 벗어 나야 하는데.. break를 쓰면 되는건지도 모르겠군요..
고수님들의 도움말을 기다리고 있습니다... ^^;
--------------------------------
procedure TwaitingForm.SpeedButton1Click(Sender: TObject);
var
i : Integer;
begin
if (namesearch.Text = '이름 입력') or (namesearch.Text = '') then
begin
Showmessage('찾을 친구 이름을 입력해 주세요');
end else
begin
for i := 0 to StringGrid3.RowCount do
begin
if namesearch.Text = StringGrid3.Cells[0,i] then
begin
StringGrid3.row := 0;
StringGrid3.col := i;
break;
end;
end;
end;
end;
--------------------------------
==> StringGrid의 "Option"라는 프로퍼티의 "+"를 클릭하세요.
그러면 여러 옵션들이 나오는데 "goRowSelect"값을 True로
하세요. 그 외 많은 옵션들이 있는데 직접 해보시면 금방
아실꺼예요.
> 그리고, 찾고 나면 for 문을 벗어 나야 하는데..
> break를 쓰면 되는건지도 모르겠군요..
==> "for", "case", "repeat" 등에 break를 쓰는게 맞습니다앙~~
> if namesearch.Text = StringGrid3.Cells[0,i] then
> begin
> StringGrid3.row := 0;
> StringGrid3.col := i;
> break;
> end;
===================================================
위의 내용은 거의 다 맞았는데 약간 헷갈리셨군요.
StringGrid3.Row := i;
StringGrid3.Col := 0;
으로 고치세요.
===================================================
또 "options"에서 "goRowSelect"를 했기 때문에
StringGrid3.Col
에 값을 넣어 줄 필요는 없겠죠.
Row만 지정해주면 됩니다.
===================================================
또 혹시나 StringGrid3에 포커스가 가지 않는다면
StringGrid3.Row := i;
StringGrid3.SetFocus;
Break;
로 해주시면 되겠죠.