Форум: "Основная";
Текущий архив: 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