Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2021, 18:06   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 623
По умолчанию Скопировать обработанный мемо в буффер

Итак, есть Memo1 (в данную процедуру входит через SL), данные из которого нужно скопировать в буффер обмена, предварительно обработав их функцией ClearName

Вот кусок кода, который оказался рабочим. Мне пришлось нагородить специально для этой задачи еще одно поле Мемо, невидимое.

Код:
Procedure TForm1.MemoToBuff(SL: TStrings);
 var
  i:longint;
begin
      Memo3.Lines.Clear;
      For i:=0 to SL.Count-1 do begin
       Memo3.Lines.Add(ClearName(SL[i]));
      end;
      Clipboard.AsText := Memo3.Text;
end;
Задачу решил, но как-то сморится не очень, такое решение, может быть есть что-то более простое?

Я пытался создать еще одну переменную TStrings с таким кодом

Код:
Procedure TForm1.MemoToBuff(SL: TStrings);
 var
  i:longint;
  s:TStrings;
begin
      s.Clear;
      For i:=0 to SL.Count-1 do begin
       s.Add(ClearName(SL[i]));
      end;
      Clipboard.AsText := s.Text;
end;
Но тут при выполнении программы почему-то выдается ошибка...
Kronos913 вне форума Ответить с цитированием
Старый 06.03.2021, 18:38   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

перед использованием объекты надо создавать (Create)
Код:
s:=TstringList.Create;
s.AddStrings(sl); //можно добавить СРАЗУ все строки
clipboard.Astext:=s.Text;
s.Free;// а потом НЕ ЗАБЫТЬ уничтожить
а можно и просто
Код:
clipboard.AsText:=SL.Text;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 06.03.2021, 23:27   #3
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 623
По умолчанию

А чем отличается Free от Destroy ?
Kronos913 вне форума Ответить с цитированием
Старый 07.03.2021, 00:30   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Free сначала проверит, что объект не равен nil (что еще не освобожден), а затем вызовет Destroy.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 07.03.2021, 02:26   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Добавлю ещё копейку. Destroy это особый метод класса, т.н. destructor который уничтожает некий объект этого класса возвращая память им занимаемую. Но вызывать его напрямую это моветон. Грамотно вызывать его используя метод Free.
northener вне форума Ответить с цитированием
Старый 10.03.2021, 10:07   #6
Heneken87
Форумчанин
 
Регистрация: 27.04.2012
Сообщений: 219
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
предварительно обработав их функцией ClearName


Задачу решил, но как-то сморится не очень, такое решение, может быть есть что-то более простое?
А вот для этих целей
Код:
ClearName(SL[i]))
-
Код:
StringReplace(SL.Text,'СТАРЫЙ ТЕКСТ','НОВЫЙ ТЕКСТ',[rfReplaceAll])
не подойдет? Или в ClearName какие то особенности?
Пишу много и развернуто

Последний раз редактировалось Heneken87; 10.03.2021 в 10:09.
Heneken87 вне форума Ответить с цитированием
Старый 13.03.2021, 19:48   #7
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 623
По умолчанию

По сути, в функцию ClearName заводится полное имя файла/папки, и оно оставляет от него только короткое имя (без маршрута)

В поле мемо находятся полный имена, а в буффер надо скопировать только короткие имена, но весь список
Kronos913 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скопировать файл из пути в мемо hacknet Общие вопросы Delphi 10 24.03.2013 17:08
Скопировать из мемо текст develsnik Общие вопросы Delphi 18 08.03.2013 13:14
отображение данных БД типа мемо в поле мемо brutalis БД в Delphi 5 13.05.2012 18:14
Как скопировать текст из мемо одной формы в мемо другой CraZZy RabbIt Общие вопросы Delphi 4 27.02.2009 00:01
буффер обмена experts91 Win Api 2 07.10.2007 15:47