Текущий архив: 2006.04.23;
Скачать: CL | DM;
ВнизКак скопировать текст в буффер обмена с минималь. размером файла? Найти похожие ветки
← →
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
пример можно взять из того же класса TClipboardprocedure 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;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.013 c