Вниз
Скачать: CL | DM;

Как определить шрифт при копировании через буфер обмена?   Найти похожие ветки 

 
Oleg)   (2004-04-23 11:59) [0]

В новом проекте на форме лишь один мемо кнопка
по нажатию кнопки выполняется:

Memo1.Lines.Clear;
Memo1.Lines.Add("Проверка");
Memo1.SelectAll;
Memo1.Font.Name:="Arial CYR";
Memo1.Font.Charset:=204;
Memo1.Font.size:=20;
Memo1.CopyToClipboard;

Вставляю в Excel, а  там  абракадабра (ïðîâåðêà), и подобрать шрифт не  удается -(


 
Курдль ©   (2004-04-23 12:01) [1]

Почитайте про форматы буфера обмена. Кажись, на Королевстве Делфи были статьи. Например, при копировании всего одной ячейки Ёкселя, происходит загрузка более 30 форматов клипборда. Где-то там есть и фонты :)


 
Oleg)   (2004-04-23 12:04) [2]

Вот выяснил: если предварительно перед нажатием кнопки перейти на русский шрифт в виндах то все ОК


 
clickmaker ©   (2004-04-23 12:07) [3]

procedure SetClipboardText(const S: string);
 var
   wsz: PWideChar;
   dwSize: Cardinal;
   hData: Cardinal;
 begin
   if (Win32Platform = VER_PLATFORM_WIN32_NT) then begin

     dwSize := (Length(S)+1) * SizeOf(WideChar);
     hData := GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE, dwSize);
     wsz := PWideChar(GlobalLock(hData));
     StringToWideChar(S, wsz, Length(S)+1);
     GlobalUnlock(hData);
     Clipboard.SetAsHandle(CF_UNICODETEXT, hData);
   end else
     Clipboard.AsText := S;
 end;


 
Oleg)   (2004-04-23 12:26) [4]

>clickmaker ©
Спасибо, это работает
А вот еще решение: исполльзовать richedit вместо мемо



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.035 c
1-1082632445
denisww
2004-04-22 15:14
2004.04.11
как узнать размеры реально заполненого текста на Листе excel


1-1080274585
scorpi
2004-03-26 07:16
2004.04.11
Просмотр отчета QuickRep


14-1079632390
Ig
2004-03-18 20:53
2004.04.11
Реестр ... надо срочно!


4-1075829258
sergey1
2004-02-03 20:27
2004.04.11
ListView в чужом окне.


1-1080292777
rimd
2004-03-26 12:19
2004.04.11
Atachment к ехе




   Наверх