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

Интернет для Delphi-программиста 61


Интернет для Delphi программиста.

Выпуск : № 61


Здравствуйте уважаемые подписчики рассылки "Интернет для Delphi программиста". Данная рассылка предназначена для всех кого интересует Delphi, здесь будут выкладываться ссылки на различные ресурсы интернета так или иначе связанные с Delphi: книги, исходники, программы... Изучайте Delphi один из лучших языков программирования!!!


ЗАДАТЬ ВОПРОС :

Правила рассылки: 
1. Не присылайте ответов на вопросы типа "да, нет".  
2. Если отвечаешь на вопрос - то отвечай подробно с примерами (желательно с исходником примера).
3. Тема вопросов - программирование на Delphi.
Внимание авторам: - Я не указываю ваши адреса из-за спама, но кто хочет, чтобы его email был - пишите, иначе только имя(ник).
Отправить вопрос


Новые вопросы.


Вопрос № 155 задаёт:  мэйл_рфдл2 Ответить
Delphi 7
Windows XP SP2
------------------------
Кидаю на форму ListView , добавляю один Column и пару Item' ов.
Listview1.Viewstyle="vsReport"

Запускаю приложение, пытаюсь выделить одну из строк... а именно кликаю по интересующей строке... и она становится активной/выделенной, тОлькО через 1 - 1,5 - 2 секунды.
Но после этих мертвых секунд, все летает как должно летать...

Закрываю форму... Опять запускаю приложение... опять таже картина...

Вопрос № 156 задаёт: bakha  Ответить
Как узнать только имя файла из OpenDialog1, а не полный путь.
Вопрос № 157 задаёт: God-Titan   Ответить
У меня два вопроса:
1. Я программирую на Delphi 7 и у меня при обработке исключительных ситуаций (try..except) программы вечно слетают при запуске их из Delphi, но когда запускаю их обычным образом (через Проводник) программа работает как надо и исключительные ситуации работают так как и должны. Может надо, что-то в настройках Delphi изменить по поводу исключительных ситуаций? У меня Delphi настроена по умолчанию.
2. Как уменьшить размер получаемых *.EXE файлов? Я писал программу Калькулятор, в итоге ее размер составил килобайт 500-700. На мой взгляд она должна весить не более 100 Кб. Калькулятор в Windows весит 112 Кб. Были подключены стандартные модули: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls.
Может надо как-то по особому настроить среду? А, вообще, можете в кратце рассказать про эти модули и всегда ли они все нужны?
Вопрос № 158 задаёт: vfrcbva  Ответить
Здравствуйте любители Delphi!
Если вас не затруднит помогите разобраться в следующем вопросе:
Как Из программы реализовать, ограничение трафика для каждого конкретного приложения. Наверное замечали, если Вы "сидели" на dial-up, то не могли "бродить" по интернету когда работает FlashGet или TeleportPro ну или если антивирус обновляется. Таким образом как бы так резервировать трафик для приложений в процентах, как это делается например для встроенной службы QOS, или просто в килобайтах?Для этого как-то нужно вычислять сетевую активность, на подобие файрвола, выводить значок активного приложения, и регулятор скорости! И еще, как осуществляется блокировка рекламы/баннеров по строкам
Или подскажите где по сей тематике можно раздобыть инфу.
Вопрос № 159 задаёт: Крылов И.В.  Ответить
Проблема. В программе много справочников. Хочу их поместить в динамические библиотеки.
Использую ADO. Не знаю как передать соединение ADOConnection в DLL и привязать его там к
ADOStoredProc или ADODataSet. Заранее спасибо.

Ответы.

