Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.25;
Скачать: CL | DM;

Вниз

Как передать форму по сети :)   Найти похожие ветки 

 
Jolik   (2008-09-19 13:57) [0]

Есть два  приложения - сервер и рабочее место Администратора. Приложения связаны по TCP/IP.

В какой то момент времени Администратора требуется настроить сервер - он выбирает меню настройки и на экране появляется форма настройки сервера. Как сделать так, чтобы это окно скачивалось с сервера каждый раз, когда он выберет меню настройки?

Поясню: сервер ведь может обновиться (могут появиться новые параметры и пр.). Получается, если окно настройки жестко закомпилить в рабочее место Администратора - то при каждом обновлении сервера надо обновлять и рабочее место Администратора. В случае если окно настройки закачивается по TCP/IP - такой проблемы нет.

Заранее благодарен за ответы!


 
Johnmen ©   (2008-09-19 14:00) [1]

У сервера есть окно?
:)


 
Сергей М. ©   (2008-09-19 14:06) [2]

Что такое "скачать окно с сервера" ?

Скачать можно информацию, а "скачать окно" - это нонсенс)


 
Renegat ©   (2008-09-19 14:06) [3]

> окно скачивалось с сервера

Постановка вопроса неверна. (Говоря более простым языком, ROFL =D)
А вообще, для таких целей нужно просто реализовать в своей проге поддержку обновлений, а не маяться всякою хренью.


 
Jolik   (2008-09-19 14:35) [4]

А если сервер обновят - а рабочее место нет?
А если интернета нет?


 
Jolik   (2008-09-19 14:39) [5]


> Что такое "скачать окно с сервера" ?
>
> Скачать можно информацию, а "скачать окно" - это нонсенс)
>


Понятно что будет скачиваться не окно, а информация...
Меня интересует - есть ли в Delphi такая возможность - скинуть форму в байты а потом развернуть ее обратно и чтобы еще заработало...


 
Германн ©   (2008-09-19 14:42) [6]


> Меня интересует - есть ли в Delphi такая возможность - скинуть
> форму в байты а потом развернуть ее обратно

Есть.

> и чтобы еще заработало...
>

А вот это уже фантастика! (с:)


 
Сергей М. ©   (2008-09-19 14:46) [7]


> есть ли в Delphi такая возможность - скинуть форму в байты


Нет такой возможности. Ни в Делфи ни где бы то ни было.

"Скинуть форму в байты" - это из разряда псевдонаучной псевдофантастики.

Зато в Делфи есть замечательная возможность сохранения свойств объекта в поток и последующего восстановления состояния свойств объекта на основе ранее сохраненной в поток инф-ции.
Но она тебе вряд ли поможет)


 
Сергей М. ©   (2008-09-19 14:48) [8]


> Jolik


А может ты велосипед изобретаешь ?
Не будет ли достаточным использование любой подходящей готовой клиент-серверной системы интерактивного управления удаленным рабочим столом ?


 
Jolik   (2008-09-19 14:52) [9]


> Зато в Делфи есть замечательная возможность сохранения свойств
> объекта в поток и последующего восстановления состояния
> свойств объекта на основе ранее сохраненной в поток инф-
> ции.


но ведь форма - это тоже объект. Она не сохраняет что на ней лежит? На какой позиции и пр.

в dfm же это все есть. тока загоняется все это в программу на этапе компиляции.

Получается тут выход один: сделать собственный парсер dfm (или придумать какой свой формат) и на рабочем месте создавать новую форму и руками кидать на нее компоненты согласно dfm. Гимор...
Я думал - может готовое что есть уже.


 
han_malign ©   (2008-09-19 14:57) [10]

Http Server + Web Browser


 
Сергей М. ©   (2008-09-19 15:00) [11]


> Jolik   (19.09.08 14:52) [9]


Зачем на сервере нужна форма ? Кто на нее лупиться будет ?


 
han_malign ©   (2008-09-19 15:05) [12]


> Она не сохраняет что на ней лежит? На какой позиции и пр.

- это-то сколько угодно, только код, который все это обрабатывает - в поток данных довольно сложно передать...


 
Johnmen ©   (2008-09-19 15:08) [13]


> Jolik   (19.09.08 14:35) [4]
> А если сервер обновят - а рабочее место нет?
> А если интернета нет?

А если компьютера нет?


 
Jeer ©   (2008-09-19 15:17) [14]


>
> Jolik   (19.09.08 13:57)  


И "рабочее место" и "сервер" лежат на сети в одном месте в одном экземпляре на каждого из них.
Не думаю, что есть сложность обновлять их синхронно.


 
Jolik   (2008-09-19 15:25) [15]

Ясно. Спасибо всем!


 
KSergey ©   (2008-09-19 15:39) [16]

Не, ну можно просто ввести формат описания свойств, поддерживаемых сервером и доступных для редактирования. Хранить где-то с сервером. Передавать на клиента эту информацию, а клиентское приложение на основании этой информации должно уметь динамически формировать состав контролов на форме редактирования свойств в более-менее удобоваримом виде при любом раскладе.

Только есть подозрение, что это излишне в вашем случае. Наверняка будет достаточно запрашивать клиентом версию сервера и если эту версию даный клиент не поддреживает - настойчиво информировать о необходимости обновить клиентское место по-хорошему. Ну или обновлять сразу, если возможно.

Короче просто оценить какой вариант проще в реализации и поддержке.


 
han_malign ©   (2008-09-19 15:54) [17]


> ну можно просто ввести формат описания свойств

HTML - например :)


 
KSergey ©   (2008-09-19 15:57) [18]

> han_malign ©   (19.09.08 15:54) [17]
> > ну можно просто ввести формат описания свойств
> HTML - например :)

Да да, я читал выше :)

К стати, автор, и в самом деле: поставь на сервер IIS если возможно или иной web-сервер (на крайняк на дельфи как было описано выше) - и пусть к нему ходят эксплорером, а тебе останется только серверное риложение делать, и все. Клиентское за тебя уже МС сделала давно.


 
Slym ©   (2008-09-20 05:17) [19]

сервер терминалов... не тривиальная задачка :)


 
KilkennyCat ©   (2008-09-20 10:29) [20]

Установить компилятор. передавать dfm и вообще все что угодно и компилировать на месте.


 
Юрий Зотов ©   (2008-09-20 13:21) [21]

> Jolik   (19.09.08 13:57)

Загрузить форму извне - не вопрос. Хоть с диска, хоть по сети, хоть еще откуда - неважно. Но это будет еще только малая часть дела.

> если окно настройки жестко закомпилить в рабочее место
> Администратора - то при каждом обновлении сервера надо обновлять и
> рабочее место Администратора.

Совершенно верно. Как только меняется состав настроечных параметров сервера - так надо обновлять рабочее место администратора. Иначе оно ниоткуда не узнает, что одни параметры исчезли, а другие добавились.

> В случае если окно настройки закачивается по TCP/IP - такой
> проблемы нет.

Есть. И проблема эта - ровно та же самая. Новая (скачанная по сети) форма будет содержать контролы для настройки добавленных параметров (о которых код рабочего места администратора ничего не знает) и не будет содержать контролы для настройки исчезнувших параметров (о которых код рабочего места администратора думает, что они еще есть). Получится, что старый код не соответствует новой форме - и возникнут ошибки. Значит, смена формы влечет за собой и смену кода - то есть, рабочее место администратора все равно придется обновлять.

Есть вариант - делать код программы рабочего места администратора гибким (о чем здесь уже говорили) - но это не так-то просто. Во всяком случае, это будет во МНОГО раз сложнее, чем закачать форму по сети.

Вы готовы к ТАКОМУ решению? Если да, то с него и стоит начать. А сохранение и закачка формы делаются элементарно - Write/ReadComponent.


 
palva ©   (2008-09-20 13:45) [22]

Извините, если это явно или неявно уже предлагалось.
Администратор запускает браузер и в адресе набирает что-нибудь вроде:
<ай-пи>:<порт>/?<пароль>
Сервер должен возвратить страничку с формой обновления параметров. Эта страничка генерируется в соответствии с актуальными параметрами и с необходимыми комментариями. Администратор заполняет параметры и нажимает кнопку Submit, после этого сервер должен принять ответ и обновить параметры. Для безопасности в форме можно использовать скрытое поле.

На сервере это можно запрограммировать при помощи инди-компонента http сервер. Имеются и другие компоненты с аналогичной функциональностью.

Другой вариант это поставить простенький http-сервер, тогда можно написать на Delphi обычную CGI-программу.


 
Дмитрий Белькевич ©   (2008-09-22 03:23) [23]

HTTP + если сильно нужно автообновлялка по AJAX. У нас именно так сделано - всё замечательно работает - именно конфигурация удалённого сервера, среди прочего.



Страницы: 1 вся ветка

Текущий архив: 2009.10.25;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.023 c
2-1251091205
belmol
2009-08-24 09:20
2009.10.25
directx


3-1228563453
Антон_207
2008-12-06 14:37
2009.10.25
курсовая


2-1251352990
Евгений Р.
2009-08-27 10:03
2009.10.25
Как изменить высоту строк tDbGrid?


15-1250843051
@!!ex
2009-08-21 12:24
2009.10.25
Как получить историю посещения браузеров?


15-1250890438
Германн
2009-08-22 01:33
2009.10.25
Extra-USB порты на матплате.