Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 27.06.2012
Сообщений: 20
1

Функции копирования, вставки и вырезки текста

27.05.2014, 04:10. Просмотров 2764. Ответов 6
Метки нет (Все метки)


Всем доброго времени! Мне необходимо сделать контекстное меню. Я хочу туда вставить функции "Копировать","Вырезать","Вставить". У меня много панелей Edit и имеется StringGrid. Через буфер обмена(CopyToClipboard)
я так понял это будет проблематично сделать. Подскажите выход из ситуации
P.S. У меня есть мысль запихнуть в обработчик события Click вызов горячей клавиши Windows Ctrl+C, Ctrl+X и Ctrl+V соответственно, но я не знаю как это сделать
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2014, 04:10
Ответы с готовыми решениями:

Функция вставки цветного текста в RichEdit
Фнкция вставки цветного текста в RichEdit; function AddColorText(Text: String; Color: TColor):...

Memo копирования выделенного текста
привет помогите как копировать выделенный текст из мемо ? memo1.copytoclipboard; так копирует но...

События для копирования, вставки текста
Вот эти события подходят для вырезания, копирования, вставки текста в блокноте на windows form? ...

Функции для вставки текста и его вывода
День добрый! Какие функции используются для правильной вставки текста с кавычками, запятыми,...

__________________
Помогаю в написании студенческих работ здесь.
6
4840 / 3820 / 1274
Регистрация: 14.04.2014
Сообщений: 17,660
Записей в блоге: 18
27.05.2014, 06:24 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 uses ClipBrd;
 ...
 Clipboard.AsText := SomeStringData_Variable; 
 ...
 
 SomeStringData_Variable := Clipboard.AsText; 
 
// прим. если нудно скопировать текст, скажем, из TEdit, достаточно использовать метод CopyToClipboard
// TEdit копирует выделенный текст в Clipboard в формате CF_TEXT
 
 procedure TForm1.Button2Click(Sender: TObject) ;
 begin
    //the following line will select
    //ALL the text in the edit control
    {Edit1.SelectAll;}
 
    Edit1.CopyToClipboard;
 end;
0
0 / 0 / 1
Регистрация: 27.06.2012
Сообщений: 20
27.05.2014, 10:48  [ТС] 3
у меня таких полей "Edit" штук 7
0
4840 / 3820 / 1274
Регистрация: 14.04.2014
Сообщений: 17,660
Записей в блоге: 18
27.05.2014, 11:42 4
Цитата Сообщение от Wendigo Посмотреть сообщение
контекстное меню. Я хочу туда вставить функции "Копировать","Вырезать","Вставить".
контекстное меню открывается для каждого конкретного Edit
хоть 100
0
14 / 14 / 13
Регистрация: 08.04.2012
Сообщений: 113
27.05.2014, 16:16 5
Лучший ответ Сообщение было отмечено Wendigo как решение

Решение

Если я правильно понял то тебе надо что бы одно контекстное меню работало и для StringGrid и для Edit?
Если до то вот несколько примеров:
Это копирование с любого эдита к которому привязано это PopupMenu
Аналогична и вставка и вырезка...
Delphi
1
TEdit(PopupMenu1.PopupComponent).CopyToClipboard;
Код нужно обрабатывать у кнопки контекстного меню
А для StringGrid надо вначале определить по какой ячейке был клик... Для этого сделать глобальные переменные
И отслеживать нажатие по StringGrid после чего записывать их в событии onMouseDown функцией
Delphi
1
MouseToCell(x, y, Колонка, Строка);//Где русские слова это переменные куда будет идти запись координат ячейки
Теперь когда определили по какой ячейке был совершён клик остаётся лишь обрабатывать его
вот так
Delphi
1
TStringGrid(PopupMenu1.PopupComponent)
А что бы копировать в буфер нужно подключить clipbrd
и после вот так копировать
Delphi
1
ClipBoard.AsText:=  TStringGrid(PopupMenu1.PopupComponent).Cells[Колонка, Строка];
0
0 / 0 / 1
Регистрация: 27.06.2012
Сообщений: 20
27.05.2014, 19:39  [ТС] 6
Превосходно! То, что необходимо) а то для каждого Edit'а делать контекстное меню и почти копипастить код, как предложил krapotkin - не очень хорошо.
0
4840 / 3820 / 1274
Регистрация: 14.04.2014
Сообщений: 17,660
Записей в блоге: 18
27.05.2014, 23:24 7
Цитата Сообщение от Wendigo Посмотреть сообщение
для каждого Edit'а делать контекстное меню
Внимательнее.
Контекстное меню ОТКРЫВАЕТСЯ для каждого конкретного Edit
и дает ссылку на него, как показано выше.
При этом само оно одно-одинешенько.

А вот для разных классов рекомендовал бы все-таки иметь пару разных менюшек.
Одну для грида, другую для TEdit.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2014, 23:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

События вставки\копирования
Доброго времени суток, господа, подскажите, есть ли возможность отлавить событие...

Запрет вставки и копирования в TextBox
Как в текст боксе запретить вставку и копирование? С#

Блокировка копирования и вставки правой кнопкой мыши
нужна функция не позволяющая вставлять (к примеру в Edit) правой кнопкой мыши. чтобы понятнее было...

Как написать скрипт для копирования и вставки?
Здравствуйте. Есть комбинации клавиш: - Ctrl-c - копировать - Ctrl-v - вставить....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.