Модераторы: SoWa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача данных из C++ Builder (Delphi) в Flex 2.0 
V
    Опции темы
dimas_art
Дата 14.4.2008, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



Есть проект на Flex 2.0 - это программный комплекс, так сказать оболочка для отображения выполняемых результатов, но это не важно. В этот проект нужно передавать постоянно данные из C++ Builder'а. Но как это сделать смотрю мало кто может... Может кто тут мне поможет?
PM MAIL ICQ Skype YIM   Вверх
eternalko
Дата 14.4.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



А как именно Ты хочешь передавать?? Проект во Флексе он какой? Десктоп или в нете висит? 
Как часто нужно обновлять данные? Кто кому должен посылать??
Может простого апдейта данных раз в 2 минуты будет достаточно?

Оставайся тут друг, подписывайся на RSS!!! Вместе мы сила!  smile 
PM MAIL Skype   Вверх
dimas_art
Дата 16.4.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



У меня прога для снятия данных с COM-порта от девайса. Эта часть написана на билдере. НА флексе пишу интерфейс для визуализации этих данных в виде графиков и числовых значений. Т.е. Flex - тупо интерфейс, Builder - прога для сбора данных. Т.е. Мне нужно передавать от билдера к флексу. Быстродействие критично!!

З.Ы. Возможно юзать нужно что-то типа XMLSocket()??
PM MAIL ICQ Skype YIM   Вверх
eternalko
Дата 18.4.2008, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Мой друг...
К сожалению я Тебе тут не помогу....
PM MAIL Skype   Вверх
dimas_art
Дата 18.4.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



Я сделал уже! Чуть позже выложу коды...
PM MAIL ICQ Skype YIM   Вверх
eternalko
Дата 18.4.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



Дафай! smile 
PM MAIL Skype   Вверх
dimas_art
Дата 19.4.2008, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



Вот исходный код на Adobe Flex 2.0:
Код

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="300" height="170"
    creationComplete="init()">
    <mx:Script>
        <![CDATA[
            private var client:XMLSocket = new XMLSocket();
            private var port:int = 5151;
            
            private function onData(event:DataEvent):void {                
                textArea.text += event.data.toString() + "\n";
            };
        
            private function init():void {
                // Подключение к C++ Builder
                client.connect("127.000.000.001", port);
                client.addEventListener(DataEvent.DATA, onData);
            };
        ]]>
    </mx:Script>

    <mx:TextArea id="textArea" x="10" y="10" width="280" height="150"/>
</mx:Application>


А вот серверная часть, написанная на C++ Builder:
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "flash.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"
TfrmMeters *frmMeters;
//---------------------------------------------------------------------------
__fastcall TfrmMeters::TfrmMeters(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMeters::BitBtn2Click(TObject *Sender)
{
  AnsiString str11;
  str11 = Edit1->Text + "\0";
  void *str1 = str11.c_str();
  ServerSocket1->Socket->Connections[0]->SendBuf( str1, str11.Length() + 1 );
}
//---------------------------------------------------------------------------
void __fastcall TfrmMeters::FormShow(TObject *Sender)
{
  ShockwaveFlash1->Movie = GetCurrentDir() + "\\flash\\test.swf";
}
//---------------------------------------------------------------------------


Для работы серверной части необходимо подключение ActiveX компонента для загрузки Flash-ролика. Ролик должен лежать в папке Flash и  иметь имя test.swf. Вся передача производится с помощью компонента TServerSocket и XMLSocket. Если есть вопросы пишем в ПМ.
PM MAIL ICQ Skype YIM   Вверх
eternalko
Дата 20.4.2008, 02:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 23.3.2008

Репутация: нет
Всего: нет



 smile 
Красота smile  
Все гениальное просто!
PM MAIL Skype   Вверх
thefightclub
Дата 21.4.2008, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.4.2008

Репутация: нет
Всего: нет



а возможно то же самое проделать с Delphi???
 и если можно, то как (ПО ПОДРОБНЕЕ)


Это сообщение отредактировал(а) thefightclub - 21.4.2008, 23:34
PM MAIL   Вверх
dimas_art
Дата 22.4.2008, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



Все тоже самое... Как говорил один мой препод "Делфя от Билдера отличается, что в одной - точка, а в другом - стрелочка  smile "
Или тебя что-то конкретное интересует?
PM MAIL ICQ Skype YIM   Вверх
thefightclub
Дата 22.4.2008, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.4.2008

Репутация: нет
Всего: нет



Если конкретнее вопрос состоит в том, чтобы  на форме в дельфи расположить приложение написанное на flex, которое представляет собой построение различных диаграмм. Как в реальном времени передавать переменные в flex ???

PM MAIL   Вверх
dimas_art
Дата 22.4.2008, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



Вот то что делал я сам - нужно было для диплома. Это концептуальный пример осциллографа

Flex
Код

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            
            [Bindable] private var diagramData:ArrayCollection = new ArrayCollection();
            private var client:XMLSocket = new XMLSocket();
            private var port:Number = 5151;
            private var cnt:Number = 0;
            
            private function onData(event:DataEvent):void {                
                var addingObject:Object = new Object();
                addingObject.xCol = cnt++;
                addingObject.yCol = Number(event.data);
                diagramData.addItem(addingObject);
            };
            
            private function init(): void {
                // Подключение к C++ Builder
                client.connect("127.000.000.001", port);
                client.addEventListener(DataEvent.DATA, onData);
            };
        ]]>
    </mx:Script>
    <mx:Panel title="Example LineChart" 
        paddingTop="10" paddingLeft="10" right="10" left="10" bottom="10" top="10" layout="absolute">
        <mx:LineChart id="diagramChart" dataProvider="{diagramData}" left="10" right="10" top="10" bottom="10">
            <mx:series>
                <mx:LineSeries displayName="diagram" xField="xCol" yField="yCol"/>
            </mx:series>
        </mx:LineChart>
    </mx:Panel>
