Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.19;
Скачать: CL | DM;

Вниз

Проблемы с кодировкой.   Найти похожие ветки 

 
programmer90   (2008-09-10 12:33) [0]

Здравствуйте уважаемые мастера. Ох уж эти кодировки....
Проблема такова при копировании из мемо в буфер обмена, и при вставке   например в блокнот, русские буквы неверно отображаются.
А точно чнаю что надо перекодировать, даже знаю откуда куда из Win1251 в Dos 866.
Так вот до того как возникла эта трабла, я использовал такой код
PChr := Memo[AdvPageControl1.ActivePageIndex].Lines.GetText;
 AnsiToOem(Pchr,Pchr);
 Memo[AdvPageControl1.ActivePageIndex].Lines.Text := StrPas(Pchr);
 memo[AdvPageControl1.ActivePageIndex].Lines.SaveToFile("C:\Progra~1\FPSE\Project s\file.pas");
 ShellExecute(Handle,"open","cmd","/c  C:\Progra~1\FPSE\bin\i386-win32\fpc C:\Progra~1\FPSE\Projects\file.pas >C:\Progra~1\FPSE\Projects\file.err   && cls && c:\progra~1\fpse\projects\file.exe && pause",nil,1);
  PChr := Memo[AdvPageControl1.ActivePageIndex].Lines.GetText;
 OemTOAnsi(Pchr,Pchr);
 Memo[AdvPageControl1.ActivePageIndex].Lines.Text := StrPas(Pchr);
Этот код был специально написан чтобы привыполнении  16-битных програм через командную строку Русские буквы правильно отображались. После того как я приминил этот код , вдруг почему-то буфер обмена стал глючить.Как это исправить?
Заранее спс.


 
clickmaker ©   (2008-09-10 12:38) [1]

где в коде обращение к буферу обмена?
что значит "буфер обмена стал глючить"?


 
Правильный$Вася   (2008-09-10 12:41) [2]

1. The caller is responsible for freeing the returned value using the StrDispose procedure.
2. не вижу использования буфера обмена


 
programmer90   (2008-09-10 12:43) [3]


> где в коде обращение к буферу обмена?

memo[advpagecontrol1.ActivePageIndex].CopyToClipBoard;
Вот обращение.
Код которы был указан в [0] это вроде не имеет прямого отношения к копрованию, это совсем другое событие, просто я уверен что это и явилось причиной....
> что значит "буфер обмена стал глючить"?

Это означает что  копируем это:
begin
writeln("Привет");
End.
,а получаем это:
begin
writeln("Ïðèâåò");
End.


 
clickmaker ©   (2008-09-10 12:52) [4]

> [3] programmer90   (10.09.08 12:43)

charset у шрифта того, куда копируешь, какой?


 
programmer90   (2008-09-10 12:59) [5]


> charset у шрифта того, куда копируешь, какой?

Кажется кириллический....


 
brother ©   (2008-09-10 13:00) [6]

> Кажется

когда кажется - крестятся. если точно?


 
programmer90   (2008-09-10 13:03) [7]

Я пытался  так сделать

PChr := Memo[AdvPageControl1.ActivePageIndex].Lines.GetText;
AnsiToOem(Pchr,Pchr);{OemToAnsi(Pchr,Pchr);}
Memo[AdvPageControl1.ActivePageIndex].Lines.Text := StrPas(Pchr);
memo[advpagecontrol1.ActivePageIndex].CopyToClipBoard;

Но это не помогло...
Если какие-нибудь средства для работы с буфером обмена, например изменить текстовую информацию ?


 
programmer90   (2008-09-10 13:05) [8]

Да  и в блокноте и мемо оба кириллические. Я там пытался изменить на другие чарсеты, эффекта нет.


 
programmer90   (2008-09-10 13:08) [9]

Да кстати при сохрании  мемо в файл, всё нормально.
Я проверил сохранил файл на диске .Поэтому я думаю что проблемы именно с буфером обмена...


 
Правильный$Вася   (2008-09-10 13:12) [10]


> memo[advpagecontrol1.ActivePageIndex].CopyToClipBoard;Вот
> обращение.

это до твоей перекодироки из [0] или после?


 
Amoeba ©   (2008-09-10 13:22) [11]

Проблемы копирования русского текста в clipboard и обратно:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=780


 
programmer90   (2008-09-10 13:29) [12]


> [11]

помогло. большое спасибо.


 
Anatoly Podgoretsky ©   (2008-09-10 13:30) [13]

> programmer90  (10.09.2008 12:33:00)  [0]

AnsiToOem - For compatibility with 16-bit versions of Windows


 
programmer90   (2008-09-10 13:34) [14]


> AnsiToOem - For compatibility with 16-bit versions of Windows

Я убедился что компатибельность к буферу обмена не относится)))


 
programmer90   (2008-09-10 13:36) [15]


> это до твоей перекодироки из [0] или после?

Они находятся в разных обработчиках.... но если вы о том где эти обработчики находятся , то  копирование находится выше


 
Правильный$Вася   (2008-09-10 14:10) [16]


> Они находятся в разных обработчиках..

и что?
какой из них раньше выполняется? может, он и портит?


 
Anatoly Podgoretsky ©   (2008-09-10 14:19) [17]

> programmer90  (10.09.2008 13:34:14)  [14]

А кого интересует буфер обмена в свете AnsiToOem



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

Текущий архив: 2008.10.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
2-1220876858
programmer90
2008-09-08 16:27
2008.10.19
как убрать у комбобокса убрать эту штуку справа


15-1219920689
Tricky
2008-08-28 14:51
2008.10.19
Todo List не работает в D7


15-1216905772
diploDocs
2008-07-24 17:22
2008.10.19
Два сюрприза Microsoft


15-1219916607
Медвежонок Пятачок
2008-08-28 13:43
2008.10.19
Сервер приложений ПО "Контакт"


4-1197982219
p_evghenii
2007-12-18 15:50
2008.10.19
Как при выключении Windows выполнить какое-либо приложение?