Вниз
Скачать: 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.029 c
14-1081907484
Думкин
2004-04-14 05:51
2004.04.11
С днем рождения! 14 апреля.


14-1082064425
Asteroid
2004-04-16 01:27
2004.04.11
3D shooter в 96KB. Кто меньше? :)


7-1079269377
Skaner
2004-03-14 16:02
2004.04.11
CD-ROM


1-1079691399
Ярыч
2004-03-19 13:16
2004.04.11
dream scripter


14-1082392754
Mim1
2004-04-19 20:39
2004.04.11
Linux vs Windows




   Наверх