Главная страница
    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.016 c
15-1143861929
Я туплю....
2006-04-01 07:25
2006.04.23
Почему не надо просить уставщих админов о помощи! :)


4-1138784983
Polevi
2006-02-01 12:09
2006.04.23
wait functions


2-1144402787
Lera
2006-04-07 13:39
2006.04.23
Приложения


2-1144655319
Der Nechk@ssoff
2006-04-10 11:48
2006.04.23
Перенос файлов


2-1144342181
Isaev
2006-04-06 20:49
2006.04.23
Проблема компиляции





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