Форум программистов, компьютерный форум, киберфорум
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. Показов 4287. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru