운영자님 넘 감사드립니다.
그런데여..
리스트박스1에 아템이 있는상태에서
리스트박스2루 가는거여..
제가 한건..
리스트박스1에서 1루 글을 옮기는거거든여.. 마우스 드롭으루여..
맞다 마우스드롭을 말씀 안드렸어여..
이구..
죄송합니다.
제가 한거 먼저 드릴께여..
죄송합니다.
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
Value : integer ;
begin
if (sender is TListBox) and (Source = ListBox1) then
begin
Value := ListBox1.ItemAtPos(Point(x,y), True);
if Value = -1 then
begin
ListBox1.Items.Add(ListBox1.Items[ListBox1.ItemIndex]);
ListBox1.Items.Delete(ListBox1.ItemIndex);
end
else
begin
ListBox1.Items.Insert(Value {+1}, ListBox1.Items[ListBox1.ItemIndex]);
ListBox1.Items.Delete(ListBox1.ItemIndex);
end;
end;
end;
운영자님 전 이런식으루 리스트박스1에 있는 내용을
옮겼거든여..
마우스 드롭으루여..
다시 갈켜주세여..
정말 죄송합니다.
var
DragItem: string;
// ListBox1의 OnMouseDown 이벤트
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ItemIndex: Integer;
begin
if Button = mbLeft then // 오른쪽마우스 버튼이 눌려졌고
begin
ItemIndex := ListBox1.ItemAtPos(Point(X, Y), True);
if ItemIndex >= 0 then // 마우스 위치에 아이템이 있다면
begin
ListBox1.BeginDrag(False); // 드래그 시작
DragItem := ListBox1.Items[ItemIndex]; // 드래그 아이템 저장
end;
end;
end;
// ListBox2의 OnDragOver이벤트
procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if Source = ListBox1 then // 발신지가 ListBox1이면
Accept := True // 드랍 허용
else
Accept := False; // 드랍 거부
end;
// ListBox2의 OnDragDrop 이벤트
procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
Index: Integer;
begin
// 드랍될 아이템이 추가될 위치
Index := ListBox2.ItemAtPos(Point(X, Y), True);
if Index >= 0 then
ListBox2.Items.Insert(Index, DragItem) // Index번째에 추가
else
ListBox2.Items.Add(DragItem); // 끝에다가 추가
// 발신지에서 아이템 삭제
ListBox1.Items.Delete(ListBox1.Items.IndexOf(DragItem));
end;
^^ 항상 즐코하세요.
이정민 wrote:
> 운영자님 넘 감사드립니다.
>
> 그런데여..
>
> 리스트박스1에 아템이 있는상태에서
>
> 리스트박스2루 가는거여..
>
> 제가 한건..
>
> 리스트박스1에서 1루 글을 옮기는거거든여.. 마우스 드롭으루여..
>
> 맞다 마우스드롭을 말씀 안드렸어여..
>
> 이구..
>
> 죄송합니다.
>
> 제가 한거 먼저 드릴께여..
>
> 죄송합니다.
>
> procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
> var
> Value : integer ;
> begin
> if (sender is TListBox) and (Source = ListBox1) then
> begin
> Value := ListBox1.ItemAtPos(Point(x,y), True);
> if Value = -1 then
> begin
> ListBox1.Items.Add(ListBox1.Items[ListBox1.ItemIndex]);
> ListBox1.Items.Delete(ListBox1.ItemIndex);
> end
> else
> begin
> ListBox1.Items.Insert(Value {+1}, ListBox1.Items[ListBox1.ItemIndex]);
> ListBox1.Items.Delete(ListBox1.ItemIndex);
> end;
> end;
> end;
>
> 운영자님 전 이런식으루 리스트박스1에 있는 내용을
>
> 옮겼거든여..
>
> 마우스 드롭으루여..
>
> 다시 갈켜주세여..
>
> 정말 죄송합니다.