Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите с буфером


beavka ©   (2004-11-05 09:34:00) 

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:=memo1.lines.Text;
edit1.selectall;
edit1.CopyToClipboard;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  memo1.lines.LoadFromFile('memo.txt');
end;

При этом у меня русские символы, при вставке в другие приложения выглядят не нужным образом.


Федька23   (2004-11-05 22:31:00) [1]

to sergey23
И тебе приветики Алёшка


sergey23   (2004-11-05 19:02:00) [2]

мне похуй.
приветики.


beavka   (2004-11-05 10:15:00) [3]

Огромное спасибо) Все теперь работает.


ssk   (2004-11-05 10:08:00) [4]

>КаПиБаРа

понял. просто в 2000 и XP мне пока не приходилось с таким сталкиваться. имеется ввиду проблема текущей ветки.


beavka   (2004-11-05 10:07:00) [5]

У меня вообще ХР, но и в 2000 та же проблема(
Сейчас попробую разобраться с вашими примерами))
Спасибо всем)) Очень отзывчивые люди тут) Приятно)


КаПиБаРа   (2004-11-05 10:02:00) [6]

ssk ©   (05.11.04 10:01) [8]
В 98 такая проблема не существует


ssk   (2004-11-05 10:01:00) [7]

>КаПиБаРа
У вас какая OS?


Windows 98 SE


ssk   (2004-11-05 10:00:00) [8]

>как включить русскую раскладку?

LoadKeyboardLayout('00000409', KLF_ACTIVATE); //  английский
LoadKeyboardLayout('00000419', KLF_ACTIVATE); // русский
LoadKeyboardLayout('00000422', KLF_ACTIVATE); // украинский


попробуй еще установить в свойствах шрифта Charset = ANSI_CHARSET. не уверен, но может поможет. у меня было установлено DEFAULT_CHARSET и все работало.


КаПиБаРа   (2004-11-05 09:56:00) [9]

ssk ©   (05.11.04 9:49) [4]
вышеуказанных мной приложениях в [2] была установлена английская раскладка


У вас какая OS?

beavka ©   (05.11.04 9:34)

REA ©   (24.10.03 09:12)

Из форума (надо в FAQ вынести):

procedure TForm1.Button1Click(Sender: TObject);
const
RusLocale = SUBLANG_DEFAULT shl 10 or LANG_RUSSIAN;
var
Mem: THandle;
P: Pointer;
begin
Clipboard.Open;
Clipboard.AsText := 'Русский текст в кодировке ANSI 1251';
Mem := GlobalAlloc(GMEM_MOVEABLE, SizeOf(DWORD));
P := GlobalLock(Mem);
DWORD(P^) := RusLocale;
GlobalUnlock(Mem);
Clipboard.SetAsHandle(CF_LOCALE, Mem);
Clipboard.Close;
end;

const
CODEPAGE = 1251;

procedure SetClipboardText( const AText : String );
var len, ulen : Integer;
 hClip : THandle;
 pClip : Pointer;
begin
if Win32Platform=VER_PLATFORM_WIN32_NT then
 begin
   len := Length(AText)+1;
   ulen := len+len;
   hClip := GlobalAlloc(GMEM_MOVEABLE,ulen);
   if hClip=0 then raise Exception.Create(SysErrorMessage(GetLastError))
   else
     try
       pClip := PWideChar(GlobalLock(hClip));
       if pClip=nil then raise Exception.Create(SysErrorMessage(GetLastError))
       else
         begin
           try
             MultiByteToWideChar(CODEPAGE,0,PChar(AText),len,pClip,ulen);
           finally
             GlobalUnlock(hClip);
           end;
           Clipboard.SetAsHandle(CF_UNICODETEXT,hClip);
         end;
     except
       GlobalFree(hClip);
       raise;
     end;
 end
else
 begin
   Clipboard.SetTextBuf(PChar(AText));
   SetClipboardData(CF_LOCALE,LANG_RUSSIAN);
 end;
end;


beavka   (2004-11-05 09:52:00) [10]


> KSergey ©   (05.11.04 09:48) [3]
> А вообще ssk ©   безусловно прав: нафиг через Edit копировать??

Можно и не через Edit
В общем, используя функцию: CopyToClipBoard выходит такая фигня(

> KSergey ©   (05.11.04 09:45) [1]
> > не нужным образом
>
> ;))))
>
> Надо перед вставкой включить русскую раскладку. (LoadKeyboardLayout
> или что-то вроде этого)
> В инете можно легко найти пример. Впрчем, вопрос стандартный,
> может и другое есть решение.

А можно немного по подробней как включить русскую раскладку?


ssk   (2004-11-05 09:49:00) [11]

добавлю к

>KSergey ©   (05.11.04 09:45) [1]
> не нужным образом

;))))

Надо перед вставкой включить русскую раскладку


что во всех вышеуказанных мной приложениях в [2] была установлена английская раскладка.


KSergey   (2004-11-05 09:48:00) [12]

А вообще ssk ©   безусловно прав: нафиг через Edit копировать??


ssk   (2004-11-05 09:46:00) [13]

что значит "не нужным образом"?

этот код у меня прекрасно заработал с:

Word
Excel
ICQ
TheBAT!
Блокнот

З.Ы. А зачем копировать в буфер обмена через Edit?


KSergey   (2004-11-05 09:45:00) [14]

> не нужным образом

;))))

Надо перед вставкой включить русскую раскладку. (LoadKeyboardLayout или что-то вроде этого)
В инете можно легко найти пример. Впрчем, вопрос стандартный, может и другое есть решение.


Наверх

Титульная страница Поиск, карта сайта Написать письмо