![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопросик...
Romm © (2007-04-13 14:20:00)Здравствуйте, Мастера!
Возникла проблема, помогите решить.
Программа содержащая TClientSocket должна быть соединена одновременно с несколькими компами.Как это осуществить наиболее просто. Почему-то мне в ум приходит две мысли:
1)Каждую секунду менять IP или хост --> соединяться, разьединяться...
2)Создать много Сокетов(а так вообще прога работать будет?)...
может у кого есть идеи или советы какие?!
пасиб.
Romm (2007-04-17 14:29:00) [1]
> Stell (17.04.07 14:20) [34]
будет над чем ночью подумать :)
> function Add(Value1: integer; Value2: integer):integer;
> begin
> Result := Value1 + Value2;
> end;
не проще так
function Add(a, b: integer):integer;
begin
Result :=a+b;
end;
? :)
Stell (2007-04-17 14:20:00) [2]
> > Со сложения двух чисел например
>это как? :)
Это
function Add(Value1: integer; Value2: integer):integer;
begin
Result := Value1 + Value2;
end;
......
ShowMessage(IntToStr(Add(2,2)));
.....
:):)
Romm (2007-04-14 13:36:00) [3]
> Со сложения двух чисел например
это как? :)
> Тебе рано и не спорь
знаю, но нужно, для дела... уже почти все готово.. почти.. %10 :))
Anatoly Podgoretsky (2007-04-14 13:30:00) [4]> Romm (13.04.2007 17:04:22) [22]
Тебе рано и не спорь, и не то что бы писать коммуникационный программы, но Hello Word. Начни с простого. Со сложения двух чисел например.
Romm (2007-04-13 19:05:00) [5]О! нашел статью..
{10 элементов компонентного типа TLed}
LED : array[1..10] of TLed;
//При необходимости динамического создания LED-компонентов организуйте цикл, пример которого мы приводим ниже:
for counter := 1 to 10 do
begin
LED[counter]:= TLED.Create;
LED[counter].top := ...
LED[counter].Left := ...
LED[counter].Parent := Mainform; {что-то типа этого}
end;
//Если компоненты уже присутствуют на форме (в режиме проектирования), //сделайте их элементами массива, например так:
leds := 0;
for counter := 0 to Form.Componentcount do
begin
if (components[counter] is TLED) then
begin
inc(leds);
LED[leds] := TLED(components[counter]);
end
end;
нужно попробовать....
Romm (2007-04-13 19:02:00) [6]
> Антоныч_ск (13.04.07 18:23) [26]
я поспешил немного :)
с динамическим массивом я разобрался, а вот если мне нужно сохранить значения уже созданных компонентов, то?..
procedure TOptionForm.SaveParam;
var
F:TIniFile;
ArCheckBox: array[1..12] of TCheckBox;
i:Integer;
begin
F:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'option.ini');
for i:=1 to 12 do
F.WriteBool('Checked',IntToStr(i),ArCheckBox[i].Checked);
F.Free;
end;
напиши пожалуста, если так можно вообще...
Romm (2007-04-13 18:48:00) [7]
> Johnmen © (13.04.07 18:34) [28]
ну я спорить с тобой не буду)) НО
за сегодня я научился получать какое-либо значение, например 10-го chqckbox'a, научился создавать массивы элементов, благодаря хорошему человеку, который не говорил: "иди книги для чайников читай", а реально обьяснил... Ребят, если бы все так делали.. :)
Johnmen (2007-04-13 18:34:00) [8]
> у всех бывает первый раз! Вот вы с рождения програмистами
> были?!?!?!?!?!
Нет конечно!
Да вот только я не начинал с "прогу для удаленного управления компами", не зная элементарных основ типа "как получить какое-либо значение,например 10-ого checkbox'a". И уж тем более не учился, прося других в стиле "слабо" решить мою элементарную "задачку" типа "А можешь пример массива этих самых CheckBox написать?".
Romm (2007-04-13 18:33:00) [9]
> Антоныч_ск (13.04.07 18:23) [26]
сенск...)))))))))))))))пока вопросов нет
Антоныч_ск (2007-04-13 18:23:00) [10]На вскидку примерно так:
Var
CheckBoxArray: array[1..10] of TCheckBox;
...
begin
...
for i:=1 to 10 do
begin
CheckBoxArray[i]:=TCheckBox.Create(OptionForm);
CheckBoxArray[i].Parent:=OptionForm;
CheckBoxArray[i].Left:=5;
CheckBoxArray[i].Top:=i*40+5;
CheckBoxArray[i].Height:=20;
CheckBoxArray[i].Width:=300;
CheckBoxArray[i].OnClick:=CheckBoxClick;
// и по образцу задаёшь нужные свойства
end;
end;
Romm (2007-04-13 18:12:00) [11]
> Антоныч_ск (13.04.07 18:00) [24]
Пасиб - получилось)
А можешь пример массива этих самых CheckBox написать?
Антоныч_ск (2007-04-13 18:00:00) [12]Ставиш каждому checkbox-у уникальное значение св-ва Tag, назначаешь им всем один и тот же обработчик какого-нибудь события (OnClick, например) и пишешь:
procedure TOptionForm.CheckBoxClick(Sender: TObject);
begin
ShowMessage('Щёлкнут CheckBox № '+IntToStr(TCheckBox(Sender).Tag));
end;
Усложняем по образцу.
Массив можно сделать из всего. Была бы необходимость :-)
Romm (2007-04-13 17:07:00) [13]Повторюсь:
а вот вопросик не в тему немножко)
пишу событие для 13-ти checkbox'ов
как получить какое-либо значение,например 10-ого checkbox'a??
пробую так:
procedure TOptionForm.FormClick(Sender: TObject);
var
check:boolean;
begin
check:=CheckBox[10].Checked;
end;
не получается(( неужели для всех нужно писать свой код((((
Вообще можно массив из компонентов создать?!
Romm (2007-04-13 17:04:00) [14]
> "А впрочем, тебе рано ещё" (с)
у всех бывает первый раз! Вот вы с рождения програмистами были?!?!?!?!?!
Johnmen (2007-04-13 15:53:00) [15]
> пишу прогу для удаленного управления компами
"А впрочем, тебе рано ещё" (с)
Сергей М. (2007-04-13 15:49:00) [16]
> Вот что я решил
Хозяин - барин !)
Romm (2007-04-13 15:42:00) [17]
ступил*:)
> И причем тут ini-файлы
они с сокетами не связаны,почти )) в них инфу о компах хранить нужно..
Romm (2007-04-13 15:40:00) [18]Вот что я решил:
проше будет выбирать из списка машину -> жать Connect и управлять ей пока глаза не вылезут!!!!!!!
//наверное и щас степил? :)
Сергей М. (2007-04-13 15:39:00) [19]
> Romm © (13.04.07 15:37) [16]
> есть же проги,которые ОДНОВРЕМЕННО соединяются с несколькими
> серверами
Ну да, есть.
Но кто тебе сказал, что такие "проги" при этом используют один-единственный TClientSocket ?
И причем тут ini-файлы ?
Romm (2007-04-13 15:37:00) [20]Надо же быть таким тупым)
просто седня день такой)) пятница да еще и 13 :))мозг в отрубе
> один TClientSocket, одновременно (цитата !) соединенный
> с несколькими серверами
ну есть же проги,которые ОДНОВРЕМЕННО соединяются с несколькими серверами. (пишу прогу для удаленного управления компами).