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

Вниз

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

 
GanibalLector ©   (2005-01-18 19:37) [0]

Закончил чтение нескольких глав Буча.Перешел к практике.Появились вопросы.Итак:

1)предположим необходимо создать пару десятков обьектов по некоторому классу.Как бы это правильней сделать?
В данный момент,в голову приходит только одно :

Q1:=TShar.Create;
Q1.SetPosition(50,50);
Q1.SetDirection(-6,6);
//
Q2:=TShar.Create;
Q2.SetPosition(100,100);
Q2.SetDirection(-6,-6);
// и так далее ...


2)коль их пару десятков,то нужно их обьявить.Делаю так :
type
TShar = class
private
//много всего
public
//еще больше
end;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
Q1,Q2,Q3,Q4:TShar; // сократил до четырех
   { Private declarations }
 public
   { Public declarations }
 end;

Чувствую,что можно и нужно проще.

3)и последнее.Мне необходимо передать в класс некоторые значения всех созданных обьектов.Как тут быть ?
Ведь обьектов может быть 5,а может и 25. Думаю использовать array of.


 
Просто Джо ©   (2005-01-18 19:39) [1]

Q1,Q2,Q3,Q4:TShar; // сократил до четырех

type
 TSharArray = array of TShar;
var
 SharArray: TSharArray;


 
Просто Джо ©   (2005-01-18 19:40) [2]

А еще лучше: использовать TObjectList


 
begin...end ©   (2005-01-18 19:41) [3]

> GanibalLector ©   (18.01.05 19:37)

> Думаю использовать array of.

Ну дык используйте :)


 
raidan ©   (2005-01-18 19:42) [4]

http://www.delphimaster.ru/articles/dyntable/index.html
Полезно будет почитать про array of :)


 
GanibalLector ©   (2005-01-18 19:46) [5]

>А еще лучше: использовать TObjectList
А почему?Мотивируйте,ПЛЗ

З.Ы.Спасибо ALL


 
begin...end ©   (2005-01-18 19:48) [6]

> [5] GanibalLector ©   (18.01.05 19:46)

> >А еще лучше: использовать TObjectList
> А почему?Мотивируйте,ПЛЗ

Ну, например, его можно настроить так, чтобы объекты автоматически уничтожались при уничтожении списка.


 
begin...end ©   (2005-01-18 19:50) [7]

Ну и ещё несколько полезных методов там имеется. Сортировка, например.


 
Anatoly Podgoretsky ©   (2005-01-18 19:52) [8]

GanibalLector а попробуй первести, в названии все сказано.


 
GanibalLector ©   (2005-01-18 19:57) [9]

По поводу [1].Я правильно понял?

type
TShar = class
// много всего
end;

type
TSharArray= class
public
TSharArray :array of TShar;
end;


type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
SharArray: TSharArray;


 
begin...end ©   (2005-01-18 19:59) [10]

> [9] GanibalLector ©   (18.01.05 19:57)

Не понял я, а почему просто массив нельзя?


 
GanibalLector ©   (2005-01-18 20:02) [11]


type
 TForm1 = class(TForm)
   TSharArray :array of TShar;
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
SharArray: TSharArray;


Если так,то Expected an identifier but ARRAY fount


 
begin...end ©   (2005-01-18 20:11) [12]

> [11] GanibalLector ©   (18.01.05 20:02)

Если нужно, чтобы массив был полем класса формы, то тогда так:

type
 TSharArray = array of TShar;

 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   SharArray: TSharArray;
 public
 end;


А если нужно, чтобы массив был глобальной переменной в модуле, то так:

type
 TSharArray = array of TShar;

 TForm1 = ...
   ...
 end;

var
 SharArray: TSharArray;


 
GanibalLector ©   (2005-01-18 20:12) [13]

Все,догнал.Вроде так :

type
TShar = class
//
end;

TSharArray =array of TShar;

type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
SharArray: TSharArray;

var
 Form1: TForm1;

implementation


 
jack128 ©   (2005-01-18 20:13) [14]

GanibalLector ©   (18.01.05 20:02) [11]
TForm1 = class(TForm)
  TSharArray :array of TShar;
  procedure FormCreate(Sender: TObject);

как то у тебя не стандартно поле названо ;-)   Published полями могут быть только объекты и интерфейсы.



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

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

Наверх




Память: 0.48 MB
Время: 3.019 c
1-1105962465
XmeD
2005-01-17 14:47
2005.01.30
oleVariant -> pWideChar


9-1095698152
MANGOL
2004-09-20 20:35
2005.01.30
Изометрия


3-1103710895
lightix
2004-12-22 13:21
2005.01.30
Переименование DBF файла-как быть с индексом?


1-1106083974
Ira
2005-01-19 00:32
2005.01.30
Как удалить Panel с формы во время выполнения проги?


1-1105731289
Gear
2005-01-14 22:34
2005.01.30
Сравить два массива.





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