Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Shape'ы, Обращение к Shape как к массиву? 
:(
    Опции темы
Edd
Дата 14.4.2006, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нет, не забыл. Я в этой строке тоже эксперементировал, но ничего не получилось.(Работаю в 5.0)

Это сообщение отредактировал(а) Edd - 14.4.2006, 20:13
PM MAIL   Вверх
Ctrl_Alt_Del
Дата 14.4.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Edd, что то странное.. Выложи проект или покажи код целиком *.h и *.cpp
PM MAIL ICQ   Вверх
Edd
Дата 14.4.2006, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Форма полностью пустая. *срр
Код


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TShape *Shapes[20];
void __fastcall MyMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::MyMouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
     ShowMessage("I'm a clicked shape");
}
//------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
for(int i=0; i<20; ++i)
{
     Shapes[i]=new TShape(this);
     Shapes[i]->Width=30;
     Shapes[i]->Height=30;
     Shapes[i]->Shape=stCircle;
     Shapes[i]->Left=(i+1)*30;
     Shapes[i]->Top=10;
     Shapes[i]->Parent=this;
     Shapes[i]->OnMouseDown=MyMouseDown;
}
}


Дальше *h (Возможно проблема тут)

Код

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
        void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif

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


Шустрый
*


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

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



Убери вот это
Код

TShape *Shapes[20];    
void __fastcall MyMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y);

из *.cpp и поставь в *.h в private область
PM MAIL ICQ   Вверх
Edd
Дата 14.4.2006, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Всё пошло, большое спасибо.
Код

TShape *Shapes[20];

Я не кидал. smile smile smile
PM MAIL   Вверх
Ctrl_Alt_Del
Дата 14.4.2006, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Edd, пжалста.
Лучше кинь... зачем тебе глобальный массив Shape'ов
PM MAIL ICQ   Вверх
Edd
Дата 15.4.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ещё один вопрос.
Как узнать, на какой из Shapes назал пользователь, мозет есть какой нибудь Index или что-нибудь похожее. smile (Нужно чтобы нажатый Shapes закрасился (и другие события добавлю сам))
Хотоелосьбы примерно так:
Код

Shapes[...]->Brush->Color=clRed;


Это сообщение отредактировал(а) Edd - 15.4.2006, 12:02
PM MAIL   Вверх
Ctrl_Alt_Del
Дата 15.4.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Edd, закрасить можно так. В MyMouseDown пиши
Код

((TShape*)Sender)->Brush->Color = ...


А для распознавания можно например заюзать свойство Tag.

Это сообщение отредактировал(а) Ctrl_Alt_Del - 15.4.2006, 14:53
PM MAIL ICQ   Вверх
Edd
Дата 15.4.2006, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

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

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

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

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


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

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


 




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


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

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