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

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


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

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

Выпуск № 452
от 23.04.2006, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 315, Экспертов: 65
В номере:Вопросов: 9, Ответов: 19


Вопрос № 40537: Здравствуйте уважаемые Эксперты. Использую Delphi 7(англ). В данный момент разрабатываю небольшую програмку складского учета (IB) Во время разработки часто приходиться запускать приложение (F9). Прога работает без ошибок(пока), но во время закрыт...
Вопрос № 40546: 2 вопроса 1. Как сделать в ProgressBar'e (по середине) допол. индикатор показывающий текущий процент? Я попробовал это сделать через Label помещённый поверх ProgressBar'а (по его середине), но проблема в том что, он не показывается на экране ...
Вопрос № 40547: Вопрос. Как сделать в Delphi так чтобы при запуске программы (в самом начале) она вычисляла что-то только один раз, без вмешательства пользователя, "автоматом"? Перейдём к примерам. На Турбо Паскале это делается так: BEGIN<b...
Вопрос № 40557: Здравствуйте, эксперты! Я делаю чат на основе TTcpServer и TTcpClient. Он разбит на сервера и клиентов. Клиенты работают превосходно, а TcpServer на сервере не ловит входящие сообщения. Подскажите, в чем ошибка?...
Вопрос № 40567: Я уже задавал вопрос...но ответов не последовало:) Задам ещё разок. Вопрос: Где можно раздобыть копоненты и шкурки для написания игры на Delphi. На torry.net ничего путевого не нашел (ну несчитая компонентов и шкурок для карточных игр).....
Вопрос № 40575: Доброго времени суток, уважаемые эксперты. Возникла необходимость написать маленькую справку к программе с запуском ее из под программы. Подскажите, как лучше реализовать сею необходимость. Если можно с примерами. Заранее благодарен. ...
Вопрос № 40583: Здравствуйте уважаемые эксперты!!!! Я начинающий программист (правда самоучка),но стремлюсь им стать.Буду рад любой инфе по работе с com-портами,с битами,с функциями,с процедурами,написанию библиотек и любой инфе по программированию в делфи....
Вопрос № 40594: Здравствуйте! Мне надо написать программу которая перед упаковкой файла проверит его на вирусы. Неподскажете как это сделать(именно проверку на вирусы в самой программе)? Есть ли в дельфи компонент типа антивирус, или что то в этом роде? ...
Вопрос № 40639: Здравствуйте! У меня вот какой вопрос: в окне приложения есть браузер; если в тексте загруженной страницы есть некоторое выражение(указанное), или всвязи с ошибкой соединения (сервер не найден), чтобы возвращалось на страницу назад....

Вопрос № 40.537
Здравствуйте уважаемые Эксперты.
Использую Delphi 7(англ). В данный момент разрабатываю небольшую програмку складского учета (IB) Во время разработки часто приходиться запускать приложение (F9). Прога работает без ошибок(пока), но во время закрытия Delphi возникает ошибка Access violation at address 02FC1C10. Read of address 02FC1C10. Сообщение об ошибке можно снять только через Таск менеджер. Так вот вопрос: Это я в коде что-то напортачил или это глюк дельфи?

Приложение:

Отправлен: 17.04.2006, 15:45
Вопрос задал: Дмитрий Александрович (статус: 1-ый класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Delphin
Здравствуйте, Дмитрий Александрович!
У меня тоже самое. Это глюк Delphi. Вернее не самого Delphi, а компонентов который установлены. Не обращай внимания ;-)
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Delphin (статус: Студент)
Ответ отправлен: 17.04.2006, 15:49
Оценка за ответ: 5
Комментарий оценки:
Спасибо! А в Д2005 такой глюк имеется?

Отвечает: Ataman N. N.
Здравствуйте, Дмитрий Александрович!
К большому сожалению, этот "глюк" не только у Вас.
Ответ отправил: Ataman N. N. (статус: 10-ый класс)
Ответ отправлен: 17.04.2006, 17:35
Оценка за ответ: 5
Комментарий оценки:
Спасибо! А интерестно спасет ли переход на Д2005?

Отвечает: Bochvarov NikB
Здравствуйте, Дмитрий Александрович!
Встав точка перерьива (break point) последнего end-а в проект файл и, когда при закритие проги остановишся туда - начни вьиполнение с F7.
Будет лучше, если настроиш опции дебъгинг и встроеньих dcu.
Сам увидеш, что делает твоя прога при окончании.
Удача!

ПП
Да здравствуют модераторьи форума!
Ответ отправил: Bochvarov NikB (статус: 7-ой класс)
Ответ отправлен: 17.04.2006, 17:38
Оценка за ответ: 3
Комментарий оценки:
Прога сама рабртает без ошибок. Ошибка при закрытии Дельфи.