</mx:Application>


C++ Builder
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <stdlib.h> 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
int i = 0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{
  ShockwaveFlash1->Movie = GetCurrentDir() + "\\test.swf";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  AnsiString str11 = IntToStr(random(100)) + "\0";
  void *str1 = str11.c_str();
  ServerSocket1->Socket->Connections[0]->SendBuf( str1, str11.Length() + 1 );
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  Timer1->Enabled = true;        
}
//---------------------------------------------------------------------------


Результат:

user posted image

PM MAIL ICQ Skype YIM   Вверх
dimas_art
Дата 22.4.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



вот пример, заточенный под тебя - если будут вопросы - всегда рад ответить!
Код

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
    <mx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            
            [Bindable] private var diagramData:ArrayCollection = new ArrayCollection();
            private var client:XMLSocket = new XMLSocket();
            private var port:Number = 5151;
            private var cnt:Number = 0;
            
            private function onData(event:DataEvent): void {                
                var next:Boolean = false;
                var variable:String = new String;
                var receiveData:String = event.data.toString();
                var addingObject:Object = new Object();
                
                for(var i:Number = 0; i < receiveData.length; i++) {
                    if (receiveData.charAt(i) == " ") {
                        addingObject.xCol = Number(variable);
                        variable = new String();
                    } else variable += receiveData.charAt(i);
                }
                
                addingObject.yCol = Number(variable);
                diagramData.addItem(addingObject);
                
                ta.text += "xCol:" + String(addingObject.xCol) + " yCol:" + String(addingObject.yCol) + "\n";
            };
            
            private function init(): void {
                // Подключение к C++ Builder
                client.connect("127.000.000.001", port);
                client.addEventListener(DataEvent.DATA, onData);
            };
        ]]>
    </mx:Script>
    <mx:Panel title="Example LineChart" 
        paddingTop="10" paddingLeft="10" right="10" left="10" bottom="10" top="10" layout="absolute">
        <mx:ColumnChart id="diagramChart" right="10" left="10" top="10" bottom="10">
            <mx:series>
                <mx:ColumnSeries displayName="diagram" dataProvider="{diagramData}" xField="xCol" yField="yCol"/>
            </mx:series>
        </mx:ColumnChart>
        <mx:TextArea id="ta" x="484" y="22"/>
    </mx:Panel>
</mx:Application>


Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <stdlib.h> 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
int i = 0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{
  ShockwaveFlash1->Movie = GetCurrentDir() + "\\test.swf";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  AnsiString str11 = IntToStr(i++) + " " + IntToStr(random(100)) + "\0";
  void *str1 = str11.c_str();
  ServerSocket1->Socket->Connections[0]->SendBuf( str1, str11.Length() + 1 );
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
  Timer1->Enabled = true;        
}
//---------------------------------------------------------------------------


user posted image
PM MAIL ICQ Skype YIM   Вверх
thefightclub
Дата 22.4.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.4.2008

Репутация: нет
Всего: нет



билдер ругается вот на эту строчку
ServerSocket1->Socket->Connections[0]->SendBuf( str1, str11.Length() + 1 );
-undefined sybol  ServerSocket1 
как быть?

Кстати большое спасибо за поддержку))


PM MAIL   Вверх
dimas_art
Дата 24.4.2008, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.3.2008
Где: Севастополь

Репутация: нет
Всего: нет



Вот исходник проги на билдере - возможно поможет ;)

Добавлено через 46 секунд
Кстати, ты компонент TServerSocket  выкидывал на форму?

Присоединённый файл ( Кол-во скачиваний: 22 )
Присоединённый файл  CreateDiagram.zip 906,86 Kb
PM MAIL ICQ Skype YIM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flex | Следующая тема »


 




[ Время генерации скрипта: 0.0891 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.