Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 8 из 116<  1 ... 5  6  7  8  9  10  11 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
Созданное на Delphi 32 приложение по умолчанию загружает библиотеки OLE32 которые весят порядка 1.5 мега. В том случае, если приложение не использует технологию OLE и не работает с Borland Database Engine, для уменьшения объема занимаемой памяти эти библиотеки можно выгрузить, указав в файле проекта первой строкой: FreeLibrary(GetModuleHandle('OleAut32')); В Uses проекта необходимо указать модуль Windows.

Никто ничего не грузит если не используется хоть одна процедура. :).

Добавлено спустя 1 минуту, 27 секунд:
Цитата:
Банальный вопрос: как уменьшить размер приложения в памяти(ОЗУ), ну в некоторых случаях помогает UPX, а в остальных? Может в настройках линкера че-нибудь изменить?

А что именно тебя не устраивает? UPX тут ничем не поможет. Разрабатывай программу так, чтобы не жрала почем зря оперативку, это относить и не только к Delphi , но и к любому языку. А по Delphi.
Не создавай Auto Create Form. Все формы кроме главной не должны автоматом создаваться, создавай их по мере надобности их вывода. Не забывай освобождать память, хендлы. И еще, не надо смотреть сколько памяти жрет программа, тоесть если сперва она 2 мега, через час у нее 5, а потом опять 2. Windows имеет свойство не всегда сразу освобождать память и выгружать уже не используемые .dll.

Кстати если у тебя программа при старте уходит в трей, то высвободить все ненуджную память можно таким методом.

Цитата:
ShowWindow(handle,SW_MINIMIZE);
ShowWindow(handle,SW_hide);
Application.ShowMainForm:=false;

Или просто сделай такой вариант. Создай приложение, пустое с одной формой. Запусти его. Глянь сколько сьело, потом минимизируй и востанови обратно, память высвобождается (хотя не всегда). У Windows есть режим, когда она высвобождает память если программа минимизируется.

Добавлено спустя 3 минуты, 29 секунд:
Цитата:
2. Отказывайся от VCL, используй например KOL

Это только уменьший .exe файл, я предпочитаю в таких случаях писать на VC++ :). Там хоть MFC намного удобнее , чем чистый API или самопал в виде KOL :)



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Цитата:
А что именно тебя не устраивает?

Ну как сказать, смотря на то, что многие программы занимают не так и много места, АТТ к примеру, то при создании нового проекта 2.5 мегабайта с одной формой выглядит подозрительным. У Visual C# и того хуже - 7.5 мегабайт
Цитата:
Все формы кроме главной не должны автоматом создаваться, создавай их по мере надобности их вывода.

Да это есть, помогает, но есть неудобство - небольшие задержки перед созданием формы, в некотором случае очень заметны, причем их никак не могу избежать. :-(
Цитата:
тоесть если сперва она 2 мега, через час у нее 5, а потом опять 2. Windows имеет свойство не всегда сразу освобождать память и выгружать уже не используемые .dll.

У меня скорее так - сперва 6 мегов, через час - 3, а то и меньше :-)
Цитата:
У Windows есть режим, когда она высвобождает память если программа минимизируется.

Вот это и непонятно. dll'ки, как использовались, так и используються, а памяти стало меньше занимать, в своп что ли ушло :-)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 13.02.2004
Откуда: Вологда-Москва
с сылками на веб разобрался. остался вопрос: как вызвать написание письма из делфи? т.е. чтобы человек нажал на кнопку и перед ним появился аутлук (или другой его клиент) с написаным адресом получателя?


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Halst ShellExecute(0,"open","mailto:test@test.com",0,nil,SW_SHOWDEFAULT);

Daemon
Цитата:
Да это есть, помогает, но есть неудобство - небольшие задержки перед созданием формы, в некотором случае очень заметны, причем их никак не могу избежать

Все зависит от того, что у тебя на форме етсь и какие инициализаци ты делаш при создании формы. В ATT все формы создаются только когда надо, в памяти ничего не висит.
А вообще, не забивай себе голову этим, на компах сейчас не меньше 256 памяти висит, а это для программы до фига! :)


 

Halst
Естественно будет ругаться, ведь я тебе в Сишной нотации написал.


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Avaddon
Спасибо!
А не знаешь случаем как сделать быстрый доступ к пикселам???(ато у меня такие тормоза в проге...)

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 31.08.2004
Откуда: Рост. область
Подскажите компонент для работы с анимированными gif, rxgifanimator тормозной.


 

Lord_of_Darkness
ты скажи, че те надо с ними делать-то. А то "быстрый досуп к пикселям" - это из области фантастики.
Можно только быстро получит т.н. scanline - строку пикселей. и то, для 24-х битного цвета

Добавлено спустя 23 секунды:
Jurec
В поиск!


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Аваддон
Цитата:
ты скажи, че те надо с ними делать-то. А то "быстрый досуп к пикселям" - это из области фантастики.
Можно только быстро получит т.н. scanline - строку пикселей. и то, для 24-х битного цвета