Вопрос № 40.546
2 вопроса
1. Как сделать в ProgressBar'e (по середине) допол. индикатор показывающий текущий процент?
Я попробовал это сделать через Label помещённый поверх ProgressBar'а (по его середине), но проблема в том что, он не показывается на экране во время движения полоски. Только в конце цикла, конечный результат. Наверно слишком большая скорость компа не позволяет это сделать.
Он не успевает показывать результат (в %, 100*I/Max). Где I - текущий показатель "бегунка" полоски.
А может есть какой-нибудь компонент для Delphi 7 с дополнительнымии наворотами?
Мне бы хотелось (мало чего я хочу) как в старое время было, я помню.
В кое-каких игрушках это было реализовано (например, в UFO:Apocalipse, при установке игры на диск).
Хотелось бы видеть непосредственно какой текущий процент идёт в расчётах.
И плюс это красиво.

2. Давно хотел спросить. Не помню как поместить компонент поверх другого, не во внутр, а поверх.
Галиматья какая-то, да? Ладно, спрошу по другому.
ПРи создании (размещении) компонента на Form1'e я как-то раз по правой кнопки "мышки", в меню, видел (глюк, наверно, был. Не у компа - у меня) типа "поместить поверх другого". Вот теперь не знаю, правда это можно сделать или всё-таки это был глюк?
Например, частично заслонённый ProgressBar, поверх которого другой компонент расположен (например, Label).
Только не спрашивайте у меня, "зачем мне это нужно". Пример см. 1 вопрос.

Заранее спасибо всем.

P.S. Кстати, а почему Вы мне сразу не сказали что можно записать текст помощи непосредственно в поле Memo1?
А точнее в Memo1.String.
Туда, оказывается, можно пометить довольно большой текст и просматривать по мере надобности.
Просто и эффективно. И всё в 1 файле. Не нужно создавать отдельно файл помощи (*.txt) или то подобное, а потом ещё читать его с диска в Memo. Лубуда, какая-то.
Отправлен: 17.04.2006, 17:07
Вопрос задал: AlexD (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, AlexD!
См. прикреплённый файл. ALProgressBar - как раз то, что нужно. Легко настраивается, имеет приятный вид.

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.

Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 17.04.2006, 17:29

Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, AlexD!

по второму вопросу

Компонент поверх другого можно положить 2 способами:
1. Delphi 6 и выше - на палитре выбираетет компонент и щелкаете мышью в Object TreeView (обычно располагается над Object Inspector) на родителя того компонента, поверх которого хотите положить новый (например, форму).
2. кладете компонент на свободном от других компонентов месте формы, в контекстном мею выбираете Control - Bring to Front и передвигаете на нужное место.
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 2-ой класс)
Ответ отправлен: 17.04.2006, 18:02

Отвечает: Mo-skin
Здравствуйте, AlexD!
Попробуй лучше вместо ProgressBar использовать Gauge (вкладка Samples)!
Там сразу с процентами, ничего придумывать не надо,
и можно сменить цвет(и мн. др.).
Только вместо TrackBar1.Position там Gauge1.Progress .
---------
Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 1-ый класс)
Ответ отправлен: 17.04.2006, 18:57

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, AlexD!
Есть классный набор компонент Raize - так там и прогрессбар и другие компоненты "доработанные", причем с симпатичным интерфейсом.
Где скачать не помню, www.ya.ru вам в помощь :)
Скачай, оно того стоит...
---------
Ответы на все вопросы - на сайте www.ya.ru :)
Ответ отправил: Устинов Сергей Евгеньевич (статус: 4-ый класс)
Ответ отправлен: 17.04.2006, 21:43

Отвечает: Igp
Здравствуйте, AlexD!
1) Было бы неплохо в процессе цикла апдейтить лейбу или использовать TGauge.
2) Есть такое :) ПКМ -> Control -> Bring to Front
Ответ отправил: Igp (статус: 1-ый класс)
Ответ отправлен: 17.04.2006, 23:06


Вопрос № 40.547
Вопрос.
Как сделать в Delphi так чтобы при запуске программы (в самом начале) она вычисляла что-то только один раз, без вмешательства пользователя, "автоматом"?
Перейдём к примерам.
На Турбо Паскале это делается так:
BEGIN
r1:=функция1();r2:=функция2();r3:=функция3(); { Вычисляется ЭТО и больше к ЭТОМУ не возвращается }
{ --- Далее идёт основная программа --- }
...; ...; ...;
END.

