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

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


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

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

Выпуск № 639
от 03.11.2006, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 401, Экспертов: 67
В номере:Вопросов: 2, Ответов: 6


Вопрос № 60509: Здравствуйте. Подскажите пожалуйсто, как сделать так называемое окно приветствия в программе, т.е. до появления и полной загрузки главной формы вывести окно с ProgressBar, в которой будет отображаться статус запуска программы. ЗЫ естественно пос...
Вопрос № 60530: как определить наличие (присутствие) компьютера с определенным IP адресом в сети ...

Вопрос № 60.509
Здравствуйте. Подскажите пожалуйсто, как сделать так называемое окно приветствия в программе, т.е. до появления и полной загрузки главной формы вывести окно с ProgressBar, в которой будет отображаться статус запуска программы.
ЗЫ естественно после полного появления главной формы окно закрывается.
Заранее спасибо.
Отправлен: 29.10.2006, 02:26
Вопрос задал: Глеб (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: DeVampir
Здравствуйте, Глеб!
Добавьте в проек еще одну форму, уберите у нее границы, поставьте красивую картинку, ProgressBar и все что душе угодно. В свойствах проекта поставьте, чтоб при запуске приложения показывалась именно это форма. А основную форму делайте невидимой, пока она не загрузится. Как только это произойдет (загрузка закончится) - меняйте видимости у форм (форму приветствия можно вообще очистить, чтоб память не занимала). Вот в принципе и весь алгоритм... Удачи!!!
---------
Нам будет трудно - это терпимо! (с) М. Горшенев
Ответ отправил: DeVampir (статус: 3-ий класс)
Ответ отправлен: 29.10.2006, 06:07

Отвечает: Monah
Здравствуйте, Глеб!
Ответ DeVampir не правильный. Так как в этом случае форма, созданная первой, ассоциируется с самим приложением, если ее убрать, как советует DeVampir, то после закрытия окна приветствия, закроется и приложение. Созадете новую форму, устанавливаете на ней все что нужно. В свойствах проекта (меню Project/options) Вкладка Forms находите вашу вторую форму и двойным кликом переносите её в правое окно, форма не будет создаваться автоматически . Затем в файле *.dpr меняете см приложение.

Приложение:

Ответ отправил: Monah (статус: 6-ой класс)
Ответ отправлен: 29.10.2006, 16:20

Отвечает: Gladiator
Здравствуйте, Глеб!
MyProgram.dpr :

program MyProgram;

uses
Forms,
Main in 'Main.pas' {MainForm},
Splash in 'Splash.pas' {SplashForm};

begin
try
SplashForm := TSplashForm.Create(Application);
SplashForm.Show;
SplashForm.Update;
SplashForm.Hide;
finally
SplashForm.Free;
end;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

Splash.pas :

procedure TSplashForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose := <здесь условие выхода из окна приветствия>;
end;

procedure TSplashForm.FormHide(Sender: TObject);
begin
repeat
Application.ProcessMessages;
until SplashForm.CloseQuery;
end;
Ответ отправил: Gladiator (статус: 5-ый класс)
Ответ отправлен: 30.10.2006, 08:34

Отвечает: PaVeL_Ekt
Здравствуйте, Глеб!

Попробуй эту форму запускать так:

procedure TForm1.FormCreate(Sender: TObject);
begin
OkBottomdlg:=TOkBottomdlg.Create(nil); // окно диалога, но можно и форму
OkBottomdlg.ShowModal;
end;

Приложение:

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL

Ответ отправил: PaVeL_Ekt (статус: 5-ый класс)
Ответ отправлен: 30.10.2006, 10:07


Вопрос № 60.530
как определить наличие (присутствие) компьютера с определенным IP адресом в сети
Отправлен: 29.10.2006, 08:49
Вопрос задал: Alex_CRG (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: sir henry
Здравствуйте, Alex_CRG!
Единственный надежный способ - пропинговать этот IP.
У компонента Indy TIdIcmpClient есть метод Ping, который посылает эхо-сигнал в сеть по указанному адресу. В событии OnReply записывается обработчик в зависимости от того, получен сигнал ответа или нет.
Ответ отправил: sir henry (статус: Академик)
Россия, Красноярск
----
Ответ отправлен: 29.10.2006, 10:07
Оценка за ответ: 5

Отвечает: Bob Johnson
Здравствуйте, Alex_CRG!
не согласен, пинг - это совсем ненадежный способ. можно запретить пинг файерволом и все...
перед тем как решать эту задачу надо убедить себя в том, что 100% надежного способа нет.
далее я бы попробовал arp (т.е. послать arp запрос на определение mac адреса по данному ip). обычно на arp отвечает только тот компьютер, чей ip ты укажешь в запросе. блокировать arp смысла нет, т.к. иначе компьютеру вообще ничего никто послать не сможет, и его наличие в сети смысла иметь не будет. но возможна ситуация, когда на arp ответит и чужой компьютер (хотя это бывает редко и требует очень специфической настройки этого компьютера и применения доп. по)
ну и конечно можно просканировать порты. только большинство файерволов воспринимают это как атаку и отключают сканирующий компьютер вообще.
так что в конечном счете необходимо сначала провести анализ компьютера, наличие которого тебя интересует на предмет служб и т.п. (например, пингуется он или нет), а затем уже использовать выбранный на основе этого метод.
Ответ отправил: Bob Johnson (статус: Академик)
Россия, Калуга
WWW: Программирование
----
Ответ отправлен: 29.10.2006, 14:04
Оценка за ответ: 5


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

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

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

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

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала 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.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное