Вопрос № 69961: Здравствуйте, уважаемые Эксперты!!!
Поздравляю всех с наступившими праздниками!!!
Суть моего вопроса следующая:
Для предотвращения разрыва связи каждый определенный промежуток времени пингуется определенный узел чтобы сыммитировать сетеву...Вопрос № 69979: Здравствуйте, уважаемые эксперты!
Я 2-й день изучаю Delphi и вот у меня возникли вопросы.
Мне необходимо выполнить такое задание:
Создать проект, содержащий 3 кнопки со следующими функциями:
1-я кнопка
переключает видимость 2-й и...Вопрос № 70009: Здравствуйте эксперты.
Расскажите пожалуйста, как занести программу в автозапуск реестра?
...Вопрос № 70046: Уважаемые эксперты, подскажите как работать с alphaskins, а точнее как корректно установить бесплатную версию, предназначенную для русских населения
Сам пытался ставить по разному, но Delphi постоянно ругается и говорит что не может найти определ...
Вопрос № 69.961
Здравствуйте, уважаемые Эксперты!!!
Поздравляю всех с наступившими праздниками!!!
Суть моего вопроса следующая:
Для предотвращения разрыва связи каждый определенный промежуток времени пингуется определенный узел чтобы сыммитировать сетевую активность. На форме соответственно таймер и ICMP компонент Indy (Delphy 7). При использовании Ping и отключенном соединении выводится ошибка "EIdSocketError 'Socket Error #10065 No route to host'". Пробовал использовать try - не помогаетб более того ошибка вида EIdSocketError вообще неизвестна (Unknown Identifier). Соответственно вопрос - что я неправильно делаю? Как проверить
заранее возможность использования ping или применить какую либо конструкцию? Подобная ситуация критична - предполагается, что программа при принудительном разрыве соединения будет завершаться автоматически притом без ошибки :-)
Используется GPRS-соединение, кроме создания трафика, другим способом проблему решить невозможно в силу конструкции и прошивки терминала.
Заранее благодарен.
С уважением Павел Форсман.
Отвечает: sir henry
Здравствуйте, Форсман Павел Вячеславович!
Можно для проверки связи применять два способа:
1) Использовать имеющуюся в ОС команду ping с перенаправлением ответа в текстовый файл. Потом его открыть, прочитать строчки и в случае если будут найдены строки типа "Заданный узел недоступен" или "Превышен интервал ожидания для запроса", значит соединение с узлом отсутствует (если таких сообщений 3 или 4), либо связь неустойчивая (если таких сообщений 1 или 2).
ShellExecute(0, 'open', 'ping', '> answer.txt', NIL, SW_HIDE);
2) При использовании idICMP, для отлова ошибок у Вас должен быть подключен модуль IdException, в котором описаны классы ошибок для Indy. Попробуйте явным образом указать его в Вашей строке Uses.
Кроме того, Вы можете просмотреть после посылки ping'а свойство ReplyStatus, в который заносится ответ пингуемого Вами компьютера. При этом класс ошибки можно не указывать, а обойтись обычным Try .. Exception: Try
IdICMP.Ping; Exception
ShowMessage('Караул!!! Связь развязалась!!!"); End;
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 08.01.2007, 09:46
Вопрос № 69.979
Здравствуйте, уважаемые эксперты!
Я 2-й день изучаю Delphi и вот у меня возникли вопросы.
Мне необходимо выполнить такое задание:
Создать проект, содержащий 3 кнопки со следующими функциями:
1-я кнопка
переключает видимость 2-й и 3-й (видна только одна из кнопок по очереди);
2-я кнопка (учесть реальные ограничения, связанные с размером формы)
сдвигает первую на 10 пикселей вниз;
3-я кнопка
перебирает тип курсора;
Щелчок на форме и <ALT-I> восстанавливают начальное состояние.
Двойной щелчок и <ALT-X>- закрывают форму.
Для каждой кнопки определить подсказку (Hint).
Пока получилось только со 2-й. (см. прил.) Как реализовать остальное просто не знаю. В учебном пособие про это ничего не говорится.
И еще один вопрос:
Как поменять местами строки и столбцы массива так, чтобы минимальный элемент находился в правом верхнем углу?
Когда-то на Паскале проходили сортировку массивов. Как это осуществляется в Delphi?
Приложение:
Отправлен: 08.01.2007, 12:28
Вопрос задала: Аленка (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ivanich
Здравствуйте, Аленка!
см. приложение!
Каждый обрботчик в название содержит название метода, к которому он должен быть назначен. (Например: "procedure Button1Click(Sender:TObject);" должен быть назначен методу OnClick компонента Button1)
Теперь что касается массива.
допустим у тебя есть массив:
var
Ar:array [0..15, 0..15] of Byte;
алгоритм будет выглядеть так (предполагается что массив инициализирован)
procedure Sort;
var
i, j, k, l, n, m:Byte;//Çà÷åì òðàòèòü ïàìÿòü!
begin
for j:=0 to 15 do
for i:=15 downto 0 do //ïåðåáîð ìàññèâà íà÷èíàÿ ñ ïðàâîãî âåðõíåãî óãëà è çàêàí÷èâàÿ ëåâûì íèæíèì
begin
for l:=j to 15 do
begin
if l=j then n:=i-1 else n:=15;
if n=$FF then n:=0;
for k:=n downto 0 do
begin
if Ar[i, j]>Ar[k, l] then
begin
m:=Ar[i, j];
Ar[i, j]:=Ar[k ,l];
Ar[k, l]:=m;
end
end;
end;
end;
end;
Приложение:
Ответ отправил: Ivanich (статус: 6-ой класс)
Ответ отправлен: 08.01.2007, 16:30
Вопрос № 70.009
Здравствуйте эксперты.
Расскажите пожалуйста, как занести программу в автозапуск реестра?
Отвечает: Ivanich
Здравствуйте, Танасюк Олег Олегович!
примерно так!
Приложение:
Ответ отправил: Ivanich (статус: 6-ой класс)
Ответ отправлен: 08.01.2007, 17:21
Отвечает: Alexanderus
Ответ удален, т.к. не является ответом по тематике рассылки.
Помещен в ветку форума "Удаленные ответы для обсуждения". Alexey G. Gladenyuk
Ответ отправил: Alexanderus (статус: 3-ий класс)
Ответ отправлен: 08.01.2007, 19:23
Отвечает: W@NDeReR
Здравствуйте, Танасюк Олег Олегович!
Ответ отправил: W@NDeReR (статус: 1-ый класс)
Ответ отправлен: 09.01.2007, 12:37
Вопрос № 70.046
Уважаемые эксперты, подскажите как работать с alphaskins, а точнее как корректно установить бесплатную версию, предназначенную для русских населения
Сам пытался ставить по разному, но Delphi постоянно ругается и говорит что не может найти определенные файлы
Отправлен: 08.01.2007, 21:06
Вопрос задал: Tribak (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Ivanich
Здравствуйте, Tribak!
Сорее всего тебе надо по следующему пути прописать путь к папке, в которую распаковал компонент
Main Menu>Project>Options>Directories/Conditionals>Search Path
Попробуй. У меня всегда после этого все работало!
Ответ отправил: Ivanich (статус: 6-ой класс)
Ответ отправлен: 08.01.2007, 21:25
Отвечает: Coupler
Здравствуйте, Tribak!
Нужно скачать пакет, адаптированный для Вашей версии delphi. У меня D6. Распаковать (желательно набрать пароль правильно и с первого раза :)) в папку, в пути к которой нет пробелов (это требование многих компонентов). В папке, соответствующей версии delphi, лежат 2 dpk-файла: уменя это acntD6.dpk и acntD6_r.dpk. Нужно открыть первый из них (т.к. второй - runtime) и установить. Потом можно поставить DB компоненты, с ними все просто. В конце нужно либо прописать путь к папке с dcu и прочим в опциях проекта, как
Вам сказал предыдущий эксперт, либо скопировать все в папку, известную delphi (например, imports). Если что-то не пойдет, сообщите в мини-форум версию delphi и файлы, которые она не может найти, и когда это происходит - во время установки (т.е. компоненты вообще не устанавливаются), или когда Вы пытаетесь скомпилировать приложение с alphaskins на форме.
Удачи!
Ответ отправил: Coupler (статус: Студент)
Ответ отправлен: 09.01.2007, 06:21