Q&A

  • 넘 감사해여.. 그런데 다시 질문이여
운영자님 넘 감사드립니다.



그런데여..



리스트박스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에 있는 내용을



옮겼거든여..



마우스 드롭으루여..



다시 갈켜주세여..



정말 죄송합니다.

1  COMMENTS
  • Profile
    최용일 2000.04.17 07:31
    안녕하세요. 최용일입니다.



    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에 있는 내용을

    >

    > 옮겼거든여..

    >

    > 마우스 드롭으루여..

    >

    > 다시 갈켜주세여..

    >

    > 정말 죄송합니다.