Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
25 / 14 / 3
Регистрация: 12.08.2011
Сообщений: 276
1

Delphi - копирование\вставка!!!

29.08.2011, 07:37. Показов 2173. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Есть у меня проблема! Из поле Memo можно копировать текст, как это исправить?!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2011, 07:37
Ответы с готовыми решениями:

Вырезание, Копирование, Вставка текста в Дельфи 7
Есть программа, текстовый редактор. Есть меню, состоит из : "Файл","Исправления","Окна" и т.д. В...

Копирование в буфер обмена и вставка из него
Здравствуйте! Возникли проблемы с буфером обмена. Похоже, что вставка и копирование из TMemo...

Копирование в переменную из combobox и последующая вставка в параметры проги
Как сделать, чтобы выделенное значение ComboBox1 сохранялось в переменную, а потом значение этой...

Stringgrid копирование содержимого строки и вставка его в выделенную строку
Доброго времени. Подскажите пожалуйста, нужно в stringgrid скопировать содержимое выделенной...

14
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
29.08.2011, 08:17 2
очень просто

1) readonly = true
2) tabstop = false
3) OnEnter =
Delphi
1
2
3
4
procedure TForm1.Memo1Enter(Sender: TObject);
begin
  TForm(TMemo(Sender).owner).ActiveControl:=nil;
end;
1
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.08.2011, 08:52 3
Цитата Сообщение от InfoMaster Посмотреть сообщение
как это исправить?!!!
Что исправить? Может покажете.
1
25 / 14 / 3
Регистрация: 12.08.2011
Сообщений: 276
29.08.2011, 10:59  [ТС] 4
Короче нужно в Memo поставить блокировку копирования!!!
0
Житель Земли
3003 / 3008 / 391
Регистрация: 26.07.2011
Сообщений: 11,464
Записей в блоге: 1
29.08.2011, 11:22 5
создай компонент-наследник TMemo таким образом
Delphi
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
unit MyMemo;
 
interface
 
uses
  Classes, StdCtrls, Messages, Clipbrd;
 
type
  TMyMemo = class(TMemo)
  private
    procedure WMCopy(var Msg: TMessage); message WM_COPY;
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
  RegisterComponents('Samples', [TMyMemo]);
end;
 
procedure TMyMemo.WMCopy(var Msg: TMessage);
begin
  // здесь не вызывается унаследованный обработчик
  // сообщения, поэтому копирования не происходит!
  // пожно поизгаляться и послать в буфер что-нибудь
  Clipboard.AsText:= 'Копирование из моей супер-программы запрещено!';
end;
 
end.
таким же образом можно поставить блок на вставку (WM_PASTE) и вырезку (WM_CUT)
2
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
29.08.2011, 12:09 6
отлично, еще добавить событие чтобы фокус терялся

Delphi
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
unit RoMemo;
 
interface
 
uses
  Forms, Classes, StdCtrls, Messages, Clipbrd;
 
type
  TRoMemo = class(TMemo)
  constructor Create(own : TComponent); override;
  private
    procedure WMCopy(var Msg: TMessage); message WM_COPY;
    procedure mEnter(Sender: TObject);
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
  RegisterComponents('Samples', [TRoMemo]);
end;
 
constructor TRoMemo.Create(own: TComponent);
begin
  inherited Create(own);
  ReadOnly:=true;
  TabStop:=false;
  OnEnter:=self.mEnter;
end;
 
procedure TRoMemo.mEnter(Sender: TObject);
begin
  TForm(self.Owner).ActiveControl:=nil;
end;
 
procedure TRoMemo.WMCopy(var Msg: TMessage);
begin
  // здесь не вызывается унаследованный обработчик
  // сообщения, поэтому копирования не происходит!
  // пожно поизгаляться и послать в буфер что-нибудь
  Clipboard.AsText:= 'Копирование Отменено!';
end;
 
