안녕하세요...
제가 지금 고민하고 있는건 ListBox 컴포넌트의 Selected 프로퍼티 땜 입니다.
멀티 선택이 가능할때 전체 선택을 위한 동작을 할때 아래와 같이 처리를 합니다.
for i:=0 to ListBox1.Items.Count-1 do
ListBox1.Selected[i]:= True;
위와 같이 하면 전체 선택엔 별 무리가 없지만 아이템이 백단위가 넘어서 천단위
일 경우 0번부터 끝까지 선택되면서 ListBox 의 내용이 밑으로 스크롤 된답니다.
그래서 그런지 선택 속도도 만만치 안답니다. 다른 방법 없을까요?
그럼 2만.
> 안녕하세요...
>
> 제가 지금 고민하고 있는건 ListBox 컴포넌트의 Selected 프로퍼티 땜 입니다.
> 멀티 선택이 가능할때 전체 선택을 위한 동작을 할때 아래와 같이 처리를 합니다.
>
> for i:=0 to ListBox1.Items.Count-1 do
> ListBox1.Selected[i]:= True;
>
> 위와 같이 하면 전체 선택엔 별 무리가 없지만 아이템이 백단위가 넘어서 천단위
> 일 경우 0번부터 끝까지 선택되면서 ListBox 의 내용이 밑으로 스크롤 된답니다.
> 그래서 그런지 선택 속도도 만만치 안답니다. 다른 방법 없을까요?
>
> 그럼 2만.
안녕하세요? 구창민입니다.
방금 제가 만들어 테스트 해봤는데 잘 되는 군요.
강제로 Ctrl+Shift+End 키를 누른 것 처럼 만들어 버리는 겁니다.
번쩍할새에 전부 선택이 될겁니다. 어쩐지 꽁수같죠? ^^
잘 안되시면 다시 질문올려주세요.
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.SetFocus;
ListBox1.Selected[0]:= True;
Keybd_Event( VK_CONTROL, VK_CONTROL, 0, 0 );
Keybd_Event( VK_SHIFT, VK_SHIFT, 0, 0 );
Keybd_Event( VK_END, VK_END, 0, 0 );
Keybd_Event( VK_END, VK_END, KEYEVENTF_KEYUP, 0 );
Keybd_Event( VK_SHIFT, VK_SHIFT, KEYEVENTF_KEYUP, 0 );
Keybd_Event( VK_CONTROL, VK_CONTROL, KEYEVENTF_KEYUP, 0 );
end;
그럼~ 즐거운 프로그래밍 되시길~