2. Ещё 1 вопросик не большой.
Никак не могу сделать цвет текста на кнопке. Он по прежнему рисуется "Чёрным" цветом.
Я правильно делаю, указываю в свойствах:
Button1.Font.Color - далее указываю цвет
У меня стоит "Синий" цвет, а он рисуется "Чёрным" в программе.
Почему?
Отправлен: 17.04.2006, 17:10
Вопрос задал: AlexD (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, AlexD!
1) Дважды щёлкните по пустому пространству на форме - откроется редактор кода на событии Form.OnCreate(). Там и напишите всё, что нужно. Событие OnCreate() вызывается только один раз - при создании формы.
2) Это происходит потому что компоненты рисует Windows, а все цвета зарезервированы. Чтобы иметь возможность изменять цвет шрифта, воспользуйтесь кнопкой TBitBtn (вкладка Additional). А изменять цвет шрифта следует так:

BitBtn1.Font.Color := clBlue;


---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 17.04.2006, 17:18

Отвечает: Bochvarov NikB
Здравствуйте, AlexD!
На 1:
А тьи пробовал начать въполнение не с F9, а с F7 или F8, примерно?
Сам удивишся что делат Делфи перед запуск твою прогу.
И (для тебе будет лучше) можеш поставит свой код в dpr файл, после begin, до Application.Run

Вот я покажу тебе, что делает моя прога:

Приложение:

Ответ отправил: Bochvarov NikB (статус: 7-ой класс)
Ответ отправлен: 17.04.2006, 17:46

Отвечает: Igp
Здравствуйте, AlexD!
1. Вставляй этот код либо в onCreate главной формы или в файл проекта (.dpr)
2. Пользуй TBitBtn
Ответ отправил: Igp (статус: 1-ый класс)
Ответ отправлен: 17.04.2006, 23:11


Вопрос № 40.557
Здравствуйте, эксперты!
Я делаю чат на основе TTcpServer и TTcpClient. Он разбит на сервера и клиентов. Клиенты работают превосходно, а TcpServer на сервере не ловит входящие сообщения. Подскажите, в чем ошибка?

Приложение:

Отправлен: 17.04.2006, 18:50
Вопрос задал: Томша Павел (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bochvarov NikB
Здравствуйте, Томша Павел!

А мне приходится работать с вот ето собьития. Может бьит твой сокет умнее?
ServerSocket1.OnListen := ServerListen;
ServerSocket1.OnClientConnect := SocketConnect;
ServerSocket1.OnClientDisconnect := SocketDisconnect;
ServerSocket1.OnClientRead := SocketRead;
ServerSocket1.OnClientError := SocketError;{}
Ответ отправил: Bochvarov NikB (статус: 7-ой класс)
Ответ отправлен: 17.04.2006, 19:13
Оценка за ответ: 4
Комментарий оценки:
В других моих проектах это работало...


Вопрос № 40.567
Я уже задавал вопрос...но ответов не последовало:)
Задам ещё разок.
Вопрос:
Где можно раздобыть копоненты и шкурки для написания игры на Delphi. На torry.net ничего путевого не нашел (ну несчитая компонентов и шкурок для карточных игр)...а охота написать какой нить арканоид или batte tank...вобще господа эксперты...пошлите меня куда нить...только не на три буквы...:)
Отправлен: 17.04.2006, 20:26
Вопрос задал: Denton (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Злоумышленник
Здравствуйте, Denton!
А умеешь ли ты пользоваться Rambler'om?
http://caspersoft2.narod.ru/delphisurse.htm
исходник http://caspersoft2.narod.ru/archive/arcanoid.rar
Ответ отправил: Злоумышленник (статус: 6-ой класс)
Ответ отправлен: 17.04.2006, 20:42
Оценка за ответ: 5
Комментарий оценки:
пасиб


Вопрос № 40.575
Доброго времени суток, уважаемые эксперты.
Возникла необходимость написать маленькую справку к программе с запуском ее из под программы. Подскажите, как лучше реализовать сею необходимость. Если можно с примерами.

Заранее благодарен.
Отправлен: 17.04.2006, 21:39
Вопрос задал: Алексеев Александр Владимирович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mo-skin
Здравствуйте, Алексеев Александр Владимирович!

1.На сайте http://www.helpandmanual.com (на английском языке) есть все, что надо для прикручивания и создания chm-справки.

2.Если надо создать окно «О программе» как у Блокнота, то:
В разделе uses добавить ShellAPI

ShellAbout(0, 'Мое приложениe', 'Я', LoadIcon(0, IDI_INFORMATION));

или

ShellAbout(0, 'Мое приложениe', 'Я', Application.Icon.Handle);

3. Используйте Microsoft Help Workshop. Он расположен в папке DelphiHelpTools и позволяет создавать hlp файлы.

Большими возможностями обладает программа Help & Manual www.ec-software.com.

---------
Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 1-ый класс)
Ответ отправлен: 17.04.2006, 22:02
Оценка за ответ: 5