end.
1
25 / 14 / 3
Регистрация: 12.08.2011
Сообщений: 276
29.08.2011, 12:12  [ТС] 7
большое спасибо!
1
Житель Земли
3003 / 3008 / 391
Регистрация: 26.07.2011
Сообщений: 11,464
Записей в блоге: 1
29.08.2011, 12:47 8
Цитата Сообщение от Alex_pac Посмотреть сообщение
отлично, еще добавить событие чтобы фокус терялся
недостаток: скроллинг не работает!
0
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
29.08.2011, 16:30 9
Цитата Сообщение от DenNik Посмотреть сообщение
недостаток: скроллинг не работает!
тока на колесике, а если сам скролл бар мышкой тащить то все Ок
0
25 / 14 / 3
Регистрация: 12.08.2011
Сообщений: 276
30.08.2011, 07:44  [ТС] 10
отлично, еще добавить событие чтобы фокус терялся
У меня не вышло!!! Ошиьок нет НО текст из memo серавно копируется!!! Что делать?
Я в этом коде изменил только:
1) TMyMemo = class(TMemo) НА TForm2=class(Tform2); b dct jcnfkmyst TMyMemo...
2) Clipboard.AsText:= ''

Я НАДЕЮСЬ правильно понял что если Это прописать то при копирование будит вставляться сообщение из Clipboard.AsText!!! НО НЕПОЛУЧЧАЕТСЯ!!!
+______________________
кСТАТИ у меня 2-ва поля memo!....
0
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
30.08.2011, 12:12 11
Delphi
1
2
Я в этом коде изменил только:
1) TMyMemo = class(TMemo) НА TForm2=class(Tform2); и все остальные TMyMemo...
зачем?

вы компонент TMyMemo зарегистрировали в палитре компонентов?

 Комментарий модератора 
Желательно грузить картинки на местный сервер
Миниатюры
Delphi - копирование\вставка!!!  
0
5706 / 2297 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
30.08.2011, 12:18 12
Дайте ему уже готовый компонент и расскажите как установить
0
Житель Земли
3003 / 3008 / 391
Регистрация: 26.07.2011
Сообщений: 11,464
Записей в блоге: 1
30.08.2011, 12:21 13
Цитата Сообщение от Arcor Посмотреть сообщение
Дайте ему уже готовый компонент и расскажите как установить
как устанавливать - смотри выше пост (толкую уже полдня )
заблокировать копирование
0
5706 / 2297 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
30.08.2011, 12:35 14
я наверно знаю почему у него не получается работать с созданным новым мемо, у меня так же бывает, что создашь компонент он добавляется в палитру, но нужно еще модуль закинуть в папку lib этого компонента
0
Житель Земли
3003 / 3008 / 391
Регистрация: 26.07.2011
Сообщений: 11,464
Записей в блоге: 1
30.08.2011, 12:55 15
Цитата Сообщение от Arcor Посмотреть сообщение
я наверно знаю почему у него не получается работать с созданным новым мемо, у меня так же бывает, что создашь компонент он добавляется в палитру, но нужно еще модуль закинуть в папку lib этого компонента
или прописать путь к модулю компонента в Tools > Environment options > Library > Library path

хотя в случае установки компонента в dclusr.dpk этих проблем быть не должно!
0
30.08.2011, 12:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.08.2011, 12:55
Помогаю со студенческими работами здесь

Вставка картинов к Delphi
Где я могу найти данные картинки? (на компьютере) Или вопрос: какое разрешение изображений...

Delphi вставка Assembler
Delphi Здравствуйте. Не могу вставить данные в аккумулятор eax при умножение, покажите пожалуйста с...

Вставка в массив delphi
Доброго времени суток! Собственно задача: необходимо вставить число k1 в массив(заполнен рандомно)...

Delphi и ассемблерная вставка
Требуется вывести сумму элементов массива, стоящих на нечётных местах, с использование ассемблерной...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru