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

Вниз

Копирование в clipboard   Найти похожие ветки 

 
nine_inch_nails   (2004-03-31 10:41) [0]

Всем привет ! :)
Сначала пролог. Есть табличка dbase"ная, несколько полей. В некоторых полях, естественно, русские символы. В БДЕ лэнгдрайвер dbase"a прописан ansi. Всё путем - символы читаемы, все отлично.
И встала проблемка - нужно значения полей вставлять в ворд или  там в эксель.
Теперь собственно промблема:
Естественно все оказалось не так просто -
строка ClipBoard.AsText:=Table1.FieldByName("rus_field").AsString чудесным образом копирует русские символы из поля в буфер обмена, НО! При вставке в ворд вставляются кракозябры! За вчерашние полдня лечения не найдено  %)) Вставка в эксель получается только через спец.вставка->неформатированный текст.
Поделитесь противоядием плиз :)

ЗЫ: Нанять программиста просьба не предлагать!


 
Stas ©   (2004-03-31 10:56) [1]

Dbgrideh


 
Developerr ©   (2004-03-31 11:05) [2]

http://delphibase.endimus.com/?action=viewfunc&topic=sysiface&id=10253


 
nine_inch_nails   (2004-03-31 11:14) [3]

Developerr, ты маг и волшебник! Дай бог тебе жену хорошую! : )))


 
Alex Konshin ©   (2004-03-31 12:24) [4]

Developerr ©   (31.03.04 11:05) [2]
http://delphibase.endimus.com/?action=viewfunc&topic=sysiface&id=10253

У того примера куча недочетов видимых невооруженным взглядом.
Я использую такую функцию, которая раьотает и на W9x, и на NT+:

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;


 
nine_inch_nails   (2004-03-31 16:13) [5]

мой невооруженный глаз ничего такого не увидел... в любом случае, ОГРОМНОЕ спасибо за ответы.. точнее, за внимание и идеи. Всем кто ответил.



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

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

Наверх




Память: 0.45 MB
Время: 0.04 c
1-1080411078
ikivio
2004-03-27 21:11
2004.04.18
Загрязнение памяти GetMem and FreeMem


4-1076160216
kentavr
2004-02-07 16:23
2004.04.18
Помоги с Handle


1-1080713247
tivispider
2004-03-31 10:07
2004.04.18
Компиляция проекта в командной строке


1-1080546270
СержК
2004-03-29 11:44
2004.04.18
Системное время сервера


1-1080434014
Dimedroll
2004-03-28 04:33
2004.04.18
-= Можно ли все Error ловить своей проги посредством WinAPI =-





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский