초보예요.. 잘 부탁드려요.. 꾸벅
함수인 ListBox1.Items.Delete(ListBox1.Itemindex)를 써서
마우스로 선택한 하나의 아이템을 delete하였습니다.
그러면 삭제한 라인 밑의 아이템들은 모두 한 라인식 위로
올라오게 되죠
그다음이 문젠데....
이제부터 저의 질문입니다..^^
삭제한 라인으로 올라온 바로 밑의 아이템도 계속 마우스로
선택한 것처럼 하는 방법을 알고 싶습니다.
ListBox1.setfocus로 해도 그 라인을 선택한 걸로 되지는 않습니다..
===> 해당 아이템을 선택할수 있는 방법을 알고 싶습니다.
(마우스로 선택하는 것과 동일)
제가 못찾는 건지...참 답답하네여
예) 처음에는 마우스로 선택한후 delete 버튼(위의 delete함수 이용하여
만든 것임)을 눌러 삭제한 후 계속 밑의 아이템들을 버튼만을 계속 눌러
삭제하고자 하는 것..
즉 마우스 선택과 버튼 클릭의 반복적인 행위가 아니라
두번째부터는 버튼만으로 삭제가 되도록 하는 것입니다
> 초보예요.. 잘 부탁드려요.. 꾸벅
>
> 함수인 ListBox1.Items.Delete(ListBox1.Itemindex)를 써서
> 마우스로 선택한 하나의 아이템을 delete하였습니다.
> 그러면 삭제한 라인 밑의 아이템들은 모두 한 라인식 위로
> 올라오게 되죠
>
> 그다음이 문젠데....
> 이제부터 저의 질문입니다..^^
>
> 삭제한 라인으로 올라온 바로 밑의 아이템도 계속 마우스로
> 선택한 것처럼 하는 방법을 알고 싶습니다.
>
> ListBox1.setfocus로 해도 그 라인을 선택한 걸로 되지는 않습니다..
>
> ===> 해당 아이템을 선택할수 있는 방법을 알고 싶습니다.
> (마우스로 선택하는 것과 동일)
> 제가 못찾는 건지...참 답답하네여
>
> 예) 처음에는 마우스로 선택한후 delete 버튼(위의 delete함수 이용하여
> 만든 것임)을 눌러 삭제한 후 계속 밑의 아이템들을 버튼만을 계속 눌러
> 삭제하고자 하는 것..
> 즉 마우스 선택과 버튼 클릭의 반복적인 행위가 아니라
> 두번째부터는 버튼만으로 삭제가 되도록 하는 것입니다
// 하나의 item을 선택한 후 버튼을 계속 클릭해 보세요
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
SaveIndex: Integer;
begin
if ListBox1.ItemIndex < 0 then
System.Exit;
SaveIndex := -1;
if ListBox1.ItemIndex = ListBox1.Items.Count - 1 then // 최하위이면
SaveIndex := ListBox1.ItemIndex - 1
else if ListBox1.ItemIndex = 0 then // 최상위이면
SaveIndex := 0
else
SaveIndex := ListBox1.ItemIndex;
ListBox1.Items.Delete(ListBox1.ItemIndex);
if ListBox1.Items.Count > 0 then
begin
ListBox1.ItemIndex := SaveIndex;
ListBox1.Selected[SaveIndex] := True; // 선택표시
end;
ListBox1.SetFocus;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 1 to 10 do
ListBox1.Items.Add(IntToStr(i)); // 예제 item
end;
end.