Ладно хрен с ним, с доступом с этим.
У меня вот по твоему коду эксепшен вылетает при обращении к любому св-ву, процедуре, ф-ии созданного битмапа.
В чем дело??

Добавлено спустя 6 часов, 19 минут, 26 секунд:
И еще мне срочно нужен модуль FFT(преобразование Фурье) на делфи, ессно, если у кого завалялся - киньте на мыло, не влом!

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Lord_of_Darkness
А сажи, ты TBitmap не забыл создать :)
Про www.torry.ru не слышал? Тогда тебе сюда - http://www.torry.net/vcl/science/other/dsxfft.zip


 

Member
Статус: Не в сети
Регистрация: 07.04.2004
Откуда: Планета Земля
Люди помогите найти VCL для прожига дисков...

_________________
Keyboard not found, press F1 to continue...
Press any key to continue, or another to exit...


 

web-dav
Опять же на торри. Там есть очень неполхая ASPI библиотека, пользуйся ей (она бесплатная)


 

Аваддон писал(а):
web-dav
Опять же на торри. Там есть очень неполхая ASPI библиотека, пользуйся ей (она бесплатная)


где это?
и есть ли сырцы (source - исходники) этой библиотеки?


 

Snouphruh
www.torry.ru каждый Дельфер должен занть этот адрес на изусть !
ASPI библиотека - http://www.torry.net/vcl/filedrv/cd/aspilib.zip
Естественно, он в исходниках


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Аваддон
Код:
var
  i, j, count : longint;
  lpvBits : array [0..255] of byte;
begin
 for i:= 0 to 255 do
    lpvBits[i]:=i;
 BitMap1 := TBitMap.Create;
 BitMap1.Handle :=CreateBitmap(50, 50, 1, 8, @lpvBits);
 BitMap1.ReleaseHandle;
 for i:=1 to 50 do
     for j:=1 to 50 do
     begin
        BitMap1.Canvas.Pixels[i,j]:=random(255);
     end;
end;

Картинка не выводится по Image1.Picture.Bitmap:=BitMap1;
Т.е. image1 остается такого-же цвета как и форма.
В чем дело??
Я что-то забыл сделать??

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Lord_of_Darkness
Конечно забыл. Установить формат пикселей в 8 бит.
BitMap1.PixelFormat := pf8 // Кажется так то ли pf, то ли pxf


 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Аваддон
Да, точно забыл.
Вот добавил - теперь картинка выводится, но красно-черная, а мне нужна СЕРАЯ!!!

Добавлено спустя 11 минут, 40 секунд:
Код:
Value   Meaning

pfDevice   The bitmap is stored as a device-dependent bitmap.
pf1bit   The bitmap is a device-independent bitmap with one bit per pixel (black and white palette)
pf4bit   The bitmap is a device-independent bitmap that uses a 16-color palette.
pf8bit   The bitmap is a device-independent bitmap that uses a 256color palette.
pf15bit   The bitmap is a device-independent true-color bitmap that uses 15 bits per pixel (RGB compression).
pf16bit   The bitmap is a device-independent true-color bitmap that uses 16 bits per pixel (bitfield compression).

pf24bit   The bitmap is a device-independent true-color bitmap that uses 24 bits per pixel.
pf32bit   The bitmap is a device-independent true-color bitmap that uses 32 bits per pixel (RGB compression).
pfCustom   The bitmap uses some other format. TBitmap does not support pfCustom.


pf8bit - 256 color р-р-р!! вот и получается такая картинка (градации серого присутствуют, но так-же и красный цвет!!!)
Млин!! Уже вторую неделю с этим Г мучаюсь :( :(

Добавлено спустя 3 часа, 27 минут, 47 секунд:
Вот функцияд, для задания цвета BitMap1.Canvas.Pixels[i,j]:=RGB(100,100,100); - получаем некий серый цвет, а есть ли функция, чтобы прочитать цвет пиксела по составляющим RGB???
Т.е. можно написать что-то типа RGB(colorR,colorG,colorB):=BitMap1.Canvas.Pixels[i,j]; (данный код ессно не пашет, просто для примера).

_________________
Здесь так мало тех, с кем легко говорить,
Еще меньше тех, с кем не страшно молчать (c)


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Какой модуль надо использовать для того, что бы можно было использовать CreateService, CreateFile и т.д?

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
WinSvc


 

Member
Статус: Не в сети
Регистрация: 26.05.2004
Откуда: Kharkov.UA
Lord_of_Darkness писал(а):
Вот функцияд, для задания цвета BitMap1.Canvas.Pixels[i,j]:=RGB(100,100,100); - получаем некий серый цвет, а есть ли функция, чтобы прочитать цвет пиксела по составляющим RGB???
Т.е. можно написать что-то типа RGB(colorR,colorG,colorB):=BitMap1.Canvas.Pixels[i,j]; (данный код ессно не пашет, просто для примера).


Из Windows.pas:

function GetRValue(rgb: DWORD): Byte;
function GetGValue(rgb: DWORD): Byte;
function GetBValue(rgb: DWORD): Byte;


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 8 из 116<  1 ... 5  6  7  8  9  10  11 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan