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

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


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

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

Выпуск № 706
от 13.01.2007, 21:35

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


Вопрос № 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-соединение, кроме создания трафика, другим способом проблему решить невозможно в силу конструкции и прошивки терминала.
Заранее благодарен.
С уважением Павел Форсман.
Отправлен: 08.01.2007, 05:25
Вопрос задал: Форсман Павел Вячеславович (статус: 2-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: 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
Здравствуйте эксперты.
Расскажите пожалуйста, как занести программу в автозапуск реестра?
Отправлен: 08.01.2007, 17:11
Вопрос задал: Танасюк Олег Олегович (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ivanich
Здравствуйте, Танасюк Олег Олегович!
примерно так!

Приложение:

Ответ отправил: Ivanich (статус: 6-ой класс)
Ответ отправлен: 08.01.2007, 17:21

Отвечает: Alexanderus
Ответ удален, т.к. не является ответом по тематике рассылки.
Помещен в ветку форума "Удаленные ответы для обсуждения".
Alexey G. Gladenyuk
Ответ отправил: Alexanderus (статус: 3-ий класс)
Ответ отправлен: 08.01.2007, 19:23

Отвечает: W@NDeReR
Здравствуйте, Танасюк Олег Олегович!

uses
Registry;

procedure TForm1.FormCreate(Sender: TObject);
var
regini:TRegIniFile;
begin
Regini:=TRegIniFile.Create('Software');
Regini.RootKey:=HKEY_LOCAL_MACHINE;
Regini.OpenKey('Software', true);
Regini.OpenKey('Microsoft', true);
Regini.OpenKey('Windows', true);
Regini.OpenKey('CurrentVersion', true);
Regini.WriteString('Run', 'MyProg.exe', Application.ExeName);
Regini.Free;
end;
Ответ отправил: 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


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

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

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

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

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

В избранное