Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.049 c
1-1220057367
Deltas
2008-08-30 04:49
2009.10.25
Как получить текст окна класса TRichView?


2-1251882705
sanx
2009-09-02 13:11
2009.10.25
Получить от компилятора текущую дату в констатнту, как?


3-1201334641
mega
2008-01-26 11:04
2009.10.25
DirectMysqlObjects (TMySQLClient, TMysqlResult) + Jpeg


15-1251457955
TUser
2009-08-28 15:12
2009.10.25
Законы физики нарушаются


2-1250765034
webpauk
2009-08-20 14:43
2009.10.25
Длина TLabel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский