![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Очень нужно решить проблему. Делаю симуляцию взрыва, короче неважно. По делу есть класс
Код:
type TWorld_ODE = class Lavel:string; ... constructor Create; ... И есть процедура FormCreate, в которой я по идее должен написать (форма у меня называется TfrmRagdoll) Код:
procedure TfrmRagdoll.FormCreate(Sender: TObject);
begin
WorldODE.Lavel:='low';
WorldODE := TWorld_ODE.create{('Hight')};//Level - качество физикиэ
... |
|
#2
|
||||
|
||||
|
А зачем ты вообще выполняешь
Код:
WorldODE.Lavel:='low'; Для чего это надо и, возможно, это сделать иначе? |
|
#3
|
||||
|
||||
|
а не проще присваивать значение "low" в самом классе при создании с определенньм пораметром?
|
|
#4
|
|||
|
|||
|
Укажи конструктор как виртуальный и дефолтное значение присвяивай в конструкторе. Если сделать конструктор виртуальным, то дефолтный конструктор без параметров будет невиден. Обращаться к объекту до его создания нельзя.
Код:
type
TMyClass = class
...
public
constructor Create(AParam : String); virtual; // теперь Create() "невиден"
end; |
|
#5
|
|||
|
|||
|
Я наверно немножко вас запутал, плохо расписав задачу и написав {('Hight')};. Параметр действительно закоментирован, это не ошибка.
2Karsh, задавшись этим вопросом, я написал: Код:
constructor TWorld_ODE.create;
...
begin
WorldODE.Lavel := 'Hight';
...2Imikle, ошибка та же, что и описаная выше |
|
#6
|
||||
|
||||
|
Вместо:
Код:
constructor TWorld_ODE.create;
...
begin
WorldODE.Lavel := 'Hight';
...Попробуй: Код:
constructor TWorld_ODE.create;
...
begin
Self.Lavel := 'Hight';
... |
|
#7
|
|||
|
|||
|
точняк, совсем вылетела из головы эта ссылка (Self) на экземпляр класса. Спасибо. Тему можно закрыть (или удалить).
Последний раз редактировалось DungeonLords, 24.02.2009 в 21:42. |