Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 929
от 19.09.2007, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 464, Экспертов: 75
В номере:Вопросов: 4, Ответов: 7


Вопрос № 101914: Уважаемые эксперты возник такой вопрос если какие-нибудь способы (программы) для отловки утечки памяти при разработке приложений. сейчас пишу программу и где то что то не уничтожаю но найти в этой структуре классов уже что то сложновато...
Вопрос № 101934: Здравствуйте Уважаемые эксперты! В Дельфи есть компонент "StringGrid". Подскажите можно ли сделать колонки разной ширины и если да то как ? Геннадий....
Вопрос № 102020: Как узнать что InplaceEditor в TDBFGridEH находится в состоянии ввода данных?Например из события onKeyDown...
Вопрос № 102025: Здравствуйте, господа Эксперты! Хочу попробовать свои силы в написании сервисов. Можно ли обнаружить попытку каких-либо программ обратиться к некоторому порту с заданным номером? Например к порту, через который осуществляется соединение с пр...

Вопрос № 101.914
Уважаемые эксперты

возник такой вопрос если какие-нибудь способы (программы) для отловки утечки памяти при разработке приложений.
сейчас пишу программу и где то что то не уничтожаю но найти в этой структуре классов уже что то сложновато, буду рад любой помощи.
Отправлен: 13.09.2007, 13:09
Вопрос задал: Кэр Лаэда (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Багель Александр
Здравствуйте, Кэр Лаэда!

Смотря какую среду Вы используете.
Например начиная с BDS 2006 появилась глобальная переменная
ReportMemoryLeaksOnShutdown. Если она выставляется в True, то при закрытии Вам выводится диалог с описанием неосвобожденной памяти.

Это стало возможным после замены менеджера памяти на FastMM от небезизвестного Пьера Ле Рича. Если используется более ранняя версия Delphi, то можно установить непосредственно сам FastMM и подключить его отладочную библиотеку - он выполнит те-же дейтвия.

Также есть инструмент под названием MemProof, он интегрируется в среду и помогает идентифицировать проблемные участки кода.

Из коммерческих рекомендую обратить внимание на VTune от Intell
Ответ отправил: Багель Александр (статус: 1-ый класс)
Ответ отправлен: 13.09.2007, 13:37
Оценка за ответ: 5
Комментарий оценки:
я работаю именно в 2006 Delphi если можно поточнее скажите где это надо включить и где будет виден результат

Отвечает: Bochvarov NikB
Здравствуйте, Кэр Лаэда!
Можно восползоватся MemCheck (Вполне Фрее, создает подробнии лог файл утечки ползуя мап инфо)
Contact...
Vincent.Mahon@free.fr
http://v.mahon.free.fr/pro/freeware/memcheck
Ответ отправил: Bochvarov NikB (статус: 10-ый класс)
Ответ отправлен: 13.09.2007, 14:36
Оценка за ответ: 4
Комментарий оценки:
пробовал этом memcheck может конечно я что то не то делаю но он у меня вместо того чтобы искать утечки сам выдает ошибку прям как утечка при загрузке программы


Вопрос № 101.934
Здравствуйте Уважаемые эксперты!
В Дельфи есть компонент "StringGrid". Подскажите можно ли сделать колонки разной ширины и если да то как ?
Геннадий.
Отправлен: 13.09.2007, 15:15
Вопрос задал: Geb2003 (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delph
Здравствуйте, Geb2003!

Да, можно! Делается это так:

StringGrid.ColWidths[0] := ширина0;
StringGrid.ColWidths[1] := ширина1;
StringGrid.ColWidths[2] := ширина2;
...

Ширина колонок задаётся в пикселях. Проблема только в том, что в визуальном редакторе провести эту настройку не удастся, только из кода программы (например, в обработчике события активации формы - FormActivate).
---------
Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: 9-ый класс)
Ответ отправлен: 13.09.2007, 15:29

Отвечает: Zubex
Здравствуйте, Geb2003!
Конечно можно - у StringGrid есть свойство ColWidths[i], i - номер колонки (начинается с 0). Просто присваиваете каждой колонке нужное значение.

Пример в приложении.

Удачи.

Приложение:

---------
Если не знаешь что сказать - лучше промолчи...

Ответ отправил: Zubex (статус: 7-ой класс)
Ответ отправлен: 13.09.2007, 15:34

Отвечает: Narsereg
Здравствуйте, Geb2003

Например так

StringGrid1.ColWidths[0]:= 10;
StringGrid1.ColWidths[1]:= 1000;

Удачи
Ответ отправил: Narsereg (статус: 1-ый класс)
Ответ отправлен: 13.09.2007, 15:57


Вопрос № 102.020
Как узнать что InplaceEditor в TDBFGridEH находится в состоянии ввода данных?Например из события onKeyDown
Отправлен: 14.09.2007, 11:28
Вопрос задал: Helmer Alex (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zubex
Здравствуйте, Helmer Alex!
Если InplaceEditor виден - значит грид находится в режиме редактирования, следовательно достаточно проверить свойство InplaceEditor`а Visible:

procedure TForm1.DBGridEh1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if TDBGridEh(Sender).InplaceEditor.Visible then ('Ввод данных');
end;

---------
Если не знаешь что сказать - лучше промолчи...
Ответ отправил: Zubex (статус: 7-ой класс)
Ответ отправлен: 17.09.2007, 11:54


Вопрос № 102.025
Здравствуйте, господа Эксперты!

Хочу попробовать свои силы в написании сервисов. Можно ли обнаружить попытку каких-либо программ обратиться к некоторому порту с заданным номером? Например к порту, через который осуществляется соединение с прокси-сервером и выход в интернет...
Отправлен: 14.09.2007, 12:05
Вопрос задал: Delph (статус: 9-ый класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Багель Александр
Здравствуйте, Delph!

Можно. Вот вам комплект примеров от которых можно начать плясать:

Пример сервиса: http://rouse.drkb.ru/winapi.php#twoservicedemo
Пример снятия сетевой статистики с привязкой а процессам: http://rouse.drkb.ru/network.php#tcpstat
пример сниффера сетевого уровня: http://rouse.drkb.ru/network.php#sniffer
Ответ отправил: Багель Александр (статус: 1-ый класс)
Ответ отправлен: 14.09.2007, 12:12
Оценка за ответ: 5
Комментарий оценки:
ВЕСЬМА благодарен за ссылки - теперь смогу поразвлечься с сетевой работой, а заодно и потренироваться в хакинге и защите от него! Надеюсь увидеть Вас в будущем на более высокой позиции в иерархии РусФага :)


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.59 от 18.09.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное