Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 14:56   #1
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию Drag&Drop ListBox

Ребята, как сделать чтобы по DblClick не вызывалось событие Drag&Drop?
nXs вне форума Ответить с цитированием
Старый 21.04.2010, 15:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Поставить DragMode в dmManual
А в OnMouseDown вызвать BeginDrag(true,50);
т.е. таскать будет если ты проведешь в радиусе 50 пикселей после нажатия клавиши. этого вполне хватит чтоб не мешалось с обычными кликами
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2010, 15:48   #3
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

То же самое, правда после перемещения мыши. Вот код:
Код:
procedure TForm1.PlayListDragDrop(Sender, Source: TObject; X, Y: Integer);
var
APoint: TPoint;
Index, Sindex, i: integer;
Sstring, pstring: string;
begin
if (Sender is TsListBox) and (Source is TsListBox) then
  begin
  APoint.X := X;
  APoint.Y := Y;
  with Sender as TsListBox do
    begin
    Index := ItemAtPos(APoint, True);
    sindex:= ItemIndex;
    end;
  if (Index <> -1)and(sindex <> -1) then
    with Sender as TsListBox do
    begin
    sstring:=Items.Strings[sindex];
    Items.Delete(sindex);
    Items.Insert(index,sstring);
    ItemIndex:=index;
    Selected[index]:=true;

    pstring:=DirtaBle.Items[sindex];
    if index < sindex then
     for i:=sindex downto index+1 do
       DirtaBle.Items[i]:=DirtaBle.Items[i-1];
    if index > sindex then
     for i:=sindex to index-1 do
       DirtaBle.Items[i]:=DirtaBle.Items[i+1];
    DirtaBle.Items[index]:=pstring;
    end;
  end;
end;


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

procedure TForm1.PlayListMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  APoint: TPoint;
  Index,i: integer;
begin
  APoint.X := X;
  APoint.Y := Y;
  if (Button = mbLeft)and not(ssCtrl in Shift) then
  if PlayList.ItemAtPos(APoint, True) <> -1 then
  PlayList.BeginDrag(false);

  if Button = mbRight then
    begin
    Index := PlayList.ItemAtPos(APoint, True);
    PlayList.ItemIndex:=index;

    if index <> -1 then
    if not PlayList.Selected[index] then
      begin
      PlayListMouseDown(Self, mbLeft, [], X, Y);
      PlayList.EndDrag(false);
      end;

      if index = -1 then
      begin
      N20.Enabled:=false;
      N22.Enabled:=false;
      N23.Enabled:=false;
      N66.Enabled:=false;
      N67.Enabled:=false;
      N61.Enabled:=false;
      end else
      begin
      N20.Enabled:=true;
      N22.Enabled:=true;
      N23.Enabled:=true;
      N66.Enabled:=true;
      N67.Enabled:=true;
      N61.Enabled:=true;
      end;
    end;

end;

procedure TForm1.PlayListDblClick(Sender: TObject);
begin
NowPlay:=DirTable.ItemIndex;
Form1.Playing_File:=DirTable.Items[NowPlay];
CasePlayType(Form1.Playing_File);
if (LowerCase(ExtractFileExt(Playing_File))='.mp3')  or
   (LowerCase(ExtractFileExt(Playing_File))='.wav')  or
   (LowerCase(ExtractFileExt(Playing_File))='.aac')  then
begin
Form2.Close;
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 1, nil, 0);
end else
begin
VideoVindowSH:=true;
Form2.Show;
SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, nil, 0);
end;
PlayList.Repaint;
end;
nXs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
drag&drop в listbox-e blackstersl Общие вопросы Delphi 2 03.05.2009 17:11
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) Arkuz Общие вопросы Delphi 1 18.04.2009 00:15
Drag & Drop в DBGrid Mishechka Помощь студентам 33 26.03.2009 15:01
Drag&Drop shtuceron Общие вопросы Delphi 3 09.04.2008 19:04