Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связь между формами, Не получается осуществить 
V
    Опции темы
zhenium
Дата 18.5.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Добрый всем вечер!

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

Подскажите, кто знает...
Заранее благодарен!
PM MAIL   Вверх
NightXXX
Дата 18.5.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Самое простое решение, сделай открытым свой класс для внешнего мира!
Если я не ошибаюсь то при связке форм, наследование классов форм идет автоматически, следовательно можно пользоваться услугами другого класса!
PM MAIL ICQ   Вверх
Anikmar
Дата 18.5.2007, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Покажите код, так сложно что-то сказать.
Может вы закрыли свой объект, может вызываете неправильно
PM MAIL ICQ   Вверх
zhenium
Дата 18.5.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это-то можно, но мне по заданию требуется, чтобы объект был закрытым...
PM MAIL   Вверх
Anikmar
Дата 18.5.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Тогда делайте открытые методы доступа к этому объекту. Какие проблемы?

Можно как-нибудь так (извращение, конечно, на мой взгляд, но условие соблюдено):
Код

class MyClass
{
private
  MyClass1 MyObject;
public: 
  MyClass1* GetMyObject(void){return &MyObject}

PM MAIL ICQ   Вверх
zhenium
Дата 18.5.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Заголовочник с нужным классом.

Код

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

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include "sport.hpp"
#include "master.hpp"
#include "exept.hpp"
#include <Grids.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
#include <DBCtrls.hpp>
#include <list>
#include <algorithm>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TButton *Enter_1;
    TButton *Enter_2;
    TMainMenu *MainMenu1;
    TMenuItem *File1;
    TMenuItem *Exit1;
    TMenuItem *Help2;
    TMenuItem *SearchforHelpOn2;
    TMenuItem *About1;
    TPanel *Panel1;
    TStringGrid *StringGrid2;
    TStringGrid *StringGrid1;
    TMenuItem *Save;
    TMenuItem *First;
    TMenuItem *Second;
    TButton *Button1;
    TButton *Button2;
    TBevel *Bevel1;
    TButton *Button3;
    TButton *Button4;
    TLabel *Label1;
    TLabel *Label2;
    TButton *Button5;
    TButton *Button6;
    TEdit *Edit1;
    TMenuItem *N1;
    TMenuItem *N2;
    void __fastcall Enter_1Click(TObject *Sender);
    void __fastcall Enter_2Click(TObject *Sender);
        void __fastcall Exit1Click(TObject *Sender);
    void __fastcall SearchforHelpOn2Click(TObject *Sender);
    void __fastcall About1Click(TObject *Sender);
    void __fastcall FormMouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y);
    void __fastcall FormMouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall FormMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall FormDblClick(TObject *Sender);
    void __fastcall FirstClick(TObject *Sender);
    void __fastcall SecondClick(TObject *Sender);
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall Button3Click(TObject *Sender);
    void __fastcall Button4Click(TObject *Sender);
    void __fastcall Button2Click(TObject *Sender);
    void __fastcall Button5Click(TObject *Sender);
    void __fastcall Button6Click(TObject *Sender);
    void __fastcall N1Click(TObject *Sender);
    void __fastcall N2Click(TObject *Sender);

private:    // User declarations
public:        // User declarations

    master_t
        ob_1,
        ob_2;


    exept_t
        ob;

    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
int
    StartX,
    StartY;
bool
    get = false,
    get_1 = false;
int
    metka = 0,
    ctr = 0,
    ctr_2 = 0,
    ctr_3 = 20,
    ctr_4 = 0;
float
    ctr_1;
std :: list <master_t> obj_1;
std :: list <master_t> obj_2;
std :: list <master_t> :: iterator p_1 = obj_1.begin();
std :: list <master_t> :: iterator p_2 = obj_2.begin();

//---------------------------------------------------------------------------
#endif


Файл, в котором его нужно использовать.

Код

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

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit5.h"
#include "sport.hpp"
#include "master.hpp"
#include "exept.hpp"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm5 *Form5;

//---------------------------------------------------------------------------
__fastcall TForm5::TForm5(TComponent* Owner)
    : TForm(Owner)
{
    Label1->Caption = "Àäðåñ ñîõðàíåíèÿ";
    Label2->Caption = " Èìÿ ôàéëà";
}
//---------------------------------------------------------------------------

void __fastcall TForm5::BitBtn2Click(TObject *Sender)
{
    Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm5::BitBtn1Click(TObject *Sender)
{
//    ob_1.set_data( obj_1, date, time_val );
}
//---------------------------------------------------------------------------

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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

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



Вы забыли добавить Form1:
Form1->ob_1.set_data( obj_1, date, time_val );

PM MAIL ICQ   Вверх
zhenium
Дата 18.5.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо всем огромное!!!
Получилось!

Жаль не могу Вам поставить плюсы!

Это сообщение отредактировал(а) zhenium - 18.5.2007, 20:35
PM MAIL   Вверх
Klin
Дата 18.5.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(zhenium @  18.5.2007,  21:33 Найти цитируемый пост)
Жаль не могу Вам поставить плюсы!

Зато я могу smile


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
zhenium
Дата 18.5.2007, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Тогда награди от моего имениsmile
Спасибо.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




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


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

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