Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как из своего класса манипулировать элементами другого класса?

493
20 февраля 2002 года
Taras
24 / / 20.09.2000
Создал класс картинки на базе TImage, включил его в
класс формы. Необходимо при нажатии мышки на картинке,
изменять текст в Edit1, расположенном на форме.

Заголовочный файл картинки

#include <Classes.hpp>
#include <Controls.hpp>
#include &quot;Unit1.h&quot;

class TExtImage public TImage
{
public
__fastcall TExtImage(TComponent* Owner);
private
DYNAMIC void __fastcall MouseDown(TMouseButton Button, ClassesTShiftState Shift, int X, int Y);
protected
};
//---------------------------------------------------------------------------
extern PACKAGE TExtImage *ExtImage;
//---------------------------------------------------------------------------

Файл реализации картинки

#include <vcl.h>
#include &quot;TExtImage.h&quot;

__fastcall TExtImageTExtImage(TComponent* Owner)
TImage(Owner)
{
}

void __fastcall TExtImageMouseDown(TMouseButton Button, ClassesTShiftState Shift, int X, int Y)
{
TForm1 *CurForm = Form1;
CurForm->Edit1.Text = &quot;Какой-то текст…&quot;;
}

Заголовочный файл формы

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include &quot;TExtImage.h&quot;

//---------------------------------------------------------------------------
class TForm1 public TForm
{
__published // IDE-managed Components
TEdit *Edit1;
private // User declarations
TExtImage *MyImage;
public // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

Файл реализации формы

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

#include <vcl.h>
#pragma hdrstop

#include &quot;Unit1.h&quot;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource &quot;*.dfm&quot;

TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1TForm1(TComponent* Owner)
TForm(Owner)
{
TExtImage *MyImage = new TExtImage(this);
TPicture *LoadPic = new TPicture;
LoadPic->LoadFromFile(&quot;MyPicture.bmp&quot;);
MyImage->Name = &quot;Picture1&quot;;
MyImage->Picture = LoadPic;
MyImage->Parent = Form1;
delete LoadPic;
}
//---------------------------------------------------------------------------

При компиляции появляются следующие ошибки

[C++ Error] TExtImage.h(5) E2238 Multiple declaration for 'TExtImage'
[C++ Error] TExtImage.h(5) E2344 Earlier declaration of 'TExtImage'
[C++ Error] TExtImage.cpp(12) E2294 Structure required on left side of . or .*
[C++ Warning] TExtImage.cpp(13) W8004 'CurForm' is assigned a value that is never used

Подскажите, пожалуйста, что я делаю не так.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог