Вверх ↑
Этот топик читают: Гость
Ответов: 590
Рейтинг: 19
#31: 2009-01-11 14:37:58 ЛС | профиль | цитата
Андрей. писал(а):
вот примерчик серверной отсылки сообщений, персонально каждому клиенту

слушай... а как с помощью serverex отправить строку сразу всем клиентам?
карма: 0

0
Ответов: 3851
Рейтинг: 159
#32: 2009-01-11 14:57:17 ЛС | профиль | цитата
afandi писал(а):
сылка не рабочая
по ссылке можно просто кликнуть

EcsTasY писал(а):
как с помощью serverex отправить строку сразу всем клиентам
только по порядку, Ex под другое заточен, в твоём случае нужен обычный TCP_Server
карма: 0
начавший
0
Ответов: 2125
Рейтинг: 159
#33: 2009-01-11 16:04:29 ЛС | профиль | цитата
EcsTasY писал(а):
как с помощью serverex отправить строку сразу всем клиентам


#sha
Add(MainForm,2953706,119,77)
{
link(onCreate,11437205:##open,[(224,97)(224,125)])
}
Add(TCP_ServerEx,11437205,245,119)
{
ServerPort=534
link(onSendToAll,7473021:doValue,[])
}
BEGIN_SDK
Add(EditMultiEx,14296838,21,21)
{
WorkCount=#6:##open|8:##select|6:doSend|
EventCount=#11:onSendToAll|
VarCount=#7:##count|
Width=174
Height=151
Point(##select)
Point(##count)
link(doSend,2556202:doSend,[(49,41)(49,76)])
}
Add(TCP_Connection,2556202,70,63)
{
link(onRead,14296838:onSendToAll,[(117,69)(117,27)])
}
END_SDK
Add(For,13845081,77,182)
{
IncludeEnd=1
link(onEvent,7495292:doEvent1,[])
link(End,11437205:##count,[(90,172)(251,172)])
}
Add(Hub,7495292,126,182)
{
link(onEvent1,11437205:##select,[(224,188)(224,132)])
link(onEvent2,2451782:doData,[(170,195)(170,139)])
}
Add(Memory,7473021,301,119)
{
link(onData,13845081:doFor,[(345,125)(345,226)(65,226)(65,188)])
}
Add(DoData,2451782,182,133)
{
link(onEventData,11437205:doSend,[])
link(Data,7473021:Value,[(188,113)(291,113)(291,163)(307,163)])
}
карма: 1

2
Голосовали:afandi, EcsTasY
Ответов: 542
Рейтинг: 12
#34: 2009-01-11 16:21:50 ЛС | профиль | цитата
интересное решение но в моем задаче наверное просто без занчительно доработки ее не применить так как. сервер имееть стаичный айпи адрес а клиент динамически
и если сервер за сеанс связи не передасть клиенту файл. сервер не сможет найти клиента так при до момента второго конекта у клеинта может сменится iP адресс.

Но это рашение немножко забегает вперед я кнему еще вернусь. а в данный момент у меня не получается выполнить чтение из ini файла имени файла где должен хранится прайс клиента. если точнее клиент посылает строку 1;afandi до знакан ; идет ID клиента. Компенит StrPart должен отделить ID и далее программа должна из ini файла взять имя
как теперь перадать ID на точку Key компонента ini.
ой извините уже разобрался тип поля стояло int а я должен бы поставить string
карма: 0

0
Ответов: 590
Рейтинг: 19
#35: 2009-01-11 16:32:51 ЛС | профиль | цитата
tsdima, спс тебе + , вот еще один вопрос... вылазит Runtime error 216 at 0000C7F8 при закрытии программы..., что не так... что исправить?

code_11333.txt
карма: 0

1
файлы: 1code_11333.txt [1.7KB] [123]
Голосовали:afandi
Ответов: 542
Рейтинг: 12
#36: 2009-01-11 16:38:56 ЛС | профиль | цитата
у меня тоже было это сообщени теперь исправилось я поток данных не туда направил оказывается.
а нет у меня также я позже вернусь к этой задаче.
хочу это проект выполнить перемещаясь от простого к сложному.

у меня шаг за шагом получается уже. но вот вопрос паралельно возникает такой: схема начиниает разрастся
и те части логики которые я считаю завершенными хотел бы прятать в контейнерах.
где почитать как сделать подскажите пожалуйста.
карма: 0

0
Ответов: 2125
Рейтинг: 159
#37: 2009-01-11 16:50:19 ЛС | профиль | цитата
EcsTasY писал(а):
вылазит Runtime error

Попробуй обновить TCP.pas с SVN http://hiasm.googlecode.com/svn/elements/delphi/code/TCP.pas
карма: 1

1
Голосовали:afandi
Ответов: 387
Рейтинг: 34
#38: 2009-01-11 16:53:20 ЛС | профиль | цитата
afandi писал(а):
так как. сервер имееть стаичный айпи адрес а клиент динамически

можно использовать бесплатный Hamachi с закрытым VPN каналом который клиенту даст постоянный IP
карма: 0

1
Голосовали:afandi
Ответов: 542
Рейтинг: 12
#39: 2009-01-11 17:14:59 ЛС | профиль | цитата
Karl писал(а):
бесплатный Hamachi
Это конечно весч очень полезная, но для клиентов это будет очень сложно
так как они просто ламери со знаком минус еще а к тому же многие из них будут подключатся через gprs трафик дорогой и медленный.
------------ Дoбавленo:

tsdima писал(а):
Попробуй обновить TCP.pas
обновил все по инструкиции ошибка Runtime error 216 at 0000C7F8 при закрытии соединения не исчезла
кажется понятно стало при закритый форми нужно было и соединения закрыть
что и сделал в данной схеме

#pas
Add(MainForm,6077961,35,14)
{
Point(onClose)
link(onCreate,5579415:doEvent1,[])
link(onClose,13647556:doEvent1,[(72,41)(72,139)])
}
Add(TCP_ServerEx,11437205,329,28)
{
ServerPort=534
link(onSendToAll,7473021:doValue,[])
}
BEGIN_SDK
Add(EditMultiEx,14296838,21,21)
{
WorkCount=#6:##open|8:##select|6:doSend|
EventCount=#11:onSendToAll|
VarCount=#7:##count|
Width=174
Height=151
Point(##select)
Point(##count)
link(doSend,2556202:doSend,[(49,41)(49,76)])
}
Add(TCP_Connection,2556202,70,63)
{
link(onRead,14296838:onSendToAll,[(117,69)(117,27)])
}
END_SDK
Add(For,13845081,161,91)
{
IncludeEnd=1
link(onEvent,7495292:doEvent1,[])
link(End,11437205:##count,[(174,81)(335,81)])
}
Add(Hub,7495292,210,91)
{
link(onEvent1,11437205:##select,[(308,97)(308,41)])
link(onEvent2,2451782:doData,[(254,104)(254,48)])
}
Add(Memory,7473021,385,28)
{
link(onData,13845081:doFor,[(429,34)(429,135)(149,135)(149,97)])
}
Add(DoData,2451782,266,42)
{
link(onEventData,11437205:doSend,[])
link(Data,7473021:Value,[(272,22)(375,22)(375,72)(391,72)])
}
Add(TCP_Client,16360262,245,210)
{
Port=534
IP="127.0.0.1"
link(onRead,144538:doAdd,[(307,216)(307,195)])
}
Add(TCP_Client,9845451,259,280)
{
Port=534
IP="127.0.0.1"
link(onRead,15619518:doAdd,[(317,286)(317,293)])
}
Add(Hub,5579415,77,28)
{
OutCount=3
link(onEvent1,11437205:##open,[])
link(onEvent2,16360262:doOpen,[(135,41)(135,216)])
link(onEvent3,9845451:doOpen,[(121,48)(121,286)])
}
Add(ListBox,144538,336,189)
{
Left=15
Top=15
Width=130
Height=240
}
Add(ListBox,15619518,343,287)
{
Left=190
Top=15
Width=130
Height=240
}
Add(Button,8859349,189,224)
{
Left=325
Top=230
Data=Integer(1)
link(onClick,16360262:doSend,[])
}
Add(Hub,13647556,77,133)
{
link(onEvent1,16360262:doClose,[(177,139)(177,223)])
link(onEvent2,9845451:doClose,[(184,146)(184,293)])
}

карма: 0

0
Ответов: 8926
Рейтинг: 823
#40: 2009-01-11 17:18:02 ЛС | профиль | цитата
afandi, я это выполняю так:
1. группирую элементы, переносимые в контейнер чтобы их и только их можно было выделить одним движением мышки (прямоугольником);
2. ставлю на место этого прямоугольника вывеску (для безошибочного подсчёта всех связей);
3. считаю все точки (входы - do..., выходы on..., данные в - data, данные из - var);
4. выставляю на схему контейнер;
5. выделяю группу - копировать - захожу в контейнер - вставить;
6. в свойствах выставляю необходимое количество точек и переходя в схему и обратно в контейнер соединяю точки по одной внутри контейнера;
7. пишу примечание с назначением всех точек;
8. подсоединяю контейнер к схеме и запустив схему проверяю работу;
9. если всё нормально, удаляю то, что было перемещено.
карма: 19

1
Голосовали:afandi
Ответов: 542
Рейтинг: 12
#41: 2009-01-11 17:33:49 ЛС | профиль | цитата
Спасибо все получилось. а нельзя Caption или Hint указать что бы во время разработки схемы при наведении курсора я выдел описаник контейнера ведь их со врменем станет много и потом буду путатся.

Еще я создал точки в контейнере справа а потом убрал их хотел по другому сделать но точки не удаляются и сверху добавилась точка а я вроде ее не создавала
как исправить

#pas
Add(ChildPanelEx,10615378,322,63)
{
}
BEGIN_SDK
Add(EditMultiEx,7925778,28,21)
{
WorkCount=#16:doEvent1=ID;pswd|
EventCount=#10:onPart1=ID|16:onSplit=Password|22:onFalse=NoAvtorization|
DataCount=#9:onPart=ID|
Width=349
link(doEvent1,2143801:doEvent1,[(42,27)(42,118)])
}
Add(Panel,10187662,42,182)
{
Left=35
Top=105
Caption="Autorization"
}
Add(ArrayEnum,9214765,119,161)
{
link(onItem,7844330:doEvent1,[])
link(Array,3050409:Array,[(125,124)(132,124)])
}
Add(StrMask,5311414,217,161)
{
Point(doMask)
link(onTrue,1340932:doSplit,[])
link(Str,14970901:GetData,[])
}
Add(Hub,2143801,56,112)
{
link(onEvent1,14970901:doData,[])
link(onEvent2,9214765:doEnum,[(94,125)(94,167)])
}
Add(Hub,7844330,161,161)
{
link(onEvent1,5311414:doCompare,[])
link(onEvent2,5311414:doMask,[])
}
Add(EventFromData,14970901,217,112)
{
}
Add(StrPart,1340932,287,168)
{
Char=";"
}
Add(StrList,3050409,112,42)
{
Strings=#8:1;afandi|5:2;id2|5:3;id3|5:4;id4|
}
END_SDK

уже разобрался!
карма: 0

0
Ответов: 590
Рейтинг: 19
#42: 2009-01-11 18:19:54 ЛС | профиль | цитата
afandi писал(а):
а нельзя Caption или Hint указать что бы во время разработки схемы при наведении курсора я выдел описаник контейнера

Жми правой на контейнере и выбери "комментарий" вводишь всё что угодно.. вот тебе своеобразный Хинт
------------ Дoбавленo:

tsdima писал(а):
Попробуй обновить TCP.pas с

Не помогло
afandi писал(а):
кажется понятно стало при закритый форми нужно было и соединения закрыть

Если закрыть по onClose, то всё ровно ошибка... если сделать это по нажатию кнопки, и потом уже закрыть окно, то всё впорядке...
карма: 0

1
Голосовали:afandi
Ответов: 3851
Рейтинг: 159
#43: 2009-01-11 18:22:18 ЛС | профиль | цитата
EcsTasY писал(а):
вводишь всё что угодно..
после символа "=" ничего не увидишь..
карма: 0
начавший
0
Ответов: 590
Рейтинг: 19
#44: 2009-01-11 18:29:51 ЛС | профиль | цитата
Андрей. писал(а):
после символа "=" ничего не увидишь..

Начались придирки )) мог бы просто дополнить
------------ Дoбавленo:

Андрей. писал(а):
после символа "=" ничего не увидишь..

Начались придирки )) мог бы просто дополнить
карма: 0

0
Ответов: 3851
Рейтинг: 159
#45: 2009-01-11 19:06:20 ЛС | профиль | цитата
EcsTasY писал(а):
Начались придирки )) мог бы просто дополнить
это не придирки, а уточнение, так как я в своё время на эту мину наступил..

EcsTasY, надоели твои дуплеты - стирай лишнее, не нервируй форумчан..
карма: 0
начавший
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)