Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.18;
Скачать: [xml.tar.bz2];

Вниз

Копирование в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.032 c
8-1073708570
vidiv
2004-01-10 07:22
2004.04.18
Как загрузить PNG в TBitMap


14-1080225799
Отшельник
2004-03-25 17:43
2004.04.18
Книга Delphi и технология COM


3-1080025357
Лысый
2004-03-23 10:02
2004.04.18
Разработка ИС


14-1080117475
DillerXX
2004-03-24 11:37
2004.04.18
Мне интересно,


1-1080650227
КомофОнСамый
2004-03-30 16:37
2004.04.18
TMemo - как разбить на слова.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский