Вопрос № 79491: Здраствуйте ув. эксперты подскажите как через Делфи поменять айпишник на своем компьютере .
Заранее Спасибо....Вопрос № 79532: Здраствуйте эксперты... Помогите, плиз...
У меня есть несколько компонентов типа TChart, один из которых создается виртуально при нажатии кнопки и отображается на виртуальной форме.... Есть компонент PopupMenu, у которого определен один пункт мен...
Вопрос № 79.491
Здраствуйте ув. эксперты подскажите как через Делфи поменять айпишник на своем компьютере .
Заранее Спасибо.
Отправлен: 23.03.2007, 12:32
Вопрос задал: VaNuk (статус: 3-ий класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Dragon
Здравствуйте, VaNuk!
В приложении приводится модуль.
Чтение IP в функции ReadIP, присвоение в процедуре SetIP.
В компоненте Edit ставится нужный IP и по нажатии на кнопку меняется. В COMBO отображается название сетевой платы. но чтобы увидеть результат необходимо отключить сетевое подключение и заново запустить.
Удачи!
Приложение:
Ответ отправил: Dragon (статус: 1-ый класс)
Ответ отправлен: 23.03.2007, 13:27
Функция, представленная в этом примере может быть и не очень элегантна, но позволяет узнать собственный ip адрес. Функция получает в качестве параметра строку, содержащую IP адрес, и возвращает строку с IP адресом в виде DWord значения. Результат легко можно проверить командой "Ping". Попробуйте на ее основе сделать обратное преобразование.
Обратите внимание, что необходимо добавить "Math" в "Uses" для функции "IntPower";
function IP2HEX(OrgIP:string):string;
var
// Сохраняем оригинальное значение IP адреса
OrgVal: string;
// части оригинального IP
O1,O2,O3,O4: string;
// шестнадцатиричные части
H1,H2,H3,H4: string;
// Здесь будут собраны все шестнадцатиричные части
HexIP: string;
XN: array[1..8] of Extended;
Flt1: Extended;
Xc: Integer;
begin
// Сохраняем в обратном порядке для простого случая
Xn[8]:=IntPower(16,0);Xn[7]:=IntPower(16,1); Xn[6]:=IntPower(16,2);Xn[5]:=IntPower(16,3);
Xn[4]:=IntPower(16,4);Xn[3]:=IntPower(16,5); Xn[2]:=IntPower(16,6);Xn[1]:=IntPower(16,7);
// Сохраняем оригинальный IP адрес
OrgVal:=OrgIP;
O1:=Copy(OrgVal,1,Pos('.',OrgVal)-1);Delete(OrgVal,1,Pos('.',OrgVal));
O2:=Copy(OrgVal,1,Pos('.',OrgVal)-1);Delete(OrgVal,1,Pos('.',OrgVal));
O3:=Copy(OrgVal,1,Pos('.',OrgVal)-1);Delete(OrgVal,1,Pos('.',OrgVal));
O4:=OrgVal;
// Получаем шестнадцатиричное значение IP адреса
HexIP:=H1+H2+H3+H4;
// Преобразуем это большое шестнадцатиричное значение в переменную Float
Flt1:=0;
for Xc:=1 to 8 do
begin
case HexIP[Xc] of
'0'..'9': Flt1:=Flt1+(StrToInt(HexIP[XC])*Xn[Xc]);
'A': Flt1:=Flt1+(10*Xn[Xc]);
'B': Flt1:=Flt1+(11*Xn[Xc]);
'C': Flt1:=Flt1+(12*Xn[Xc]);
'D': Flt1:=Flt1+(13*Xn[Xc]);
'E': Flt1:=Flt1+(14*Xn[Xc]);
'F': Flt1:=Flt1+(15*Xn[Xc]);
end;
end;
Result:=FloatToStr(Flt1);
end;
Ответ отправил: василий1 (статус: 1-ый класс)
Ответ отправлен: 23.03.2007, 13:39
Вопрос № 79.532
Здраствуйте эксперты... Помогите, плиз...
У меня есть несколько компонентов типа TChart, один из которых создается виртуально при нажатии кнопки и отображается на виртуальной форме.... Есть компонент PopupMenu, у которого определен один пункт меню "Печать".... Этот компонент связан со всеми компонентами Tchart...
Как написать обработчик нажатия на пункт меню "Печать", при котором должен печататься график, на котором выбрано меню?
Отвечает: Лукьяненко Алексей Валериевич
Здравствуйте, Зверев Макс!
Procedure OnMenuItemClick(sender:TObject);
begin
if popupmenu1.popupcomponent is TChart then
begin
TChart(popupmenu1.popupcomponent )......................................
................................
end;
end;
Ответ отправил: Лукьяненко Алексей Валериевич (статус: 7-ой класс)
Ответ отправлен: 23.03.2007, 18:14 Оценка за ответ: 5 Комментарий оценки: спасибо большое, все работает отлично