Вопрос № 152 задаёт: ZhenO Ответить 
создаю программно компонент TEdit, и текстовый файл как записать данныее введенные в TEdit в файл? ни как не могу разобраться :( main.pas
Отвечает: Владимир Трифонов  
Насколько я понимаю, возникает ошибка если файл уже существует т.е. при повторном запуске!?
Если файл есть то он не открывается!
Допишите в
procedure TForm1.FormCreate(Sender: TObject);
begin
  i:= 0;
  if FileExists ('TEST.dat') = false then begin
    AssignFile (zap_file, 'zakazi.dat');
    Rewrite (zap_file);
  end
{Вот это}
else begin
    AssignFile (zap_file, 'zakazi.dat');
reset(zap_file);
end;
end;
Отвечает: msys 
Сохранение в файл работает правильно , но вот когда ты обращаешься к объекту ed , у тебя EAccessViolation(Нарушение доступа) ,он программа обращается к адресу где уже нет твоего объекта. Вывод , твой объект уничтожается т.к. ты его описал как локальную переменную в вызываемой процедуре , и когда процедура завершает свое выполнение она вызывает деструкторы всех переменных(объектов) которые у тебя там описаны. т.е засунь нужные объекты в глобальный var. Для того что бы узнать где точно ошибка пользуйся брык поинтами


Статья:    "Получение информации о памяти." 

Для получения детальной информации о состоянии памяти компьютера можно воспользоваться функцией API GlobalMemoryStatus. В функцию передается переменная типа TMemoryStatus, которая представляет собой запись, тип которой определен следующим образом:
type
  TMemoryStatus = record
    dwLength: DWORD;
    dwMemoryLoad: DWORD;
    dwTotalPhys: DWORD;
    dwAvailPhys: DWORD;
    dwTotalPageFile: DWORD;
    dwAvailPageFile: DWORD;
    dwTotalVirtual: DWORD;
    dwAvailVirtual: DWORD;
  end;

Первое поле записи, dwLength, описывает длину записи TMemoryStatus. Поле необходимо инициализировать функцией SizeOf до обращения к функции GlobalMemoryStatus.

Второе поле, dwMemoryLoad, содержит количество использованной памяти в процентах.

Третье поле, dwTotalPhys, содержит число байт установленной на компьютере ОЗУ (физической памяти).

Поле dwAvailPhys – свободная физическая память в байтах.

Следующие два поля – dwTotalPageFile и dwAvailPageFile – показывают общий объем, который могут сохранить файлы/файл подкачки (вообще говоря, не совпадает с размером последних) и еще доступный объем из этой величины. Все в байтах.

Последние два поля относятся к виртуальной памяти. Поле dwTotalVirtual – общее число байтов виртуальной памяти, используемой в вызывающем процессе. Поле AvailVirtual – объем этой памяти, еще доступной для вызывающего процесса.

Приведу один пример использования функции GlobalMemoryStatus. На Дельфи можно реализовать следующий код получения информации о наличной памяти ОЗУ:
function GetRAM: Cardinal;
var
  MS: TMemoryStatus;
begin
  MS.dwLength:=SizeOf(MS);
  GlobalMemoryStatus(MS);
  Result:=MS.dwTotalPhys;
end;

Функция GetRAM возвращает общее число байт физической памяти, установленной на компьютере. Эту информацию она читает из поля dwTotalPhys записи MS, имеющей тип TMemoryStatus. Перед этим вызывается API-функция GlobalMemoryStatus с параметром MS. Обратите внимание, что перед вызовом GlobalMemoryStatus инициализируется поле dwLength функцией SizeOf.

По аналогии с примером можно получить информацию об остальных параметрах памяти. Думаю, у читателей это не вызовет затруднения. Реализацию функций на Дельфи для получения информации о памяти можно найти в моем модуле SysInfo v.3.00. Там же содержатся функции получения и другой системной информации.

Copyright© 2006 Андрей Садовой  


Файлы  Исходники, модули, FAQ

Слежка за реестром (9,52 Кб)

Получить в трее список видимых окон в виде дерева (Родительское->Дочернее). (124 Кб)

Создавать пакетные файлы, даже вредные. (83,7 Кб)

Сделай калькулятор, в модуле создана поддержка построения графиков. (3,54 Кб)

Сделать зловредную программу поможет модуль Virus. (3,96 Кб)

Отследить события в оболочке. (3,05 Кб)

Сделать форму непрямоугольного вида. (6,26 Кб)

Динамически загрузить DLL. (3,92 Кб)

Анимированная кнопка Пуск. (3,92 Кб)

Модуль файлового монитора. (2,46 Кб)

Аудио. Хороший пример. (11,9 Кб)

Управление значками на рабочем столе. (790 байт)

Получение формы в виде звёздочки. (6,34 Кб)

Справочник по компонентам. (195 Кб)

База данных без BDE. (20,1 Кб)

Наиболее часто задаваемые вопросы по SystemTary. (5,22 Кб)

Общие вопросы программирования. (25 Кб)

Вопросы и ответы. (142 Кб)

Базы данных. (12,5 Кб)

FAQ "Назначение всяческих фич для Делфи. (48,3 Кб)

FAQ - список ответов на вопросы, наиболее часто задаваемые в эхо-конференциях RU.DELPHI, RU.DELPHI.DB и RU.DELPHI.INFO. (34,3Кб)

FAQ по Delphi. (348 Кб)

Ответы на вопросы по Delphi. (9,42 Кб)


Интересные и полезные сайты по Delphi: Если Вы хотите, чтобы Ваш сайт был в этом разделе пишите.
http://www.noil.pri.ee/     - Здесь вы можете почитать статьи, скачать исходники и компоненты, пообщаться на форуме.
http://www.delphi.int.ru/  - Ресурс для Delphi-программистов, где каждый найдёт что-то полезное!
http://www.ExCode.ru     - Программирование на высоком уровне
http://decoding.narod.ru - Сайт для Delphi-программистов со статьями автора, компонентами, FAQ, и другой полезной информацией.
http://www.p-lib.pp.ru/    - На сайте находится множество статей по Visual C++, Visual Basic, ASP.NET/ASP, Delphi, Java, Базам Данных, PHP, Perl и т. д. Кроме того есть каталог сайтов, свежие компьютерные новости, софт, книги и многое другое.

Немного юмора:  :))