Вопрос № 40.583
Здравствуйте уважаемые эксперты!!!!

Я начинающий программист (правда самоучка),но стремлюсь им стать.Буду рад любой инфе по работе с com-портами,с битами,с функциями,с процедурами,написанию библиотек и любой инфе по программированию в делфи.

И еще маленький вопросик:

У меня программа создает файлы,как сделать что при закритии программы она их удаляла и показывала ,что типо идет удаление временных файлов.

Зарание спасибо!!!!!

С уважением!!!!!
Отправлен: 17.04.2006, 23:31
Вопрос задал: Lamer_Brother (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Mo-skin
Здравствуйте, Lamer_Brother!
Хочется сразу и всего? Да...
1. Так... ладно, биты:
Есть два способа.
Hизкоуровневый подход обеспечивается логическими операциями :

var
I : integer;
N : integer; // Hомер бита в диапазоне от
0..SizeOf(TYPE)*8 — 1

I := I or (1 shl N); // установка бита
I := I and not (1 shl N); // сброс бита
I := I xor (1 shl N); // инверсия бита
if (i and (1 shl N)) <> 0 then… // проверка установленного бита

Высокоуровневый подход опирается на представление числа в виде множества:

type
TIntegerSet = set of 0..SizeOf(Integer)*8 — 1;
var
I : Integer;
N : Integer;

Include(TIntegerSet(I), N); // установили N-ный бит в 1
Exclude(TIntegerSet(I), N); // сбросили N-ный бит в 0
if N in TIntegerSet(I) then
2. Далее...
Интернетпоисковикdelphi
в инете огромное кол-во инфы поэтому поводу!
3.По поводу удаления файлов:
есть такой древний метод (в наследство от Turbo Pascal):
объявляешь переменную типа файл( var f:file)
далее связываешь ее с конкретным файлом( AssignFile(f,'C:WindowsMyFile.dat'));
а затем стираешь его (Erase(f))
4. Задавай вопросы конкретнее!
---------
Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 1-ый класс)
Ответ отправлен: 18.04.2006, 00:01

Отвечает: AnD1
Здравствуйте, Lamer_Brother!
Могу порекомендовать только ссылки (вообще по Delphi)
delphikingdom.com
delphi.int.ru
delphimaster.ru
delphiworld.narod.ru
vr-online.ru
ну а на вопрос Вам уже ответили ;)

Ответ отправил: AnD1 (статус: 4-ый класс)
Ответ отправлен: 18.04.2006, 18:11


Вопрос № 40.594
Здравствуйте!
Мне надо написать программу которая перед упаковкой файла проверит его на вирусы. Неподскажете как это сделать(именно проверку на вирусы в самой программе)?
Есть ли в дельфи компонент типа антивирус, или что то в этом роде?

Приложение:

Отправлен: 18.04.2006, 06:40
Вопрос задал: KuchumHan (статус: Студент)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Delphin
Здравствуйте, KuchumHan!
Таких компонентов нету и не будет. Разработкой антивирусов занимаются целые компании. Ты только можеш запустить внешнйи антивирус для проверки файлов.
Почитай на сайте антивируса.
А если сам хочеш проверять то тебе нужно будет написать анализатор.
Например какие-то опасные функции и известные алгоритмы определял чтобы.
---------
Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Ответ отправил: Delphin (статус: Студент)
Ответ отправлен: 18.04.2006, 13:40
Оценка за ответ: 4
Комментарий оценки:
Какой функцией запустить антивирусник, не в курсе?

Отвечает: Boriss
Здравствуйте, KuchumHan!
А зачем "париться"? - ShellExecute или CreateProcess (WinExec) - лучшее решение проблемы - делайте такие вещи "внешними" программами
---------
Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Россия, Саранск
Организация: факультет Электронной техники, Мордовский госуниверситет
Адрес: г. Саранск
WWW: Программирование на Паскале
----
Ответ отправлен: 18.04.2006, 14:22


Вопрос № 40.639
Здравствуйте!
У меня вот какой вопрос:
в окне приложения есть браузер; если в тексте загруженной страницы есть некоторое выражение(указанное), или всвязи с ошибкой соединения (сервер не найден), чтобы возвращалось на страницу назад.
Отправлен: 18.04.2006, 14:51
Вопрос задал: Клишов Илья Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: AnD1
Здравствуйте, Клишов Илья Александрович!
Например так (см прил)

Приложение:

Ответ отправил: AnD1 (статус: 4-ый класс)
Ответ отправлен: 18.04.2006, 18:24


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.30 (beta) от 09.04.2006
Яндекс Rambler's Top100

В избранное