Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 13
1

Создать свой класс с методами и свойствами

10.03.2012, 10:26. Показов 4353. Ответов 9
Метки нет (Все метки)

Разработать структуру объекта "Газовая колонка". Объект должен иметь не менее пяти методов и не менее трёх свойств. Разработать программу моделирования работы данного объекта.

Я по методичке написала так как поняла, но Delphi у меня ругается в нескольких местах


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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
unit Kolonka;
*
interface
*
uses
SysUtils, Classes;
*
type
TForm1=class(TForm) //на сколько я понимаю, если в Uses не прописано Forms, то они и не нужны, но он ругается что я ее не прописываю, поэтому пришлось прописать класс, но я не думаю что он мне понадобится. К тому же мне еще нужно будет связать первый Unit со вторым
TP=procedure of object;// здесь подчеркивает и ниже и пишет сообщение (см. чуть ниже)
type
*
TKolonka=class(TKolonka)
private
{ Private declarations (поле)}
TEMP:Word; {температура}
Power:Real; {мощность}
p:TP; //подчеркивает в этих местах и пишет "Expected ':' but '=' found"
br:Boolean; {авария}
Water:Word;{расход воды}
procedure Feed (NewTEMP:Word);{смена температуры}
function GetTEMP:Word;
function GetPower:Real;
function GetWater:Word;
public
{ Public declarations (свойства)}
property n:Word read GetTEMP write Feed;
property pwr: Real read GetPower;
property water: Word read GetWater;
{методы}
constructor Create (PP:TP);
destructor Free;
procedure Start; {запуск}
procedure Stop; {остановка}
procedure Abort; {аварийная остановка}
end;
*
implementation
{TKolonka}
uses Windows;
*
function TKolonka.GetWater:Word;
begin
Result:=7; {номинальный расход воды}
end;
*
constructor TKolonka.Create(pp:TP);
begin
inherited Create;
p:=PP; {запоминаем ссылку на процедуру в поле р}
TEMP:=5; {начальная температура}
Power:=0; {начальная мощность}
br:=False;{аварии пока нет}
end;
*
destructor TKolonka.Free;
begin
*
end;
*
function TKolonka.GetTEMP:word;
begin
Result:=TEMP
end;
*
function TKolonka.GetPower:Real;
begin
GetPower:=(Temp/water)*100
end;
*
procedure TKolonka.Start;
begin
br:=False; {для пуска после аварии}
Feed(Water);
end;
*
procedure TKolonka.Stop;
begin
Feed(0);
end;
*
procedure TKolonka.Feed(NewTemp:Word);
var i:word;
s:Integer;
begin
if temp-newtemp>40 then
s:=-1;
else
s:=1;
for i:= 1 to Abs(Temp-newtemp) do
begin
if br then Exit
Temp:=temp+s;
Sleep(10);
p;
Power:=GetPower;
end;
end;
*
procedure TKolonka.Abort;{аварийная остановка}
begin
br:=True;
Temp:=5;
Power:=0;
p;
end;
end.


Unit2

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unit Unit2;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
 
type
TForm2 = class(TForm)
 
Button1: TButton;
Button2: TButton;
Button3: TButton;
Image1: TImage;
TrackBar1: TTrackBar;
ProgressBar1: TProgressBar;
 
Label1: TLabel;
procedure FormCreate(sender: TObject);
procedure Button1Click (sender: TObject);
procedure Show;
procedure Button2Click(sender: TObject);
procedure Button3Click(sender: TObject);
procedure Button4Click(sender: TObject);
 
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form2: TForm2;
 
implementation
 
uses Kolonka //Вот здесь говорит, что данный объект Kolonka не был найден
 
{$R *.dfm}
 
procedure TForm.Show;
var m:TP;
begin
{двигаем индикатор}
ProgressBar1.Position:=m.n;
{выводим информацию}
label.Caption:='Температура '+IntToStr(m.n)+' градусов цельсия, потребляемая мощность '+FloatToStr(m.pwr)+' кВт';
{обновляем изображение на форме}
Application.PProcessMessages
end;
 
procedure TForm.FornCreate(sender: TObject);
begin
{на вход конструктору подается имя процедуры}
m:=TKolonka.Create(Show);
{Максимальное значение индикатора и движка = расход воды}
trackbar1.Max:=m.water;
ProgressBar.Max:=m.water;
end;
 
procedure Button1Click (sender: TObject);
begin
m.Start
end;
 
procedure Button2Click (sender: TObject);
begin
m.Stop
end;
 
procedure Button3Click (sender: TObject);
begin
m.Abort
end;
 
end.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2012, 10:26
Ответы с готовыми решениями:

Создать класс Person со свойствами name, gender, age, married и методами чтения/установки этих свойств
Задание: Код: Person.h #include <string> #ifndef PERSON_H #define PERSON_H class Person {...

Определить абстрактный класс Shape с абстрактными свойствами и методами
Определить абстрактный класс Shape с абстрактными свойствами и методами: абстрактные свойства...

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать...

Clojure Создать класс Табуретка со свойствами
Создать класс Табуретка со свойствами: Высота (h, в см), Качествоизделия (низкое, среднее,...

9
Модератор
64059 / 47474 / 32728
Регистрация: 18.05.2008
Сообщений: 115,185
10.03.2012, 11:48 2
Цитата Сообщение от Профорг Посмотреть сообщение
к сожалению, не понимаю что это такое. Разъясните пожалуйста,
Выделяете мышкой написанный код и нажимаете на кнопочку DELPHI над окном сообщений.
Вообще под окном есть ссылка на то как это все делать.

Добавлено через 5 минут
И в тегах нельзя что-то выделять цветом или разными шрифтами, все что нужно пишите комментариями
//вот это не работает
//здесь ошибка
и т.д.
Попробуйте еще раз написать то что Вы хотели.
1
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 13
10.03.2012, 12:50  [ТС] 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
unit Kolonka;
 
interface
 
uses
SysUtils, Classes;
 
type
TForm1=class(TForm) //на сколько я понимаю, если в Uses не прописано Forms, то они и не нужны, но он ругается что я ее не прописываю, поэтому пришлось прописать класс, но я не думаю что он мне понадобится. К тому же мне еще нужно будет связать первый Unit со вторым
TP=procedure of object;// здесь подчеркивает и ниже и пишет сообщение (см. чуть ниже)
type
 
TKolonka=class(TKolonka)
private
{ Private declarations (поле)}
TEMP:Word; {температура}
Power:Real; {мощность}
p:TP; //подчеркивает в этих местах и пишет "Expected ':' but '=' found"
br:Boolean; {авария}
Water:Word;{расход воды}
procedure Feed (NewTEMP:Word);{смена температуры}
function GetTEMP:Word;
function GetPower:Real;
function GetWater:Word;
public
{ Public declarations (свойства)}
property n:Word read GetTEMP write Feed;
property pwr: Real read GetPower;
property water: Word read GetWater;
{методы}
constructor Create (PP:TP);
destructor Free;
procedure Start; {запуск}
procedure Stop; {остановка}
procedure Abort; {аварийная остановка}
end;
 
implementation
{TKolonka}
uses Windows;
 
function TKolonka.GetWater:Word;
begin
Result:=7; {номинальный расход воды}
end;
 
constructor TKolonka.Create(pp:TP);
begin
inherited Create;
p:=PP; {запоминаем ссылку на процедуру в поле р}
TEMP:=5; {начальная температура}
Power:=0; {начальная мощность}
br:=False;{аварии пока нет}
end;
 
destructor TKolonka.Free;
begin
 
end;
 
function TKolonka.GetTEMP:word;
begin
Result:=TEMP
end;
 
function TKolonka.GetPower:Real;
begin
GetPower:=(Temp/water)*100
end;
 
procedure TKolonka.Start;
begin
br:=False; {для пуска после аварии}
Feed(Water);
end;
 
procedure TKolonka.Stop;
begin
Feed(0);
end;
 
procedure TKolonka.Feed(NewTemp:Word);
var i:word;
s:Integer;
begin
if temp-newtemp>40 then
s:=-1;
else
s:=1;
for i:= 1 to Abs(Temp-newtemp) do
begin
if br then Exit
Temp:=temp+s;
Sleep(10);
p;
Power:=GetPower;
end;
end;
 
procedure TKolonka.Abort;{аварийная остановка}
begin
br:=True;
Temp:=5;
Power:=0;
p;
end;
end.
Unit2
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
unit Unit2;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls;
 
type
TForm2 = class(TForm)
 
Button1: TButton;
Button2: TButton;
Button3: TButton;
Image1: TImage;
TrackBar1: TTrackBar;
ProgressBar1: TProgressBar;
 
Label1: TLabel;
procedure FormCreate(sender: TObject);
procedure Button1Click (sender: TObject);
procedure Show;
procedure Button2Click(sender: TObject);
procedure Button3Click(sender: TObject);
procedure Button4Click(sender: TObject);
 
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form2: TForm2;
 
implementation
 
uses Kolonka //Вот здесь говорит, что данный объект Kolonka не был найден
 
{$R *.dfm}
 
procedure TForm.Show;
var m:TP;
begin
{двигаем индикатор}
ProgressBar1.Position:=m.n;
{выводим информацию}
label.Caption:='Температура '+IntToStr(m.n)+' градусов цельсия, потребляемая мощность '+FloatToStr(m.pwr)+' кВт';
{обновляем изображение на форме}
Application.PProcessMessages
end;
 
procedure TForm.FornCreate(sender: TObject);
begin
{на вход конструктору подается имя процедуры}
m:=TKolonka.Create(Show);
{Максимальное значение индикатора и движка = расход воды}
trackbar1.Max:=m.water;
ProgressBar.Max:=m.water;
end;
 
procedure Button1Click (sender: TObject);
begin
m.Start
end;
 
procedure Button2Click (sender: TObject);
begin
m.Stop
end;
 
procedure Button3Click (sender: TObject);
begin
m.Abort
end;
 
end.
0
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
10.03.2012, 14:41 4
Цитата Сообщение от Профорг Посмотреть сообщение
Я по методичке написала так как поняла, но Delphi у меня ругается в нескольких местах
В каких местах? И как ругается?
1
13073 / 5858 / 1706
Регистрация: 19.09.2009
Сообщений: 8,807
10.03.2012, 14:52 5
Здесь весь проект надо проверять. Как я понял, проект и модули поломаны. Например, был создан модуль формы, потом этот модуль просто был переименован в Kolonka, а код объявления класса TForm1 был в ручную зачищен. В общем, весь проект надо смотреть и ремонтировать.
1
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 13
10.03.2012, 18:34  [ТС] 6
Я могу скинуть методичку где это написано, вернее аналог данной программы. А вы не могли бы порекомендовать в электронном виде какое нить пособие по Delphi? Буду оч признательна
0
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
10.03.2012, 22:00 7
Послушай, если есть возможность скинь задание и весь проект...тебе обязательно кто то поможет)))
1
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 13
11.03.2012, 11:36  [ТС] 8
Задание написано в самом начале темы, в первом сообщении. То, что что идет далее - это чисто мои попытки написать программу. К сожалению, на лекциях тяжело что то понять, поэтому я обращаюсь сюда. Помогите пожалуйста
0
1903 / 1014 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
11.03.2012, 13:20 9
Цитата Сообщение от Профорг Посмотреть сообщение
Разработать структуру объекта "Газовая колонка". Объект должен иметь не менее пяти методов и не менее трёх свойств. Разработать программу моделирования работы данного объекта.
Вот это и есть задание?


Разработать программу моделирования работы данного объекта.

Не по теме:

Вот это действительно суровые преподы пошли :rofl:

1
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 13
20.03.2012, 06:51  [ТС] 10
Ну, наверно. Нужно сделать имитатор газовой колонки, что бы он выполнял какие-то действия. Эта программа должна содержать новые методы и свойства.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2012, 06:51

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра.
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра....

Создать класс monster со свойствами здоровье, сила
Помогите пожалуйста решить задачу: Создать класс monster со свойствами здоровье, сила. Суммарное...

Создать класс Ring, описываемое координатами, радиусами и свойствами
Такое вот задание: создать класс Ring (кольцо), описываемое координатами центра, внешним и...

Создать класс Computer с методами
Make class Computer using a functional style with methods: turnOn() - for turn on computer (if...


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

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

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