Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопросик...


Страницы:   1 2

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, одновременно (цитата !) соединенный
> с несколькими серверами

ну есть же проги,которые ОДНОВРЕМЕННО соединяются с несколькими серверами. (пишу прогу для удаленного управления компами).


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо