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

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


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

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

Выпуск № 450
от 21.04.2006, 14:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 308, Экспертов: 64
В номере:Вопросов: 10, Ответов: 14


Вопрос № 40362: Добрый день уважаемые эксперты. Помогите решить вопрос передачи данных через USB кабель между двумя компьютерами. Заранее благодарю за любую информацию....
Вопрос № 40364: Как сделать чтобы издавался звук с частотой Herz (в Гц)? Нужно сделать процедуру: procedure Sound(Herz:Word);...
Вопрос № 40383: Доброго времени суток. Как можно получить из cgi приложения данные в html страницу? (типа счётчика посещений, только текстового) :)...
Вопрос № 40393: Как заставить программу подключаться к другому компу через сеть, но не по IP, а по имени компа например KL1_RMU_3...
Вопрос № 40404: Доюрого времени суток! У меня такой вопрос: я через мой проект запускаю форму из dll файла, а форму проекта убираю функцией form1.hide;, но я замечаю когда я закрываю форму из dll приложение остается в памяти и я ничего сделать не могу. Не подскажите...
Вопрос № 40407: Здраствуйте!!! Подскажите, что лучше использовать в приложении типа клиент-сервер (чат) сокеты или есть что-то лучше? Может на один сокет сервера коннектиться множество клиентов со своими сокетами, или надо для ка ждого клиента создавать свой сокет на...
Вопрос № 40414: Уважаемые Эксперты, подскажите пожалуйста. Я делфи знаю на уровне "1-го класса", но продвигаюсь с большими темпами. У меня при написании программы возникли такие проблемы: 1-я) необходимо вернуть с функции массив типа double или real (не ва...
Вопрос № 40428: Здравствуйте. Как сделать чтобы вертикальную полоску прокрутки в ScrollBar'е можно было бы крутить колесиком? ...
Вопрос № 40429: Здравствуйте. Как сделать чтобы вертикальную полоску прокрутки в ScrollBar'е можно было бы крутить колесиком мыши? ...
Вопрос № 40442: Как отключить CD-Rom: заблокировать дверцу и уже вставленные диски не читаются....

Вопрос № 40.362
Добрый день уважаемые эксперты. Помогите решить вопрос передачи данных через USB кабель между двумя компьютерами. Заранее благодарю за любую информацию.
Отправлен: 15.04.2006, 15:45
Вопрос задал: Коваленко А.В. (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: AnD1
Здравствуйте, Коваленко А.В.!
Посмотрите здесь: http://www.oszone.net/display.php?id=1387
Ответ отправил: AnD1 (статус: 4-ый класс)
Ответ отправлен: 15.04.2006, 20:25
Оценка за ответ: 4


Вопрос № 40.364
Как сделать чтобы издавался звук с частотой Herz (в Гц)?
Нужно сделать процедуру:
procedure Sound(Herz:Word);
Отправлен: 15.04.2006, 15:47
Вопрос задал: AlexD (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, AlexD!
В Windows есть эта функция. Вот как её использовать:

procedure TForm1.Button1Click(Sender: TObject);
begin
Windows.Beep(1000,500);
end;


Естественно, модуль Windows.pas должен быть подключён.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 15.04.2006, 15:53


Вопрос № 40.383
Доброго времени суток. Как можно получить из cgi приложения данные в html страницу? (типа счётчика посещений, только текстового) :)
Отправлен: 15.04.2006, 19:25
Вопрос задал: Maloi (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: AnD1
Здравствуйте, Maloi!
Очень просто. Формируете запрос к cgi скрипту (в примере метод POST), например так:
var
zapros: string;
...
zapros:='http://site.ru/script.cgi?parametr1=qwerty¶metr2=123456';
Затем с помощью компонента TWebBrowser (закладка Internet) обращаемся к скрипту:
WebBrowser1.Navigate(zapros);
И получаете в окне браузера ответ от сервера.
Ответ отправил: AnD1 (статус: 4-ый класс)
Ответ отправлен: 15.04.2006, 20:30


Вопрос № 40.393
Как заставить программу подключаться к другому компу через сеть, но не по IP, а по имени компа например KL1_RMU_3
Отправлен: 15.04.2006, 21:15
Вопрос задал: ErBep (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, ErBep!
Один из вариантов узнать IP, который соответствует данному имени компа.
Пример программы в приложении.

Классная справка по Delphi на http://delphiworld.narod.ru/ - скачай - не пожалеешь!!!

Приложение:

Ответ отправил: Устинов Сергей Евгеньевич (статус: 4-ый класс)
Ответ отправлен: 15.04.2006, 21:35

Отвечает: Bochvarov NikB
Здравствуйте, ErBep!
Дорогой, компьи конектятся не через IP, не через HostName, а через сокетьи и протокольи.
А когда конектятся, адрес может бьит указан как IP или как HostName.
Исчи инфо о сокетах (tClientSocket, tServerSocket) - желаю удачу !
Ответ отправил: Bochvarov NikB (статус: 7-ой класс)
Ответ отправлен: 15.04.2006, 23:42


Вопрос № 40.404
Доюрого времени суток! У меня такой вопрос: я через мой проект запускаю форму из dll файла, а форму проекта убираю функцией form1.hide;, но я замечаю когда я закрываю форму из dll приложение остается в памяти и я ничего сделать не могу. Не подскажите как можно после закрытия формы из dll закрыть проект!? Заранее спасибо!
Отправлен: 16.04.2006, 00:15
Вопрос задал: Грицай Алексей Юрьевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Злоумышленник
Здравствуйте, Грицай Алексей Юрьевич!
Мне кажется, проще всего в Вашем случае воспользоваться сообщениями. Т. е. при закрытии той формы, которая из dll закрывается, слать собственное сообщение (а можно и конкретному окну системное WM_QUIT), и соответственно реагировать на него как application.terminate. Конкретно рекомендовать не могу, т. к. нет кода. Собщение можно послать примерно так: PostMessage(FindWindow(Nil, 'Заголовок окна'), WM_QUIT, 0, 0);
Ответ отправил: Злоумышленник (статус: 6-ой класс)
Ответ отправлен: 16.04.2006, 08:19
Оценка за ответ: 3


Вопрос № 40.407
Здраствуйте!!! Подскажите, что лучше использовать в приложении типа клиент-сервер (чат) сокеты или есть что-то лучше? Может на один сокет сервера коннектиться множество клиентов со своими сокетами, или надо для каждого клиента создавать свой сокет на сервере? Говорят, что множество сокетов сильно кушают ресурсы. Что почитать на эту тему?
Отправлен: 16.04.2006, 00:18
Вопрос задал: Александр А.А. (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Bochvarov NikB
Здравствуйте, Александр А.А.!
К каждому серверу могут конектится множество клиентов. Нет проблем с ресурсами (Весь Интернет - ето сокетьи:).

"Недостаток" серверских сокетов является невозможност инициироват соединение (соединение начинает с клиента).
Ето не большая проблема, потому, что когда клиент однаждьи конектился - права клиента и сервера одинаковие.
Очень не часто приходитя делать клиент и сервер сокет с одной стороной и клиент и сервер сокет с другой стараной связи.

Сокетьи сомое универсялное средство, в основе Win Net связи и над ними (они в основе) ряд других компонентов (Indi и т.п.)
Ответ отправил: Bochvarov NikB (статус: 7-ой класс)
Ответ отправлен: 16.04.2006, 00:32

Отвечает: Рубан Николай Николаевич
Здравствуйте, Александр А.А.!

Попробуте воспользоваться компонентами UDPClient и UDPServer (вкладка Indy), разобраться в них я думаю будет не сильно сложно
---------
Мыслю - значит существую (Декарт)
Ответ отправил: Рубан Николай Николаевич (статус: 3-ий класс)
Ответ отправлен: 17.04.2006, 12:49


Вопрос № 40.414
Уважаемые Эксперты, подскажите пожалуйста. Я делфи знаю на уровне "1-го класса", но продвигаюсь с большими темпами. У меня при написании программы возникли такие проблемы: 1-я) необходимо вернуть с функции массив типа double или real (не важно) при этом создаю свой тип (см. приложение 1) и определяю,например, две переменные созданого мною типа. Но при изменении одной изменяються значения другой. Такое впечетление что эти переменные указывают на один и тодже адрес в памяти...Как это можно обойти или иссправить? Спросил у "Делфиста" на кафедре, то он сказал создавай свой класс типа массив и присваивай переменным этот тип, тогда будет все нормал. Но я "чайник" в этих делах. Может подскажете как мне это зделать. Если будет пример буду очень благодарен. 2-я) Таже проблемма но уже с мартицами.
Вообще занимаюсь прогнозированием с помощью ARIMA-моделей, а точнее только "подклассом" моделей - АР(p). Мне нужно рассчитать ЧАКФ и построить прогноз на несколько значений. Если кто-то из Вас с этим хотябы встречался то помогите. "Буду обязан всю жизнь!"

Приложение:

Отправлен: 16.04.2006, 02:35
Вопрос задал: Харсеев Владимир (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Злоумышленник
Здравствуйте, Харсеев Владимир Александрович!
Не видел Ваш код, поэтому пишу на основе кода, приведённого Полховским в мини-форуме. Итак:
1. Зачем определять свой тип, не проще ли без своего типа просто:
var
...
MassivData:array of double;
DiffMassivData: array of double;

2. Вы пользуетесь динамическими массивами. Нужно ли Вам это? Может быть проще
var
MassivData:array [1..6] of double;
DiffMassivData: array [1..6] of double;
И далее без всяких
setlength(massivdata, 6);
setlength(Diffmassivdata, 6);

3. После использования динамических массивв нужно освободить память:
massivdata := NIL;//и другим способом
Finalize(Diffmassivdata);
Вы это делаете?

4.Вы пишете
setlength(massivdata, 6); //затем
for k1:=1 to 5 do
massivdata[k1]:=(k1)*pi;
...
здесь k1 можно менять от 1 до 6

5. Возможно, при выходе за пределы границ первого описанного в var массива начинается запись в другой, сам не проверял, посмотрите.
Ответ отправил: Злоумышленник (статус: 6-ой класс)
Ответ отправлен: 16.04.2006, 08:40

Отвечает: Denisss

Здравствуйте, Харсеев Владимир Александрович!

У Вас в этом небольшом куске кода все выглядит правильно. Кроме того, Вы уже выполнили (как я понимаю) совет программиста с кафедры - Вы объявили свой тип - "массив типа double" (правда, не понимаю, к чему это он или может Вы написали "класс типа массив" - я на вас посмотрел бы, когда вы будете с этим программистом объявлять typeTArrayDouble = class(array of double ) - это у вас не пройдет).
Скорее всего, проблема не в том, как Вы задаете эти массивы и матрицы, а в том, как Вы их обрабатываете.

Удачи!
Ответ отправил: Denisss (статус: Специалист)
Ответ отправлен: 16.04.2006, 10:51


Вопрос № 40.428
Здравствуйте.
Как сделать чтобы вертикальную полоску прокрутки в ScrollBar'е можно было бы крутить колесиком?
Отправлен: 16.04.2006, 10:08
Вопрос задал: Denton (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Mo-skin
Здравствуйте, Denton!
Все очень просто!
Обрабатывай события OnMouseWheelDown и OnMouseWheelUp
твоей формы.

//двигаем колесо вниз
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
ScrollBar1.Position:= ScrollBar1.Position+1;
end;

//двигаем колесо вверх
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
MousePos: TPoint; var Handled: Boolean);
begin
ScrollBar1.Position:= ScrollBar1.Position-1;
end;
---------
Чем больше женщину мы меньше,- тем меньше больше мы ее!
Ответ отправил: Mo-skin (статус: 1-ый класс)
Ответ отправлен: 16.04.2006, 15:46


Вопрос № 40.429
Здравствуйте.
Как сделать чтобы вертикальную полоску прокрутки в ScrollBar'е можно было бы крутить колесиком мыши?
Отправлен: 16.04.2006, 10:08
Вопрос задал: Denton (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, Denton!
На самом деле, TScrollBar - это стандартный компонент Windows. Он прокручивается с помощью колёсика тогда, когда колесо присутствует на мыши и правильно установлен драйвер на мышь. Да, драйвер, не смейтесь :-) У меня вот мышь с двумя колёсами и двумя боковыми кнопками - так драйвер прилагается :-) Так и сейчас - на форму поместил TScrollBar, запустил - он без проблем крутиться колесом. Так что, здесь вряд ли можно что-либо сделать с помощью Delphi - это уже как Windows настроен...
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 16.04.2006, 10:13

Отвечает: Denisss

Здравствуйте, Denton!

Вот пример, как это можно реализовать:

// Form1.OnMouseWheelDown
procedure TForm1.FormMouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  with
ScrollBar1 do
    Position:= Position + LargeChange;
end;

// Form1.OnMouseWheelUp
procedure TForm1.FormMouseWheelUp(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  with
ScrollBar1 do
    Position:= Position - LargeChange;
end;

Удачи!
Ответ отправил: Denisss (статус: Специалист)
Ответ отправлен: 16.04.2006, 11:23


Вопрос № 40.442
Как отключить CD-Rom: заблокировать дверцу и уже вставленные диски не читаются.
Отправлен: 16.04.2006, 13:00
Вопрос задал: Alexo (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Alexo!
http://www.delphi.int.ru/?name=questions&action=view&id=276
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 16.04.2006, 13:09
Оценка за ответ: 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.30 (beta) от 09.04.2006
Яндекс Rambler's Top100

В избранное