![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 03.10.2014
Сообщений: 4
|
![]()
Здраствуйте. Помогите сделать лабораторную. Используя Drag&Drop, сделать возможным перетягивание выделенного текста между компонентами TMemo, TListBox и TEdit.Не получается сделать для перетягивания выделенного текста
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.08.2011
Сообщений: 2,841
|
![]()
Где наработки?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 03.10.2014
Сообщений: 4
|
![]()
void __fastcall TForm1::MyMemoDragOver(TObject *Sender, TObject *Source, int X, int Y,
TDragState State, bool &Accept) { Accept = Source->ClassNameIs("TMemo"); } void __fastcall TForm1::MyMemoDragDrop(TObject *Sender, TObject *Source, int X, int Y) { TMemo *Dst = dynamic_cast<TMemo*>(Sender); TMemo *Src = dynamic_cast<TMemo*>(Source); int i = LOWORD(Dst->Perform(EM_CHARFROMPOS, 0, MAKELPARAM(X, Y))); if (Src == Dst && i >= Src->LastSelStart && i <= Src->LastSelStart + Src->LastSelLength - 1) return; Dst->Text = Dst->Text.SubString(1, i) + Src->SelText + Dst->Text.SubString(i + 1, Dst->Text.Length() - i); String s = Src->Text; s = s.Delete(Src->LastSelStart + 1, Src->LastSelLength); Src->Text = s; } // Это добавляем прямо перед описанием класса формы в h-файле проекта namespace TMemo_DragDrop { class TMemo : public Stdctrls::TMemo { typedef Stdctrls::TMemo Inherited; int FLastSelStart; int FLastSelLength; __published: __property int LastSelStart = {read = FLastSelStart, write = FLastSelStart}; __property int LastSelLength = {read = FLastSelLength, write = FLastSelLength}; private: BEGIN_MESSAGE_MAP VCL_MESSAGE_HANDLER(WM_LBUTTONDOWN, TWMLButtonDown, WMLBUTTONDOWN_Proc) END_MESSAGE_MAP(Inherited) void __fastcall WMLBUTTONDOWN_Proc(TWMLButtonDown &message) { if (SelLength > 0) { int i = LOWORD(Perform(EM_CHARFROMPOS, 0, MAKELPARAM(message.XPos, message.YPos))); LastSelStart = SelStart; LastSelLength = SelLength; if (i >= SelStart && i <= SelStart + SelLength - 1) BeginDrag(true); else Inherited::Dispatch(&message); } else Inherited::Dispatch(&message); } public: __fastcall virtual TMemo(System::Classes::TComponent* AOwner) : Stdctrls::TMemo(AOwner) { } }; } #define TMemo TMemo_DragDrop::TMemo // Дальше твоя форма, без изменений ... class TForm1 : public TForm // ... |
![]() |
![]() |
![]() |
#4 |
Регистрация: 03.10.2014
Сообщений: 4
|
![]()
это между Memo, а мне нужно между Memo, ListBox, Edit
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 03.10.2014
Сообщений: 4
|
![]()
подскажите как с ListBox передать текст в Edit и очистить в листбоксе что передал в едит?
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
WinForms PictureBox VC++ Drag&Drop | _Alerter_ | Windows Forms | 4 | 27.05.2011 10:38 |
Drag&Drop | Guzal | Qt и кроссплатформенное программирование С/С++ | 0 | 12.04.2011 01:19 |
drag&drop | БАО | Общие вопросы C/C++ | 2 | 06.05.2010 12:17 |
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) | Arkuz | Общие вопросы Delphi | 1 | 18.04.2009 00:15 |
Drag&Drop | shtuceron | Общие вопросы Delphi | 3 | 09.04.2008 19:04 |