Вопрос № 82586: Здравствуйте уважаемые!Помогите пожалуйста мне в следующем!На форме комбобокс в него в ручную заносятся некие название нужно
1.Если в списке комбобокса его нет оно должно добавиться;
2.При следующем запуске программы оно должно уже быть в спи...Вопрос № 82590: Здраствуйте експерты.
У меня такой вопрос: при подключении к интернету компьютеру каждый раз присваиваеться новый IP адрес, можно ли с помощью Delphi зафиксировать его? (или без Delphi).
Всем спасибо за ответы....Вопрос № 82653: Здраствуйте уважаемые эксперты. У меня возникла проблемма, нужно автоматизаровать раздачу IP адресов на компьютеры корпоративной сети. Как средствами Дельфи можно задать IP адресс, Первичный и вторичный ДНС, поменять имя компьютера и загнать его в до...Вопрос № 82685: Здравствуйте уважаемые эксперты!А не могли бы вы выложить коды клавишь всей клавиатуры?Заранее спасибо....
Вопрос № 82.586
Здравствуйте уважаемые!Помогите пожалуйста мне в следующем!На форме комбобокс в него в ручную заносятся некие название нужно
1.Если в списке комбобокса его нет оно должно добавиться;
2.При следующем запуске программы оно должно уже быть в списке.
Отправлен: 14.04.2007, 21:20
Вопрос задал: GAZOT (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Крылов Александр Владимирович
Здравствуйте, GAZOT!
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
var
i:integer;
begin
// #13 - код клавиши Enter
if key=#13 then //закончили ввод элемента хотим добавить в общий список
for I := 0 to ComboBox1.Items.Count-1 do
if ComboBox1.Text=ComboBox1.Items.Strings[i] then exit; //такой элемент уже есть в списке, выходим из процедуры без добавления в список
ComboBox1.Items.Add(ComboBox1.Text);
end;
Для того, чтобы значения введенные ранее не исчезали при последующих запусках программы, их необходимо хранить в отдельном файле или базе данных
Отвечает: Bingo
Здравствуйте, GAZOT!
Для сохранения содержимого Combobox1 удобно использовать TIniFile. Будем считывать содержимое при запуске приложения, а записывать - при закрытии. Ниже пример:
-----
var
ini:tinifile;
n,i:longint;
procedure TForm2.FormCreate(Sender: TObject);
begin
combobox1.Items.Clear;
ini:=tinifile.Create('C:item.txt');
n:=ini.ReadInteger('Combobox','Count',0);
for i := 1 to n do combobox1.Items.Add(ini.ReadString('Combobox',inttostr(i),''));
end;
procedure TForm2.FormDestroy(Sender: TObject);
begin
ini.WriteInteger('Combobox','Count',combobox1.Items.Count);
for i := 1 to combobox1.Items.Count do ini.WriteString('Combobox',inttostr(i),combobox1.Items.Strings[i-1]);
end;
-----
Удачи!
--------- C темным пивом в светлое будущее!
Ответ отправил: Bingo (статус: 3-ий класс)
Ответ отправлен: 14.04.2007, 22:52
Отвечает: W@NDeReR
Здравствуйте, GAZOT!
Ответ на первый ваш вопрос
Событие происходит по нажатию на кнопку:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
r: boolean;
begin
r:=False;
for i:=0 to ComboBox1.Items.Count-1 do
begin
if comboBox1.Items.Strings[i]=Edit1.Text then
r:=true;
end;
if r=true then exit;
if r=False then
ComboBox1.Items.Add(Edit1.Text);
end;
Ответ на второй ваш вопрос
Необходимо добавить в раздел uses модуль iniFiles;
Теперь по уничтожении формы ( onDestroy)(сохрание содержимого ComboBox1) написать следующий код:
procedure TForm1.FormDestroy(Sender: TObject);
var
Save: TIniFile;
t: integer;
begin
Save := TIniFile.Create(ExtractFilePath(ParamStr(0)) +'ComboBox.ini');
for t := 0 to ComboBox1.Items.Count - 1 do
Save.WriteString('ComboBox1', 'Stroka' + IntToStr(t+1), ComboBox1.Items.Strings[t]);
Save.Free;
end;
А затем по созданию формы (onCreate) (Загрузка содержимого ComboBox1) написать следующий код:
procedure TForm1.FormCreate(Sender: TObject);
var
Load: TIniFile;
names: TStringList;
i: integer;
begin
Load := TIniFile.Create(ExtractFilePath(ParamStr(0)) +'ComboBox.ini');
names := TStringList.Create;
Load.ReadSection('ComboBox1', names);
for i := 0 to Names.Count - 1 do
ComboBox1.Items.Add(Load.ReadString('ComboBox1', names.Strings[i], ''));
names.Destroy;
Load.Destroy;
end;
--------- Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.
Ответ отправил: W@NDeReR (статус: 3-ий класс)
Ответ отправлен: 15.04.2007, 10:25
Отвечает: chikanok
Здравствуйте, GAZOT!
Вот вам короткие и рабочие ответы.
Приложение:
--------- Главное желание,а там разберёмся!
Ответ отправил: chikanok (статус: 3-ий класс)
Ответ отправлен: 15.04.2007, 12:18 Оценка за ответ: 5
Вопрос № 82.590
Здраствуйте експерты.
У меня такой вопрос: при подключении к интернету компьютеру каждый раз присваиваеться новый IP адрес, можно ли с помощью Delphi зафиксировать его? (или без Delphi).
Всем спасибо за ответы.
Непонятно, каким способом вы к Интернету подключаетесь.. от этого многое зависит. В любом случае это зависит исключительно от провайдера, сделать это с Delphi нельзя, как впрочем и с помощью любого другого языка программирования, ибо IP выдаётся сервером провайдера.
Ответ отправил: Menand (статус: 7-ой класс)
Ответ отправлен: 14.04.2007, 22:31 Оценка за ответ: 5
Отвечает: Bingo
Здравствуйте, Иван Ивановввв!
То, что сменить адрес нельзя - больше подходит для того случая, когда доступ к интернету осуществляется через локальную сеть (там даются фиксированные адреса). Если же Вы простым образом через Dial-Up выходите в интернет, то работать со СВОИМ IP адресом МОЖНО, при условии, что он в данный момент не занят кем-то другим. Для Delphi я так толком ничего и не нашел, но могу рассказать, как осущестивить подобные настройки через XP. Для этого:
1. Открываем папочку "Сетевые подключения", например, через Пуск=>панель управления.
2. Выбираем соединение по умолчанию и жмем "Свойства".
3. Выбираем вкладку "Cеть".
4. Находим в списке "Протокол Интернета TCP/IP" и два раза щелкаем по нему.
5. Далее выбираем "Использовать следующий IP адрес" и указываем свой. НО! указать можно адрес в пределах, которые допустимы данному провайдеру инета.
Полагаю, что эти настройки должны где-то храниться операционной системой в реестре. Попробуте задать вопрос в рассылку "Тонкости работы с реестром", если Вым действительно чем то помогут (подскажут ключик), то как это организовать через Delphi я расскажу.
Удачи!
--------- C темным пивом в светлое будущее!
Ответ отправил: Bingo (статус: 3-ий класс)
Ответ отправлен: 14.04.2007, 23:15 Оценка за ответ: 5 Комментарий оценки: Спасибо большое, настройки я нашел, сейчас попробую поискать в реестре.
Отвечает: василий1
Здравствуйте, Иван Ивановввв!
используйте ini файлы либо реестр
Ответ отправил: василий1 (статус: 3-ий класс)
Ответ отправлен: 15.04.2007, 15:58
Вопрос № 82.653
Здраствуйте уважаемые эксперты. У меня возникла проблемма, нужно автоматизаровать раздачу IP адресов на компьютеры корпоративной сети. Как средствами Дельфи можно задать IP адресс, Первичный и вторичный ДНС, поменять имя компьютера и загнать его в домен. Спасибо за любую информацию, про IPи имя компьютера инфу я нашел но может вы предложете более красивое решение.
Приложение:
Отправлен: 15.04.2007, 15:14
Вопрос задал: Jakoni (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 11)
Отвечает: Gh0stik
Здравствуйте, Jakoni!
Вы выбрали верный подход к решению задачи через запуск соответствующей команды, но есть и еще один способ (причем этот способ позволяет настроить адреса если у Вас установлено более одной карты).
Данные о настройках IP можно найти в реестре в такой ветке: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersAdapters
где ключе вида {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} - идентификатор адаптера, если у вас две сетевые то у Вас должно быть да различный ключа.
Далее в HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices TcpipParametersInterfaces{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} Вы найдете настройки конкретного адаптера.
В таких ключах: IPAddress - сам IP адрес SubnetMask - маска подсети NameServer - DNS сервер DefaultGateway - адрес шлюза.
Достучаться до реестру при помощи кода можно таким образом:
.........
s:='SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer';
Reg:=TRegistry.Create;
reg.openkey(s,false);
if reg.ValueExists(key)
then
begin
......
end;
Reg.CloseKey;
Reg.Free;
......
Только нужно дописать: uses Registry;
Если будут вопросы обращайтесь.
По поводу имени компьютера - Вы нашли наиболее оптимальный вариант - куда уже красивей.. :)
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 15.04.2007, 15:47 Оценка за ответ: 3 Комментарий оценки: мне нужно унифицировать процесс, у каждого компьютера разные адаптеры, как я узнаю идентефикаторы
Вопрос № 82.685
Здравствуйте уважаемые эксперты!А не могли бы вы выложить коды клавишь всей клавиатуры?Заранее спасибо.
Отправлен: 15.04.2007, 18:59
Вопрос задал: GAZOT (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Gh0stik
Здравствуйте, GAZOT!
Вам будет проше скачать программу, которая показывает эти коды по ссылке.
Good Luck!!!
--------- Господь Бог - это всего лишь сверхмощный генератор случайных чисел, в соответствии с которыми сочетаются события на Земле. Генератор случайных чисел - и только.
Ответ отправил: Gh0stik (статус: Профессионал) Украина, Славянск Организация: Славянский государственный педагогический университет (Кафедра алгебры) ICQ: 289363162 ---- Ответ отправлен: 15.04.2007, 19:14
Отвечает: W@NDeReR
Здравствуйте, GAZOT!
Вот смотрите в приложении
Приложение:
--------- Опыт — дитя мысли, а мысль — дитя действия. Нельзя учиться по книгам.
Ответ отправил: W@NDeReR (статус: 3-ий класс)
Ответ отправлен: 15.04.2007, 19:26 Оценка за ответ: 5
Отвечает: AlexanderObrjadin
Здравствуйте, GAZOT!
Обработайте KeyDown() или KeyPress(),
результат сохраните и все
Ответ отправил: AlexanderObrjadin (статус: 1-ый класс)
Ответ отправлен: 15.04.2007, 21:56