Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:32 11.06.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Тема Copy&Paste...  
Автор NickBass (бас-програмист)
Публикувано04.07.06 18:13



Здравейте,

Досега не ми беше правил впечатление този проблем, но ето че се сблъсках с него. При copy и paste на текст от каква да е текстова контрола в Нотпада например кирилицата се пейства като хората, само ако в лонгуич бара съм превключил на BG. Адски досадно е... Някой може ли да помогне с това как може да се заобиколи този проблем? Видях че TClipboard класа си вика API функциите съвсем коректно, така че предполагам причината не е в него, а в Win-a.

Heeeeeelp!



Тема Re: Copy&Paste...нови [re: NickBass]  
Автор NDeu (динозавър)
Публикувано05.07.06 09:27



Имаше преди години тука някой, който се ровеше в този проблем. Виж дали няма да го изровиш от архива.
Но решението май е в API-то.
Вж. GetClipboardData и SetClipboardData
The GetClipboardData function retrieves data from the clipboard in a specified format. The clipboard must have been opened previously.

HANDLE GetClipboardData(

UINT uFormat // clipboard format
);


Parameters

uFormat

Specifies a clipboard format. For a description of the clipboard formats, see the SetClipboardData function.

========================
HANDLE SetClipboardData(

UINT uFormat, // clipboard format
HANDLE hMem // data handle
);
..........
Remarks

The uFormat parameter can identify a registered clipboard format, or it can be one of the following values:

Value Meaning
.......................
CF_LOCALE The data is a handle to the locale identifier associated with text in the clipboard. When you close the clipboard, if it contains CF_TEXT data but no CF_LOCALE data, the system automatically sets the CF_LOCALE format to the current input locale. You can use the CF_LOCALE format to associate a different locale with the clipboard text.An application that pastes text from the clipboard can retrieve this format to determine which character set was used to generate the text.Note that the clipboard does not support plain text in multiple character sets. To achieve this, use a fomatted text data type such as RTF instead.Windows NT: The system uses the code page associated with CF_LOCALE to implicitly convert from CF_TEXT to CF_UNICODETEXT. Therefore, the correct code page table is used for the conversion.
......

Редактирано от NDeu на 05.07.06 09:38.



Тема Re: Copy&Paste...нови [re: NDeu]  
Автор NickBass (бас-програмист)
Публикувано05.07.06 15:09



Благодаря ти NDeu! То се вижда, че ще се бърника TClipboard класа... Нема лабаво!

Странното е, обаче че една друга програмка писана на D7 няма този проблем! А сега де! Открийте 10-те разлики. Обърнах сорса с краката нагоре и ... нищо по-различно.



Тема Re: Copy&Paste...нови [re: NickBass]  
Автор NDeu (динозавър)
Публикувано06.07.06 09:08



Ако не ти се бърника в класа, пробвай това:


procedure PutStringIntoClipboard(const Value: string;LocaleID: longint);
var Size: Integer;
Data: THandle;
DataPtr: Pointer;
begin
if Length(Value) = 0 then exit;
Clipboard.Open;
try
Clipboard.AsText:= Value;
Size:= 4;
Data:= GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Size);
try
DataPtr := GlobalLock(Data);
try
Move(LocaleID, DataPtr^, Size);
Clipboard.SetAsHandle(CF_LOCALE, Data);
finally
GlobalUnlock(Data);
end;
except
GlobalFree(Data);
raise;
end;
finally
Clipboard.Close;
end;
end;




Тема Re: Copy&Paste...нови [re: NDeu]  
Автор NickBass (бас-програмист)
Публикувано06.07.06 17:58



Още един път благодаря!

Функцийката работи перфекто.
Заформям един юнит, който като се закачи към приложението, прихваща събитията от клипборда и оправя бакиите. Ако искаш мога да ти го пратя като е готов (остави мейл). Ама няма да е днес-утре, че ме нападнаха пък други задачи.




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.