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

Вниз

XML   Найти похожие ветки 

 
student22 ©   (2010-12-20 10:56) [0]

Подскажите пожалуйста, вот есть у меня XML-файл и приложение написанное на D10 (не веб-приложение), считывать значение атрибутов и тегов в приложение из XML-файла научился, а как можно управлять этим приложением из XML-формы, т.е. например инициализировать нажатие кнопки, которая находится в приложении и з XML-формы или считать значение какой-нибудь переменной из  приложения и передать ее  в XML-файл?


 
Ega23 ©   (2010-12-20 11:00) [1]

Что такое XML-форма?


 
student22 ©   (2010-12-20 11:04) [2]

Просто XML-файл, я так написал, потому что задача - написать веб-гуй для приложения на делфи, т.е вся логика остается в приложении, а гуй на XML


 
Медвежонок ХМЛ ©   (2010-12-20 11:07) [3]

да там целых два гуя.

инициализировать нажатие кнопки, которая находится в приложении и з XML-формы

А без извратов нельзя?


 
student22 ©   (2010-12-20 11:12) [4]


> Медвежонок ХМЛ ©   (20.12.10 11:07) [3]

Ну к примеру: есть кнопка, по нажатию на которую, происходит сложение двух чисел и вывод результата в поле Edit. Задача1: как вытащит итоговую сумму в браузер? задача2: как из браузера нажать эту кнопку (правильнее это реализовать)?  

я решил написать на XML веб-гуй, вот и никак не могу разобраться как ее "подключить" к написанному приложению... или может я неправильно рассуждаю?


 
Медвежонок ХМЛ ©   (2010-12-20 11:22) [5]

как вытащит итоговую сумму в браузер?

Браузер должен получить итоговую сумму (или данные для ее расчета) от веб-сервера.


 
student22 ©   (2010-12-20 11:27) [6]

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


 
Медвежонок ХМЛ ©   (2010-12-20 11:28) [7]

Браузер все получает от веб-сервера.


 
Slym ©   (2010-12-20 11:31) [8]

Всем... ноги оттуда http://delphimaster.net/view/2-1291853290/
student22 - на будущее указывай начальную ветку.


 
student22 ©   (2010-12-20 11:34) [9]

Извиняюсь,спасибо  Slym ©


 
brother ©   (2010-12-20 11:36) [10]

> считывать значение атрибутов и тегов в приложение из XML-
> файла научился

как? обычно если реализовано чтение, значит и есть запись...


 
student22 ©   (2010-12-20 11:38) [11]


> Slym ©


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


 
student22 ©   (2010-12-20 11:40) [12]

brother ©

я тоже так думал, ну вот к примеру чтение значение атрибутов:

XMLDocument1.LoadFromFile("http://localhost/test1.xml");
XMLDocument1.Active := true;
Edit1.Text := XMLDocument1.DocumentElement.ChildNodes["pas"].Text;
Edit2.Text := XMLDocument1.DocumentElement.ChildNodes["base"].Text;
Edit3.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes["base1"].Attributes["con1"]);
Edit4.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes["base1"].Attributes["con2"]);
Edit5.Text := VarToStr(XMLDocument1.DocumentElement.ChildNodes["base1"].Attributes["con3"]);


 
student22 ©   (2010-12-20 11:42) [13]


> Медвежонок ХМЛ ©   (20.12.10 11:28) [7]
> Браузер все получает от веб-сервера.


Я это понимаю.
А можно поподробнее, как это реализовать


 
Slym ©   (2010-12-20 11:44) [14]

http://127.0.0.1/?a=1&b=1

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdCustomTCPServer,
 IdCustomHTTPServer, IdHTTPServer,IdContext;

type
 TForm1 = class(TForm)
   A: TEdit;
   B: TEdit;
   C: TEdit;
   Button1: TButton;
   IdHTTPServer1: TIdHTTPServer;
   procedure Button1Click(Sender: TObject);
   procedure IdHTTPServer1CommandGet(AContext: TIdContext;
     ARequestInfo: TIdHTTPRequestInfo;
     AResponseInfo: TIdHTTPResponseInfo);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 c.Text:=IntToStr(StrToInt(A.Text)+StrToInt(B.Text));
end;

procedure TForm1.IdHTTPServer1CommandGet(AContext: TIdContext;
 ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
 AResponseInfo.ContentText:="a+b="+
 ARequestInfo.Params.Values["a"]+"+"+ARequestInfo.Params.Values["b"]+"="+
 IntToStr(StrToIntDef(ARequestInfo.Params.Values["a"],0)+StrToIntDef(ARequestInfo.Params.Values["b"],0));
end;

end.


 
Медвежонок ХМЛ ©   (2010-12-20 11:46) [15]

Я это понимаю.
А можно поподробнее, как это реализовать


Что "ЭТО"?

"ЭТО" - уже реализовано. Все браузеры умеют запрашивать и получать данные с веб-серверов.


 
Ega23 ©   (2010-12-20 11:47) [16]


> А можно поподробнее, как это реализовать


Есть браузер, есть веб-сервер, есть программа, которая крутится на сервере.
Программа может быть интерпретатором php, может быть cgi-приложением, может fastcgi, может (короче, вариантов - дофига).
Программа умеет распознавать HTTP-Request, на основании запроса умеет генерить данные в нужном формате и отдавать их обратно. Данные могут браться из разных мест, в частности (как правило) из какой-то БД.
Браузер получает данные и отображает.
Как-то так.


 
student22 ©   (2010-12-20 11:48) [17]


> Slym ©


Спасибо!


 
student22 ©   (2010-12-20 11:51) [18]


> Медвежонок ХМЛ ©   (20.12.10 11:46) [15]


> Что "ЭТО"?


Я не могу разобраться как организовать связь между готовым приложением и гуем написанным для этого приложения на хмл


 
Ega23 ©   (2010-12-20 11:53) [19]


> Я не могу разобраться как организовать связь между готовым
> приложением и гуем написанным для этого приложения на хмл


В 99% случаев этого не получится.


 
student22 ©   (2010-12-20 11:56) [20]


> Ega23 ©   (20.12.10 11:47) [16]
> > А можно поподробнее, как это реализоватьЕсть браузер,
> есть веб-сервер, есть программа, которая крутится на сервере.
> Программа может быть интерпретатором php, может быть cgi-
> приложением, может fastcgi, может (короче, вариантов - дофига).
> Программа умеет распознавать HTTP-Request, на основании
> запроса умеет генерить данные в нужном формате и отдавать
> их обратно. Данные могут браться из разных мест, в частности
> (как правило) из какой-то БД.Браузер получает данные и отображает.
> Как-то так


Проблема в том, что программа для которой надо организовать доступ через веб, была написана не как веб-приложение. Вот я и не могу все в кучу собрать, т.е вроде понимаю в общем организацию, а как к этой программе  "присобачить" веб- гуй и обеспечит управление этой программой через веб-гуй, не могу понять


 
student22 ©   (2010-12-20 11:58) [21]


> Ega23 ©   (20.12.10 11:53) [19]
> > Я не могу разобраться как организовать связь между готовым
> > приложением и гуем написанным для этого приложения на хмл
> В 99% случаев этого не получится.


Slym ©, скажи пожалуйста, что это не так)


 
Ega23 ©   (2010-12-20 11:59) [22]

Повторяю ещё раз: у тебя это не получится. Забудь про программу. Пиши всё заново.
Переводи и толстый и тонкий клиент на трёх-четырёх-звенку. Тогда есть небольшой шанс, что и обычное приложение, и веб-морда будут работать более-менее одинаково.


 
student22 ©   (2010-12-20 12:02) [23]


> Ega23 ©


Т.е если есть готовое приложение на Delphi, НЕ - ВЕБ ПРИЛОЖЕНИЕ то организовать к нему доступ через веб нельзя? И Следовательно как я понял надо это НЕ - ВЕБ ПРИЛОЖЕНИЕ  переписывать как ВЕБ-ПРИЛОЖЕНИЕ?


 
clickmaker ©   (2010-12-20 12:04) [24]

> Т.е если есть готовое приложение на Delphi, НЕ - ВЕБ ПРИЛОЖЕНИЕ
> то организовать к нему доступ через веб нельзя?

через веб-сервис можно


 
brother ©   (2010-12-20 12:04) [25]

У тебя каша в голове, имхо. Поставь правильно вопрос...


 
brother ©   (2010-12-20 12:05) [26]

А может и недостаток знаний... но я пока, ничего не понял...


 
clickmaker ©   (2010-12-20 12:06) [27]

хотя, непонятно, что значит "организовать к нему доступ через веб"?
готовое приложение на Delphi должно данные предоставлять или оттуда интерфейс нужен?


 
Медвежонок ХМЛ ©   (2010-12-20 12:14) [28]

Я не могу разобраться как организовать связь между готовым приложением и гуем написанным для этого приложения на хмл

Не надо организовывать ТО, что УЖЕ организовано сто лет назад.

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

Надо реализовывать то, чего у тебя нет.

У тебя нет ВЕБ СЕРВЕРА в твоем приложении.

Вот его и реализовывай-организовывай.


 
Slym ©   (2010-12-20 12:18) [29]

не правя предыдущую программу ничего не получится...
2 пути:
1. Т.к. прога никакого АПИ не поддерживает то имплантировать в нее веб сервер (к примеру через TIdHTTPServer) - как заплатка...
2. Писать с нуля разделяя ядро и гуй - более правильный путь...


 
Slym ©   (2010-12-20 12:47) [30]

3 путь - приделать АПИ и уже потом делать сервер


 
Ega23 ©   (2010-12-20 13:05) [31]


> Т.е если есть готовое приложение на Delphi, НЕ - ВЕБ ПРИЛОЖЕНИЕ
> то организовать к нему доступ через веб нельзя?


Если есть некое обобщённое не-веб приложение, а также нельзя его трогать, то в общем случае ответ - нет.
Если можно вносить некие изменения, или приложение имеет некий API для доступа "извне", то, в принципе, можно.

> 2. Писать с нуля разделяя ядро и гуй - более правильный путь...


+ 100500


 
Ega23 ©   (2010-12-20 13:17) [32]

В целом - надо мух от котлет отделить.
1. Есть некое хранилище данный (СУБД, файлы - неважно). Условно назовём "Хранилище".
2. Есть некая штука, которая умеет с этими данными работать (добавлять, изменять, удалять и делать какие-то выборки). Условно назовём "Ядро".
3. Есть некая штука, которая умеет эти данные выводить в удобном для пользователя виде. Условно назовём - "GUI".

Соответственно, если твоя задача стоит в достижении максимальной "гибкости" (например, использование разных типов хранилищ, или различные варианты вывода данных пользователю), то тебе надо все эти 3 элемента системы сделать максимально независимыми друг от друга.
Ну, например, "Ядро" имеет некоторое количество плагинов для работы с разными типами СУБД. При этом непосредственно клиент понятия не имеет, с каким типом хранилища и с какой физической СУБД в данный момент работает ядро.
Или у тебя есть разные типы "GUI". Один - браузер, один - Windows Application, а третий - вообще командная строка (why not?). Соответственно, тебе нужно, чтобы "ядро" выдавало данные в некоем "общем" формате, а также принимала входные данные/команды тоже во вполне определённом формате. Например, XML.
Тогда, если вдруг тебе понадобится подключить новый тип СУБД, или разработать новый вид GUI, тебе не придётся ломать всё старое, просто пишется дополнительный модуль.

В целом - читай тут http://ru.wikipedia.org/wiki/MVC


 
student22 ©   (2010-12-20 13:25) [33]

Ну вот сейчас хоть что-то прояснилось.... всем спасибо за помощь



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

Форум: "Начинающим";
Текущий архив: 2011.03.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.003 c
2-1292975954
alexparser
2010-12-22 02:59
2011.03.13
MySql - глюк версий?


2-1292866353
radiokarazinec
2010-12-20 20:32
2011.03.13
TImage слои само масштабировало в зависимости от количества слоёв


2-1292846680
harisma
2010-12-20 15:04
2011.03.13
Работа с реестром в 64-разрядной ОС


2-1292881339
Knob
2010-12-21 00:42
2011.03.13
Запуск приложения по завершении работы программы


15-1291114600
Kerk
2010-11-30 13:56
2011.03.13
Как по-английски называется таблица типа "шахматка"?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский