ADMin Портал!

Профиль



Добро пожаловать,
Гость

54.158.253.134

Регистрация или вход
Потеряли пароль?

Сейчас онлайн
Администраторы:0
Пользователей:0
Гостей:53
Поисковые боты:1

Всего:54

Кнопки




Исходный код

Статьи

C++ Builder

Процедуры, функции и примеры
Drag and Drop файлов из проводника на форму в ListBox
Это продолжение предыдущей статьи по перемещению итемов в листбоксе
Unit1.cpp

//---------------------------------------------------------------------------

#include <vcl.h>
#include <dir.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"


void __fastcall WMDropFiles(TWMDropFiles& Message);

TForm1 *Form1;


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner)
{
}


//---------------------------------------------------------------------------
void __fastcall TForm1::CheckListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
TCheckListBox *pLB = (TCheckListBox *)Sender; // cast to TCheckListBox
if (pLB->ItemAtPos(Point(X,Y), true) >= 0) // is there an item here?
pLB->BeginDrag(false); // if so, drag it
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckListBox1DragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept)
{
if (Source->InheritsFrom(__classid(TCheckListBox)))
Accept = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckListBox1DragDrop(TObject *Sender, TObject *Source, int X,
int Y)
{
if (Source->InheritsFrom(__classid(TCheckListBox)))
{
TCheckListBox *iLB = (TCheckListBox *)Sender;
int i = iLB->ItemAtPos(Point(X,Y), true);
int m = iLB->ItemIndex;
iLB->Items->Move(m,i);
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
DragAcceptFiles(Form1->Handle, true);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::WmDropFiles(TWMDropFiles& Message)
{
HDROP drop_handle=(HDROP)Message.Drop;
wchar_t fName[MAXPATH];
int filenum=DragQueryFile(drop_handle,-1,NULL,NULL);
for (int i=0;i<filenum;i++)
{
DragQueryFile(drop_handle,i,fName,MAXPATH);
Form1->CheckListBox1->Items->Add(ExtractFileName(fName));
};
DragFinish(drop_handle);
};




---------------------------------------------------------------------------------

unit1.h

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Vcl.ComCtrls.hpp>
#include <Vcl.FileCtrl.hpp>
#include <Vcl.CheckLst.hpp>

//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TCheckListBox *CheckListBox1;
void __fastcall CheckListBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
int X, int Y);
void __fastcall CheckListBox1DragOver(TObject *Sender, TObject *Source, int X, int Y,
TDragState State, bool &Accept);
void __fastcall CheckListBox1DragDrop(TObject *Sender, TObject *Source, int X, int Y);
void __fastcall FormCreate(TObject *Sender);



private: // User declarations
void __fastcall WmDropFiles(TWMDropFiles& Message);

public: // User declarations
__fastcall TForm1(TComponent* Owner);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WmDropFiles)
END_MESSAGE_MAP(TForm)

};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Дата публикации: 12.09.2013
Прочитано: 14838 раз
Нет комментариев. Почему бы Вам не оставить свой?
Ваше имя:
Комментарий:
Секретный код:Секретный код
Повторить:
Антиспам:

Партнеры


Коменты


Komatoz
хз. но сегодня понадобился
Va-Bank
В общем с современными ОС этот DAEMON Tools уже не требуется..
Va-Bank
Конечно. Ставишь себе Lazarus на Ubuntu и ваяешь программы, ..
Komatoz
Интересно под ubuntu есть такой компилятор?
Va-Bank
Ну здрасьте. Фрипаскаль используется в проекте Lazarus. И я ..
Va-Bank
Выпустил новую версию утилиты. Понадобилась одному моему тов..
ShohinKarimov
Огромное спасибо за статью ;D
kukus
Разобрались. В default-ssl.conf был прописан путь до /var/ww..
kukus
Не работает по https - not found везде, в веб-морде, в win-к..
Komatoz
filename в header необходимо дополнительно обернуть заслешен..
Komatoz
при создании пользователя через phpmyadmin нужно указать (по..
Komatoz
что - то не так пошло с настройкой www сервера - 404ой ошибк..
Дмитрий
После строчки "скопируйте ссылку phpmyadmin из var/www/..
Сергей
Здесь актуальный производственный календарь на текущий год
Komatoz
попробуйте найти разработчика - вполне может быть что за 9 л..


Powered by SLAED CMS © 2005-2007 SLAED. All rights reserved.