Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431

Drag&Drop. Из ListView1 перетащить строку в Memo.

05.04.2012, 15:21. Показов 4448. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Помогите реализовать перетаскивание. Мне нужно из ListView1 перетащить строку в Memo. Как это сделать? Ну если это сложно то например из Edit1 в Edit2 перетащить мышкай слово.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.04.2012, 15:21
Ответы с готовыми решениями:

Перенос текста из Memo в Memo (Drag&Drop)
Подскажите как осуществить перетаскивание текста из memo в memo в с++ builder???

Drag&Drop
Как перенести из TreeView1 текст в Edit1 !?!?!?

Drag&Drop
Здравствуйте:) Уже месяц работаю над текстовым редактором. Встал вопрос: например на рабочем столе файл. Как реализовать...

27
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
07.04.2012, 22:26  [ТС]
Студворк — интернет-сервис помощи студентам
Нужно было дабавить
C++
1
Form2->
Извеняюсь!

Добавлено через 4 минуты
Вопрос! У меня в Memo сразу должно быть и
C++
1
Memo2->Lines->Add(((TListView *)Source)->Selected->Caption+"("+((TListView *)Source)->Selected->SubItems->Strings[0]+")") ;
и
C++
1
Memo2->Lines->Add(Form2->ListBox1->Items->Strings[Form2->ListBox1->ItemIndex]);
Но тогда выскакивают ошибки!
Для ListBox1 делаю так
C++
1
2
3
4
Memo2->Lines->Add(((TListView *)Source)->Selected->Caption+"("+((TListView *)Source)->Selected->SubItems->Strings[0]+")") ;
 if (ListBox1->ItemIndex != -1){
 Memo2->Lines->Add(Form2->ListBox1->Items->Strings[Form2->ListBox1->ItemIndex]);
 }
Но не работает. А как ещё сделать проверку для ListView?
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
07.04.2012, 22:35
Пиши подробнее (вход, выход, ошибки), а то не понятно.
Проверяй в пустом проекте - больше шанса найти у себя ошибку.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
07.04.2012, 22:51
- перенести строку, в которой поля разделены запятыми можно так:
C++
1
2
3
   AnsiString gg = ((TListView *)Source)->Selected->Caption ;
   gg = gg+","+((TListView *)Source)->ItemFocused->SubItems->CommaText ;
   Memo1->Lines->Add(gg);
0
 Аватар для Vovik_0_1
40 / 40 / 6
Регистрация: 28.07.2011
Сообщений: 431
07.04.2012, 22:53  [ТС]
Мне нужно чтобы в Мемо можно было перетаскивать строки из listview и listbox. Но если делать так
C++
1
2
Memo2->Lines->Add(((TListView *)Source)->Selected->Caption+"("+((TListView *)Source)->Selected->SubItems->Strings[0]+")") ;
 Memo2->Lines->Add(Form2->ListBox1->Items->Strings[Form2->ListBox1->ItemIndex]);
то выскакивают ошибки. Когда я например кидаю из бокса то с начала выполняется
C++
1
Memo2->Lines->Add(((TListView *)Source)->Selected->Caption+"("+((TListView *)Source)->Selected->SubItems->Strings[0]+")") ;
но я кидал же не из виева а из бокса! ТОесть надо сделать както так:
C++
1
2
3
4
 if (ListView1->нажат){Memo2->Lines->Add(((TListView *)Source)->Selected->Caption+"("+((TListView *)Source)->Selected->SubItems->Strings[0]+")") ; }
 if (ListBox1->нажат){
 Memo2->Lines->Add(Form2->ListBox1->Items->Strings[Form2->ListBox1->ItemIndex]);
 }
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
07.04.2012, 23:00
- ошибки, я думаю, потому, что используется
C++
1
((TListView *)Source)->
, а в Memo таскаются строчки не только из ListView (если я сильно ошибаюсь, поправьте меня...).
0
 Аватар для kzru_hunter
1124 / 795 / 101
Регистрация: 01.02.2011
Сообщений: 1,887
Записей в блоге: 1
07.04.2012, 23:02
Вот. Перенос строк в Мемо можно делать как с ListBox, так и с ListView.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
        ListBox1->DragMode = dmAutomatic;
        ListView1->DragMode = dmManual;
        ListView1->RowSelect = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Memo1DragOver(TObject *Sender, TObject *Source,
      int X, int Y, TDragState State, bool &Accept)
{
        Accept = true;        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Memo1DragDrop(TObject *Sender, TObject *Source,
      int X, int Y)
{
        String sClassName = Source->ClassName();
        if ( sClassName == "TListBox" )
        {
                TListBox *listbox = (TListBox*)Source;
                if (listbox->ItemIndex != -1)
                {
                        Memo1->Lines->Add(listbox->Items->Strings[listbox->ItemIndex]);
                }
        }
        else if ( sClassName == "TListView" )
        {
                TListView *listview = (TListView*)Source;
                if (listview->ItemIndex != -1)
                {
                        TListItem *item = listview->Selected; // выбранная строка
 
                        String sString = item->Caption + "|"; // первый столбец
 
                        // остальные столбцы
                        for ( int i = 0; i < item->SubItems->Count; i++ )
                        {
                                sString += "|" + item->SubItems->Strings[i];
                        }
 
                        Memo1->Lines->Add( sString );
                }
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
        ListView1->BeginDrag(false, -1); // начать перенос
}
//---------------------------------------------------------------------------
2
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
10.12.2012, 23:23
nick42-
А твом способом можно как-либо тактовой файл из рабосего стола например в мемо1 засунуть?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.12.2012, 00:43
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
nick42-
А твом способом можно как-либо тактовой файл из рабосего стола например в мемо1 засунуть?
- почему "нет"? Вот таким способом хотя бы...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/* файл Unit1.cpp */#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WMDropFiles(TWMDropFiles &message)
{ 
    Memo1->Lines->Add(IntToStr(message.Drop));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    DragAcceptFiles(Form1->Handle, true);    
}
//---------------------------------------------------------------------------
 
/* файл Unit1.h */
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        TMemo *Memo1;
        TButton *Button1;
        void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
        void virtual __fastcall WMDropFiles(TWMDropFiles &message);
public:     // User declarations
        __fastcall TForm1(TComponent* Owner);
#pragma option push -vi-
 BEGIN_MESSAGE_MAP
  MESSAGE_HANDLER(WM_DROPFILES,TWMDropFiles,WMDropFiles)
 END_MESSAGE_MAP(TForm);
#pragma option pop 
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
В мэмо, я так понимаю, хэндлы приложений появляются после перетаскивания иконок. Идею развить, я думаю, сами сможете (..меня уже в сон клонит).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.12.2012, 00:43

TFrame: Drag & Drop
Доброго дня! На форме по-умолчанию находится 2 экземпляра TFrame. На каждом TFrame находится TPanel c свойством Align = alClient. ...

Drag&Drop С++ Builder
подскажите как с ListBox передать текст в Edit?

Drag & Drop file
Подскажите как используя DRAG &amp; DROP перетащить файл на RichEdit чтобы он открылся в RichEdit?

Реализовать Drag & Drop на форму
Как сделать что-бы окно программы распознавало перетаскиваемые файлы

Drag&Drop - отсутствует сообщение
Привет. Пытаюс разобратся в Drag&amp;Drop на форуме нашел некий инфо, и помогло... Вот что я надцарапал в билдере, но сообшение не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru