Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
836 / 731 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
1

Создание обьекта класса с параметрами

15.12.2013, 23:19. Показов 893. Ответов 7
Метки нет (Все метки)

Создал небольшой обьект Avto1 с параметрами внутри:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 type
  TAvtomobil = class
  public
    God: integer;
    Marka: string;
    Color: string;
    constructor Create(NGod: integer; NMarka, NColor: string);
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
constructor TAvtomobil.Create(NGod: integer; NMarka, NColor: string);
begin
  God := NGod;
  Marka := NMarka;
  Color := NColor;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Avto1: TAvtomobil;
begin
  // Создаю объект Avto1 - версия с параметрами
  Avto1 := TAvtomobil.Create(1994, 'Волга', 'вишневый'); //передали параметрами
  ShowMessage(Avto1.Marka + ' цвет: ' + Avto1.Color + ' год: ' +  IntToStr(Avto1.God));
  Avto1.Destroy; //уничтожили обьект
end;
Вопрос такой:
1) я его правильно создал?
2) почему этот обьект так мало умеет?
3) как создать этот же обьект без параметров?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2013, 23:19
Ответы с готовыми решениями:

Пример класса с конструктором и деструктором, создание экземпляра класса через конструктор с параметрами
Привести пример класса с конструктором и деструктором, созданием экземпляра класса с помощью...

создание свойства обьекта уже Net - го класса
как возможно создать дополнительное свойство для объекта ну допустим стринг?

Создание класса с параметрами
Подскажите пжста, как создать свой класс с параметрами в виде {}. Как например в TweenMax...

Реализовать создание объекта класса с нужными параметрами
Массивы в классе и проблемы с конструкторами Необработанное исключение NullReferenceException,...

7
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
15.12.2013, 23:30 2
1. Упрощённый вариант, очень.
2. Что создал, то и умеет.
3. Посмотреть в исходниках Дельфи, как создаются property.

Добавлено через 6 минут
Delphi
1
Avto1.Destroy;
Вот так делать нельзя, используй Free.
1
836 / 731 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
15.12.2013, 23:43  [ТС] 3
Понял, а вот тоже самое тока без параметров внутри конструктора.
Правильно сделал нет?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
type
  TAvtomobil = class
  public
    God: integer;
    Marka: string;
    Color: string;
 
    constructor Create;
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
{ TAvtomobil }
 
constructor TAvtomobil.Create;
begin
  God:= 1990;
  Marka:= 'Âîëãà';
  Color:= 'Âèøíåâûé'
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Avto1: TAvtomobil;
begin
 Avto1:= TAvtomobil.Create;
 Avto1.God:= 1994;
 Avto1.Marka:= 'Âîëãà';
 Avto1.Color:= 'âèøíåâûé';
 ShowMessage(Avto1.Marka + ' öâåò: ' + Avto1.Color + ' ãîä: ' + IntToStr(Avto1.God));
 Avto1.Destroy;
end;
 
end.
3. Посмотреть в исходниках Дельфи, как создаются property.
Где этот исходник?


Мне пока от простого к сложному, Я хочу классы делать со многими параметрами, но не умею еще.
0
67 / 67 / 13
Регистрация: 04.12.2013
Сообщений: 161
Записей в блоге: 1
15.12.2013, 23:51 4
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Где этот исходник?
зажимаешь Ctrl и нажимаешь на любой модуль в uses, ну и смотри как правильно его создавать.

ну или вот для примера
Delphi
1
2
3
4
5
6
7
TAvtomobil = class
  private
    fGod: integer;
    procedure SetGod(fGod: integer);
  protected
      property God: TAlignment read fGod write SetGod;
  end;
1
836 / 731 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
15.12.2013, 23:57  [ТС] 5
Че то мне кажется я там во 2 варианте лишка написал, вот так наверно правильно?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
type
  TAvtomobil = class
  public
    God: integer;
    Marka: string;
    Color: string;
 
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Avto1: TAvtomobil;
begin
 Avto1:= TAvtomobil.Create;
 Avto1.God:= 1994;
 Avto1.Marka:= 'Âîëãà';
 Avto1.Color:= 'âèøíåâûé';
 ShowMessage(Avto1.Marka + ' öâåò: ' + Avto1.Color + ' ãîä: ' + IntToStr(Avto1.God));
 Avto1.Destroy;
end;
 
end.
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
15.12.2013, 23:57 6
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Где этот исходник?
Любые исходники в папке Source.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
type
  TAvtomobil = class
  private
    fGod   : Integer;
    fMarka : String;
    fColor : String;
 
    procedure SetGod(Value : Integer);
    procedure SetMarka(Value : String);
    procedure SetColor(Value : String);
  public
    property God   : Integer read fGod   write SetGod;
    property Marka : String  read fMarka write SetMarka;
    property Color : String  read fColor write SetColor;
  end;
 
procedure TAvtomobil.SetGod(Value : Integer);
begin
  if Value <> fGod then
    fGod := Value
end;
 
procedure TAvtomobil.SetMarka(Value : String);
begin
  if Value <> fMarka then
    fMarka := Value
end;
 
procedure TAvtomobil.SetColor(Value : String);
begin
  if Value <> fColor then
    fColor := Value
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Avto1: TAvtomobil;
begin
  Avto1 :=  TAvtomobil.Create;
  Avto1.God := 1994;
  Avto1.Marka := 'Âîëãà';
  Avto1.Color := 'âèøíåâûé';
  ShowMessage(Avto1.Marka + ' öâåò: ' + Avto1.Color + ' ãîä: ' + IntToStr(Avto1.God));
  Avto1.Free;
end;
1
67 / 67 / 13
Регистрация: 04.12.2013
Сообщений: 161
Записей в блоге: 1
16.12.2013, 00:01 7
Avto1.Destroy вам же написали уже что нужно использовать Free, а еще лучше FreeAndNil(Avto1)
0
836 / 731 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
16.12.2013, 00:10  [ТС] 8
зажимаешь Ctrl и нажимаешь на любой модуль в uses, ну и смотри как правильно его создавать.
RAZETKO
А че там смотреть, как встроенные классы сделаны это?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2013, 00:10

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вернуть С-строку из обьекта класса
Есть класс, у него метод c_str. Какой лучший способ вернуть С-строку? 1)void c_str(char* str) {...

Инициализация обьекта класса списком C++
Здравствуйте, кому не сложно расскажите в кратце как мне сделать вот такую штуку: у меня есть...

Смысл обьекта производного класса
Здравствуйте! Подскажите пожалуйста, что есть экземпляр производного класса в Java? Это копия...

Передача обьекта класса в List
Доброго времени суток. Может кто подскажет, как в классе передать объект в list? Поле клсса...

возврат копии обьекта класса из метода
Привет всем. Есть класс ниже в нём operator+. Помогите компилятор выдаёт ворнинг warning C4172:...

Передача обьекта из класса в класс формы, Передача обьекта из класса в класс формы
Здравствуйте! У меня есть класс в отдельной MyClass.cs и клас формы Form1.cs. Как мне из сласса...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.