Вопрос № 125826: Здравствуйте Уважаемые!Нашёл пример функции интерполяции методом Лагранжа
function Lagr(n: Byte; xt: Real; x,y: Vect): real;
var i,j: Byte; S,P: Real;
begin
S:=0;
for i:=0 to n do
begin
P:=1;
for j:=0 to n ...Вопрос № 125843: Здравствуйте! Я студент и у меня дипломная на тему "Настройка Interbase Server ". Подскажите пожалуйста где можно найти инфо(книжки, статьи, сайты) по даной теме, чтоб научиться и сделать самому... спасибо.. ...Вопрос № 125883: Здравствуйте!
Delphi 7.
Служба принимает входящие письма от клиентов по протоколу SMTP порт 25. Используется компонента IdSMTPServer с вкладки Indy Servers. Происходит авторизация по имени и паролю. А как узнать ip-адрес клиента?...Вопрос № 125899: Здравствуйте! Используется некая служба в Windows XP Pr назовем ее ОбработчикДанных, которая иногда подвешивается и соответственно вешает другую прогу. Вопрос: можно ли программно выключить на некоторое время и включить обратно данную службу....Вопрос № 125910: Здравствуйте! У Меня такая проблема:
Необходимо вводить в TRichEdit разноцветный текст(причем текст вводится методом RichEdit1.Lines.Add(St);)...Вопрос № 125911: И ещё один вопрос:
Мне нужно получить IP-адрес моего компьютера, как это сделать?...
Вопрос № 125.826
Здравствуйте Уважаемые!Нашёл пример функции интерполяции методом Лагранжа
function Lagr(n: Byte; xt: Real; x,y: Vect): real;
var i,j: Byte; S,P: Real;
begin
S:=0;
for i:=0 to n do
begin
P:=1;
for j:=0 to n do
if i<>j then P:=P*(xt-x[j])/(x[i]-x[j]);
S:=S+y[i]*P;
end;
Lagr:=S;
end;
где const n=7; {n+1 - число узловых точек}
type Vect=array[0..n] of real;
,но в моём случае число узловых точек заранее неизвестно,т.е мне нужно описывать Vect не статическим,а динамическим массивом,но как только я это делаю вылетает ошибка в описании функции.Как мне выйти из этого положения.
Отправлен: 03.03.2008, 17:47
Вопрос задал: Зотов.Г.А (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 9)
Отвечает: Delph
Здравствуйте, Зотов.Г.А!
Самое простое решение - описать новый тип данных:
type TMyVect =Array of Real;
После этого в функцию можно передавать переменные этого типа:
function Lagr(xt: Real; x,y: TMyVect): real;
...
К любому динамическому массиву (которые обычно предполагаются одномерными) можно применять функции Length() (длина массива в его элементах) и High() - индекс последнего элемента. Для задания новой длины массива используется процедура SetLength(Arr, NewLength), где Arr - динамический массив, NewLength - его новая длина. Поскольку индексация динамических массивов начинается с нуля, High() на всегда единицу меньше, чем Length(), и для массива нулевой длины возвращает -1
- недопустимый индекс. Значит, при использовании массива нужно убедиться, что он не пустой.
И ещё: всё, что Вы планируете использовать (переменная, описание нового типа и т.д.), нужно описывать ДО первого использования. В данном случае сначала описываете "массивный" тип данных, а потом определяете функцию, принимающую параметры этого типа. Переменную "массивного" типа можно вводить и после функции, но функция должна понимать, что же она принимает. Если использовать предложенное мною описание, то где-то в программе должно фигурировать описание двух переменных нашего типа,
что-то вроде этого:
var Arr1, Arr2: TMyVect;
Эти переменные можно уже спокойно подставлять в функцию.
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Студент)
Ответ отправлен: 04.03.2008, 08:49 Оценка за ответ: 5 Комментарий оценки: Всё, что Вы планируете использовать (переменная, описание нового типа и т.д.), нужно описывать ДО первого использования.
В этом и была ошибка,спасибо разобрался.
Вопрос № 125.843
Здравствуйте! Я студент и у меня дипломная на тему "Настройка Interbase Server ". Подскажите пожалуйста где можно найти инфо(книжки, статьи, сайты) по даной теме, чтоб научиться и сделать самому... спасибо..
Отвечает: Drbear
Здравствуйте, Дьяченко Александр Александрович!
http://www.ibase.ru/
Ответ отправил: Drbear (статус: 8-ой класс)
Ответ отправлен: 03.03.2008, 20:26 Оценка за ответ: 5 Комментарий оценки: спасибо.. но все же хотелось ссылок на книги..
Отвечает: Данилевич Игорь Владимирович
Здравствуйте, Дьяченко Александр Александрович!
Ответ отправил: Данилевич Игорь Владимирович (статус: 1-ый класс)
Ответ отправлен: 03.03.2008, 22:08 Оценка за ответ: 5 Комментарий оценки: спасибо.. то что надо
Вопрос № 125.883
Здравствуйте!
Delphi 7.
Служба принимает входящие письма от клиентов по протоколу SMTP порт 25. Используется компонента IdSMTPServer с вкладки Indy Servers. Происходит авторизация по имени и паролю. А как узнать ip-адрес клиента?
Отправлен: 04.03.2008, 07:58
Вопрос задал: Munster (статус: 9-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Sosedov A.I.
Здравствуйте, Munster!
Обрабатывайте событие OnConnect. В его процедуру передается параметр AThread. У подключенного клиента будет IP адрес : AThread.Connection.Socket.Binding.PeerIP.
Если Вы почему-то опоздали к подключению, то можете работать со списком всех текущих подключений IdSMTPServer1.Threads.LockList.
Ответ отправил: Sosedov A.I. (статус: 2-ой класс)
Ответ отправлен: 04.03.2008, 16:07 Оценка за ответ: 5 Комментарий оценки: Спасибо!!! Оказывается все так просто )
Вопрос № 125.899
Здравствуйте! Используется некая служба в Windows XP Pr назовем ее ОбработчикДанных, которая иногда подвешивается и соответственно вешает другую прогу. Вопрос: можно ли программно выключить на некоторое время и включить обратно данную службу.
Отвечает: MaratM
Здравствуйте, Sergey_Shur!
используйте через обычные ShellExecute комманды net start <имя службы> или net stop <имя службы>
Ответ отправил: MaratM (статус: 1-ый класс)
Ответ отправлен: 04.03.2008, 12:35
Отвечает: Gladiator
Здравствуйте, Sergey_Shur!
Из своей программы можно, даже не используя утилиту net, рекомендованную MaratM.
Пример смотрите в приложении.
Вызов функций осуществляется следующим образом:
ServiceStart('SERVER', 'MyService')
ServiceStop('SERVER', 'MyService')
Приложение:
Ответ отправил: Gladiator (статус: Студент)
Ответ отправлен: 05.03.2008, 08:15
Вопрос № 125.910
Здравствуйте! У Меня такая проблема:
Необходимо вводить в TRichEdit разноцветный текст(причем текст вводится методом RichEdit1.Lines.Add(St);)
У TRichEdit есть свойство SelAttributes которое применяется к выделенному тексту и имеет все свойства Font.
пример:
RichEdit1.SelAttributes.Color := clGreen;
Ответ отправил: Drbear (статус: 8-ой класс)
Ответ отправлен: 04.03.2008, 16:30
Отвечает: Selya
Здравствуйте, Вологин Всеволод Вячеславович!
В RichEdite делаете выделение слова, которое хотите "покрасить".
Что то типа как в приложении...
Приложение:
Ответ отправил: Selya (статус: 9-ый класс)
Ответ отправлен: 04.03.2008, 23:13
Отвечает: Genia007
Здравствуйте, Вологин Всеволод Вячеславович!
Пример ввода строки с выбранным цветом, аналогично можно вводить слова разного цвета и даже разноцветные буквы в одном слове.
procedure TForm2.Button5Click(Sender: TObject);
begin
if not ColorDialog1.Execute then exit;
RichEdit1.SelAttributes.Color:= ColorDialog1.Color;
RichEdit1.Lines.Add(Edit3.Text);
end;
Ответ отправил: Genia007 (статус: 7-ой класс)
Ответ отправлен: 05.03.2008, 12:43
Вопрос № 125.911
И ещё один вопрос:
Мне нужно получить IP-адрес моего компьютера, как это сделать?
Отвечает: Александр Жуйков !!! Здравствуйте, Вологин Всеволод Вячеславович! Самый простой способ: набрать в командной строке "ping имя_компьютера", имя компьютера можно посмотреть: Пуск->Настройка->Система->Имя компьютера.
Ответ отправил: Александр Жуйков (статус: 1-ый класс)
Ответ отправлен: 04.03.2008, 14:47
1. В uses надо добавить IdStack - библиотеку от Indy.
2. Опишите объектную переменную типа TIdStack.
3. Создайте экземпляр методом TidStack.CreateStack.
4. Используйте свойство LocalAddresses типа TStrings для получения списка IP адресов всех Ваших интерфейсов.
Приложение:
Ответ отправил: Sosedov A.I. (статус: 2-ой класс)
Ответ отправлен: 04.03.2008, 14:52
Отвечает: Marked One
Здравствуйте, Вологин Всеволод Вячеславович!
В приложении код. Он получает IP-адресс компьютера в локальной сети(это не IP-адрес в Интернете). Для работы этого приложения нужно подключить модуль WinSock2 в раздел uses. А сами модули можно скачать отсюда: http://rusfaq.ru/upload/232.
Приложение:
Ответ отправил: Marked One (статус: 6-ой класс)
Ответ отправлен: 04.03.2008, 20:20
Ответ отправил: Selya (статус: 9-ый класс)
Ответ отправлен: 04.03.2008, 22:38
Отвечает: Genia007
Здравствуйте, Вологин Всеволод Вячеславович!
Получить IP-адрес своего компьютера можно следующим образом.
uses
WinSock;
function GetLocalIP: String;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then begin
if GetHostName(@Buf, 128) = 0 then begin
P := GetHostByName(@Buf);
if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;
end;
Ответ отправил: Genia007 (статус: 7-ой класс)
Ответ отправлен: 05.03.2008, 12:42