Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > ListBox


Автор: norov 6.4.2007, 10:28
 smile  пожалуйста помогите я начинающий в дельфи 7. 
у меня два ListBox и один  ValueListEditor.
мне надо чтоб мышкой можно было перетащить в определенную строку:
~  с одного  ListBox можно было перетащить в другой ListBox 
~  с ListBox можно было перетащить в ValueListEditor
если можно пож. код полностью напишите начиная с UNIT и до END.

 я прочел DRKB3_Full там есть в VCL но у меня не получаеться. что где и как и куда втыкать. у меня и не ругаеться и ни чего делать не хочет.

заранее благодарен!

Автор: bartram 6.4.2007, 10:43
глянь вот http://forum.vingrad.ru/base/Funktsii-i-protseduryi-dlya-rabotyi-s-drag-and-drop-operatsiyami-2512.html

Добавлено через 47 секунд
что непонятно - спрашивай smile

Добавлено через 3 минуты и 18 секунд
Цитата(norov @  6.4.2007,  12:28 Найти цитируемый пост)
у меня и не ругаеться и ни чего делать не хочет.

покажи код

Автор: Snowy 6.4.2007, 10:48
http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&section=641

Цитата(norov @  6.4.2007,  10:28 Найти цитируемый пост)
если можно пож. код полностью напишите начиная с UNIT и до END.
Помочь - поможем, объяснить - объясним.
Но делать за тебя... Тут уж звиняйте  smile 

Автор: norov 6.4.2007, 11:47
я хотел для начала разобраться с Drag&Drop взял пример из DRKB:
Код

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
with (Sender as TListBox) do
   Items.Move(ItemIndex,ItemAtPos(Point(x,y),True));
end;


procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := (Sender=Source);
end;


Поставил DragMode --> dmAutomatic и ни фига не работает



Добавлено @ 11:57
или вот еще полностью
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
procedure ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
          State: TDragState; var Accept: Boolean);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);  
   begin
      with (Sender as TListBox) do
      Items.Move(ItemIndex,ItemAtPos(Point(x,y),True)); 
   end;

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
                 State: TDragState; var Accept: Boolean);
   begin
      Accept := (Sender=Source);
   end;

end.

Автор: norov 6.4.2007, 12:17
smile  ну хотя бы дайте код от UNIT до END. любой элементарный готовый который хоть что-то куда то переносит 
пожааааалуйста

Автор: norov 6.4.2007, 14:04
 smile вот еси кому-то надо:

Код

{ скидывает с ListBox2 в ListBox3 выбранную строку}
procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := (Sender=Source);
end;

procedure TForm1.ListBox3DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
(sender as TListBox).Items.Add((Source as TListBox).Items[(Source as
TListBox).itemIndex]);
end;

procedure TForm1.ListBox3DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
Accept := Source is TListBox;
end;





smile  всё разобрался
всем спасибо за ответы smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)