:)

Компьютерщик - это не профессия и не образ жизни, это путь развития, причем тупиковый.

:)

... недостаток мозгов у программистов Microsoft компенсируется "мозгами" Вашего компьютера...

:)

Фирма IBM разработала одноразовый персональный компьютер - самое надежное средство от компьютерных вирусов.

:)

Кризис компании "Майкрософт" подорвал экономику ряда стран, специализировавшихся на подделке её продукции...

:)

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

:)

Прибегает Вовочка к отцу:
- Папа! Правда, ты не огорчишься?
- Смотря из-за чего.
- Да я твой кофе пролил.
- Фигня!
- Вот и я о том же! Но, похоже, твой компьютер так не думает: т.е. он теперь вообще не соображает!

:)

Звонит мужик в программистскую фирму:
- Ваша программа не работает!!! Что делать?
- Вы внимательно читали руководство?
- Да, да, делал все как написано - не работает.
- Прочитайте еще раз 1-ю строчку.
- Читаю: "Нажмите кнопку ENTER". Нажимаю... Не работает.
- Читайте дальше.
- Читаю: "Отпустите кнопку ENTER". О!!! Заработала!!!

:)

Плывут (А)мериканцы по океану, видят - что-то такое огромное,
металлическое, и тоже плывет. Спрашивают у (К)апитана:
A - Что это? :-o
К - Русский Pentium
A - А почему он в океане?
K - Охлаждается... :))


Дружественные рассылки:

Рассылки Subscribe.Ru
Программирование на Delphi
Рассылка сайта Delphi coding


Все кто хочет изучить Delphi и реально научиться писать свои программы, ЦПИ "Эверест" поможет Вам.
Всё, что Вам нужно это компьютер и доступ к интернету - для получения уроков.

10 причин в пользу платного обучения в ЦПИ "Эверест"…

1. Когда Вы платите деньги- появляется дополнительный стимул против лени: надо учиться, ведь деньги уже уплачены….
2. Учась платно, получаете удобный для Вас график работы.
3. Весь необходимый справочный материал Вы получите в свое время и на русском языке.
4. Используя интернет в качестве бесплатной библиотеки, Вы получаете все ее минусы:

  • трата времени на поиск необходимого материала (а это потерянные деньги и время). А у Вас есть лишние время и деньги?;
  • отсутствие гарантии, что Вы "осилите" данный материал, ведь пишут его, в основном, не педагоги- профессионалы, а программисты- профессионалы, а они пишут для таких же, как они. А Вы программист- профессионал?
  • отсутствие системности в скачиваемом материале (ведь человек, писавший для Вас материал, не знает, чем Вы владеете). А Вы обладаете системой знаний по Delphi?;

5. Стоимость обучения одного месяца в ЦПИ "Эверест" сравнима с ценой хорошей книги. Но часто ли Вам попадались книги, рассчитанные именно на Вас. Мы же работаем индивидуально.
6. Автор книги или магазин не несет никакой ответственности за то, поняли ли Вы материал или нет, мы же закрепляем за каждым курсантом преподавателя, курирующего Вас.
7. Освоив программирование в Delphi - Вы освоите:

  • основы настоящего программирования- структурного и процедурного программирования ;
  • систему работы с базами данных и SQL- запросами, а это одно из самых перспективных направлений в программировании;
  • язык программирования ObjectPascal, что позволит Вам легко перейти, при желании, на С или Паскаль;
  • работу с компьютерной графикой;
  • при желании - основы низкоуровневого программирования ( Ассемблер).

8. А это значит, что …Мы предлагаем получить "высшее образование" - профессию программиста всего за 1 год и 144 доллара, любой ВУЗ попросит в 3 раза больше за один только семестр.
9. Вы получаете самый практический курс в сети, поскольку теория дается только тогда, когда она действительно необходима…
10. Учиться у нас легко и просто. Весь материал доступен и простым людям, не имеющим никогда дел с программированием….


По всем вопросам обращайтесь ко мне.

Если вы встретили в интернете интересный сайт или статью, да и вообще, что угодно связанное с Delphi, поделитесь ссылкой.
Если можете написать статью связанную с Delphi - присылайте с радостью выложу.
Давайте поможем друг другу!  Архив рассылки.

Предложения, критику и пожелания пишите на e-mail.


В избранное