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

Вниз

Как скопировать текст в буффер обмена с минималь. размером файла?   Найти похожие ветки 

 
Volf_555 ©   (2006-03-18 22:26) [0]

Для того чтобы скопировать в буффер обмена использую следующий код (консольное приложение):

program CTC;

{$APPTYPE CONSOLE}

uses
 ClipBrd, SysUtils;

begin
 { TODO -oUser -cConsole Main : Insert code here }
 ClipBoard.SetTextBuf(PChar(ExtractFileName(ParamStr(1))));
end.


В итоге приложение оказывается с размером 358 килобайт!!!!!
Пустое приложение, то есть:

program CTC;

{$APPTYPE CONSOLE}

begin
 { TODO -oUser -cConsole Main : Insert code here }
end.

занимает 8 килобайт!!!!!! То есть в 45 раз меньше!

Как мне использовать функцию копирования в буффер обмена и намного уменьшить размер файла?


 
Desdechado ©   (2006-03-18 22:50) [1]

Использовать API
пример можно взять из того же класса TClipboard
procedure TClipboard.SetBuffer(Format: Word; var Buffer; Size: Integer);
var
 Data: THandle;
 DataPtr: Pointer;
begin
 Open;
 try
   Data := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, Size);
   try
     DataPtr := GlobalLock(Data);
     try
       Move(Buffer, DataPtr^, Size);
       Adding;
       SetClipboardData(Format, Data);
     finally
       GlobalUnlock(Data);
     end;
   except
     GlobalFree(Data);
     raise;
   end;
 finally
   Close;
 end;
end;


 
Volf_555 ©   (2006-03-18 23:17) [2]

Я тоже думал по поводу использования этой процедуры. Но есть одно большое НО, которое заключается в том, что кроме этой процедуры, необходимо копировать в свой код все процедуры, функции, типы..., на которые ссылается данная процедура.
При нажатии F9 сразу останавливается работа программы на Open
Если скопировать процедуру Open, то ошибка снова возникнет в первых строках и тд тп....

И к тому же я использую процедуру SetTextBuf, а не SetBuffer


 
API ©   (2006-03-18 23:41) [3]

При нажатии F9 сразу останавливается работа программы на Open

Заметьте, не "работа программы", а на этой строке компилятор выдает сообщение об ошибке. Т. е., программа еще и не думала начинать "работать".

ошибка снова возникнет в первых строках и тд тп....

Что должно натолкнуть на мысль...


 
Volf_555 ©   (2006-03-18 23:54) [4]


> При нажатии F9 сразу останавливается работа программы на
> Open
>
> Заметьте, не "работа программы", а на этой строке компилятор
> выдает сообщение об ошибке. Т. е., программа еще и не думала
> начинать "работать".

Согласен... немного не так выразился


> ошибка снова возникнет в первых строках и тд тп....
>
> Что должно натолкнуть на мысль...

Мысль какова? Копировать все необходимые функции с процедурами в свой проэкт? Это ж ведь убийство!


 
Palladin ©   (2006-03-19 00:03) [5]


> Мысль какова? Копировать все необходимые функции с процедурами
> в свой проэкт? Это ж ведь убийство!


во первых их не так много, а во вторых без труда не то что рыбку не вытащишь, но и удочку не закинешь...



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

Форум: "Основная";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
2-1144415556
mfender
2006-04-07 17:12
2006.04.23
Узнать координаты курсора мыши у Parent a


2-1144383909
Nick_serov
2006-04-07 08:25
2006.04.23
Забыл св-во Grid а


15-1143992025
Marser
2006-04-02 19:33
2006.04.23
Банный лист


15-1143469715
Shweps
2006-03-27 18:28
2006.04.23
Документация


15-1144160567
Volf_555
2006-04-04 18:22
2006.04.23
Как подлкючить человека? Живёт от меня на расстоянии ~130 м





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