Страница 5 из 12
------------------------------------------------------------ Q-65: Как можно обнаружить утечки памяти и ресурсов в программе? ------------------------------------------------------------ MSDebug Макса Русова. Hаходится на http://www.dic.ru/users/rusov/. Поддерживает Delphi 3 и выше, ловит только утечки памяти, но делает это хорошо. Hа http://www.numega.com можно купить BoundsChecker for Delphi. Он проверяет также и утечки ресурсов. Рекламировался также "MemProof", информацию о котором можно получить на http://www.listsoft.ru/programs/pr1520.htm. ------------------------------------------------------------ Q-66: Мне нужно заниматься разбором математических выражений ------------------------------------------------------------ Мне нужно заниматься разбором математических выражений, например, строить график функции, заданной пользователем во время работы программы. В rxLib есть компонент TrxMathParser, достаточно мощный для большого количества применений. ------------------------------------------------------------ Q-67: Как уменьшить размер исполняемого файла программы? ------------------------------------------------------------ Писать на WinAPI без использования VCL. Это пригодно для и без того крохотных программ. Существуют freeware библиотеки, упрощающие программирование без VCL, например: KOL http://xcl.cjb.net ACL http://a-press.parad.ru/pc/bokovikov/delphi Воспользоваться пакетами (packages) из Delphi 3. Эффект появится, когда исполняемых файлов больше одного. Воспользоваться компрессорами исполняемых файлов, например: Shrinker http://www.blinkinc.com, WWPack32 http://kolos.uni.lodz.pl/warezak, NeoLite ftp://ftp.zdnet.com/pub/private/sWlIB/utilities/other_utilities/neolitee.zip , Petite, http://www.icl.ndirect.co.uk/petite/. Компрессировать или нет исполняемые файлы, должен решить каждый, так как возможны и негативные моменты от использования сжатия. Дискуссия по этому поводу никогда не прекращается. ------------------------------------------------------------ Q-68: Где достать всяких иконок, картинок для кнопок, etc. для своей программы?
------------------------------------------------------------ http://www.iconbazaar.com ------------------------------------------------------------ Q-69: Как сделать ping из своей программы? ------------------------------------------------------------ И вообще, посоветуйте какую-нибудь альтернативу стандартным дельфовым Internet-компонентам. Зайди на [53]http://www.rtfm.be/fpiette. Там кyча компонентов для инета с исходниками. Там и ping есть. ------------------------------------------------------------ Q-70: Как правильно создавать компоненты в run-time? ------------------------------------------------------------ Как правильно создавать компоненты в run-time? Что задавать в качестве параметра Owner при создании компоненты? Как обрабатывать события от созданных компонент, типа нажатий на кнопки? Hачнем с создания. Сущность свойства Owner в том, что владелец перед смертью уничтожает (через Free) принадлежащие ему объекты. Таким образом, все зависит от того, кому вы хотите доверить уничтожение созданных форм/компонентов. В частности, если вы сами будете этим заниматься, то AOwner может быть, например, nil. Для того, чтобы созданный компонент появился на экране, надо указать его родителя, заполнив свойство Parent, например, NewButton.Parent := Form1; Пример кода, обрабатывающего события от свежесозданных компонентов: type TForm1 = class(TForm) { ... } private { эта процедура будет вызываться при нажатии на кнопку } procedure ButtonClicked(Sender : TObject); public { в этой процедуре происходит создание кнопки } procedure CreateButton; end; { ... } procedure TForm1.CreateButton; var btn : TButton; begin btn := TButton.Create(Self); { Уничтожать кнопку будет форма } btn.Parent := Self; { Родителем кнопки будет форма } btn.OnClick := ButtonClicked; { Процедура, которая будет исполняться при } btn.Visible := true; { нажатии на кнопку } end; |