Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi для начинающих

Войти
Регистрация
Восстановить пароль
 
Vitany
0 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 32
#1

Реализация иерархии классов - Delphi

13.12.2012, 18:57. Просмотров 516. Ответов 1
Метки нет (Все метки)

При компиляции второго модуля, в котором наследуются поля и методы первого модуля, почему то не индентифицируются поля первого модуля

Собственно, код:

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
108
unit Locality;
 
interface
 
uses
  Windows, Classes, Controls, Graphics, Grids, SysUtils;
 
type
  TLocality = class(TObject)
  private
    { ïîëÿ ГЁ ìåòîäû, äîñòóïГ*ûå òîëüêî Гў ìîäóëå (ñêðûòû îò ïîëüçîâГ*òåëÿ)  }
    FName:string;    //èìÿ ýêçåìïëÿðГ* îáúåêòГ*
    FPopulation:LongInt; //÷èñëåГ*Г*îñòü Г*Г*ñåëåГ*ГЁГї
    FSQ:LongInt;//ïëîùГ*äü
    procedure SetName(Value:string);
    procedure SetPopulation(Value:LongInt);
    procedure SetSQ(Value:LongInt);
  protected
    FClassName:string;
    FObls:string;//îáëГ*Г±ГІГј
    FLang:string;//ÿçûê
    FPhone:Integer;//òåëåôîГ*Г*ûé êîä
    FIndx:Integer;//ïî÷òîâûé ГЁГ*äåêñ
    FBg:LongInt;//áþäæåò
  public
     constructor Create(AName, AObls, ALang:string; APopulation, ABg,
     ASQ:LongInt; APhone, AIndx:Integer); virtual;
     procedure SetBg(APopulation:LongInt; ABg:LongInt); virtual; abstract;
     procedure ClearGrid(AStringGrid: TStringGrid);
     procedure DrawGrid(AStringGrid: TStringGrid); virtual;
     procedure EditGrid(AStringGrid: TStringGrid; ARow:integer); virtual;
     property ClassName: string read FClassName;
     property Population:LongInt read FPopulation write SetPopulation;
     property SQ:LongInt read FSQ write SetSQ;
     property Obls:string read FObls write FObls;
     property Lang:string read FLang write FLang;
     property Phone:Integer read FPhone write FPhone;
     property Indx:Integer read FIndx write FIndx;
     property Bg:LongInt read FBg write FBg;
  end;
 
implementation
 
      procedure TLocality.SetName(Value:string);
      begin
          if (Value <> FName) and (Value <> '') then FName := Value;
      end;
 
      procedure TLocality.SetPopulation(Value:LongInt);
      begin
         if (Value <> FPopulation) and (Value <> 0) then FPopulation := Value;
      end;
 
      procedure TLocality.SetSQ(Value:LongInt);
      begin
         if (Value <> FSQ) and (Value <> 0) then FSq := Value;
      end;
 
      constructor TLocality.Create(AName, AObls, ALang:string; APopulation, ABg,
     ASQ:LongInt; APhone, AIndx:Integer);
      begin
        FName:=AName;
        FObls:=AObls;
        FLang:=ALang;
        FPopulation:=APopulation;
        FBg:=ABg;
        FSq:=ASq;
        FPhone:=APhone;
        FIndx:=AIndx;
      end;
 
       procedure TLocality.ClearGrid(AStringGrid: TStringGrid);
       var
         i: Byte;
       begin
           with AStringGrid do
             for i := 1 to RowCount - 1 do Rows[i].Clear;
        end;
 
       procedure TLocality.DrawGrid(AStringGrid: TStringGrid);
       var
         i: Byte;
       begin
         // ГЁГ*èöèГ*ëèçГ*öèÿ ГїГ·ГҐГҐГЄ ГІГ*áëèöû AStringGrid Г§Г*Г*Г·ГҐГ*èÿìè ñâîéñòâ îáúåêòГ*
       with AStringGrid do
        begin
          Cells[0, 1] := 'Class';
          Cells[1, 1] := FClassName;
          Cells[0, 2] := 'Name';
          Cells[1, 2] := FName;
          Cells[0, 3] := 'Population';
          Cells[1, 3] := IntToStr(FPopulation);
         { Г§Г*ïîëГ*ГҐГ*ГЁГҐ ÿ÷åéêè Г§Г*Г*Г·ГҐГ*ГЁГҐГ¬ ñâîéñòâГ* Color öâåòîì Color }
          for i := 4 to RowCount - 1 do Rows[i].Clear; {îò÷èùГ*ГҐГ¬ îñòГ*ëüГ*ûå ñòðîêè}
         end
        end;
 
       procedure TLocality.EditGrid(AStringGrid: TStringGrid; ARow: Integer);
 
      begin
       with aStringGrid do
        case ARow of  { âûáîð ñâîéñòâГ* Гў ÿ÷åéêå AStringGrid'Г* ГЇГ® ñòðîêå ARow }
         2:FName := Cells[1, 2];
 
        end;
      end;
 
end.

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
unit City;
 
interface
 
uses
  Locality,Graphics, Grids, SysUtils;
 
type
  { îáúåêò -  ГѓГ®Г°Г®Г¤, ïîòîìîê Г*ГЎГ±ГІГ°Г*ГЄГІГ*îãî ГЄГ«Г*Г±Г±Г* }
  TCity = class(TLocality)
    // îáúÿâëåГ*ГЁГҐ ïåðåêðûòûõ ðîäèòåëüñêèõ ìåòîäîâ
    constructor Create(AName, AObls, ALang:string; APopulation, ABg,
     ASQ:LongInt; APhone, AIndx:Integer); override;
    procedure SetBg(APopulation:LongInt; ABg:LongInt); override;
    procedure DrawGrid(AStringGrid: TStringGrid); override;
 end;
 
 
implementation
 
    constructor TCity.Create(AName, AObls, ALang:string; APopulation, ABg,
     ASQ:LongInt; APhone, AIndx:Integer);
    begin
      inherited Create(AName, AObls, ALang, APopulation, ABg,
      ASQ, APhone, AIndx);
      FClassName := 'TCity';
    end;
 
    procedure SetBg(APopulation:LongInt; ABg:LongInt);
    begin
      If (APopulation<>0)and(ABg<>0) then FBg:=ABg*APopulation*0.91235;
    end;
 
     procedure DrawGrid(AStringGrid: TStringGrid);
     begin
         inherited DrawGrid(AStringGrid);
         with AStringGrid do
          begin
             Cells[0, 4] := 'Lang';
             Cells[1, 4] := FLang;
             Cells[0, 5] := 'Obl';
             Cells[1, 5] := FObls;
             Cells[0, 6] := 'Phone';
             Cells[1, 6] := IntToStr(FPhone);
             Cells[0, 7] := 'Index';
             Cells[1, 7] := IntToStr(FIndex);
             Cells[0, 8] := 'Buget';
             Cells[1, 8] := IntToStr(FBg);
          end;
     end;
 
end.

В City не определяются ни FBg, ни FObl, ни вообще какие либо поля из модуля Locality.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 18:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация иерархии классов (Delphi):

Создание иерархии классов - Delphi
Создать иерархию классов. воздушный шар--дирижабль--самолет Характеристики шара: скорость движения, направление движения (угол 0..359...

Механизм наследования, создание иерархии классов - Delphi
Создайте иерархию классов для решения следующей задачи: Приложение должно сохранять следующую информацию:  фамилия и инициалы...

По данным о 30 учениках разных классов: определить фамилию учеников девятых классов, имеющих пятерки - Delphi
помогите пожалуйста решить мне задачу по Delphi, только не через консольное приложение. Я сама просто не понимаю как ее решить.Там надо...

Как обратиться к параметрам объекта, который выше по иерархии? - Delphi
ДОБРЫЙ ДЕНЬ! Есть вопрос. Например, есть класс &quot;Tпомещение&quot; и есть класс &quot;Tмебель&quot;. Объект типа &quot;мебель&quot; является массивом переменных...

Проверить являются члены множества классов потомками другого множества классов - Delphi
Как проверить являются ли члены множества классов потомками другого множества классов Например, есть четыре множества, являющиеся...

На основании иерархии объектов предметной области "Компьютерные игры" сформировать главное меню проекта - Delphi
На основании иерархии объектов предметной области,Компьютерные игры, сформировать главное меню проекта. В меню должно быть не менее 20...

1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
24800 / 16474 / 5079
Регистрация: 22.10.2011
Сообщений: 29,099
Записей в блоге: 5
13.12.2012, 19:35 #2
Добавь имя класса при реализации:
Delphi
1
2
3
4
5
6
7
8
9
procedure TCity.SetBg(APopulation:LongInt; ABg:LongInt);
begin
// ...
end;
 
procedure TCity.DrawGrid(AStringGrid: TStringGrid);
begin
// ...
end;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2012, 19:35
Привет! Вот еще темы с ответами:

Реализация иерархии классов в базе данных? - C#
Понимаю, что любая база данных очень плохо подходит для ООП. Но все же, какие на практике есть способы реализации иерархии классов в базе...

Реализация иерархии классов (Фигура – Круг - Цилиндр) - C#
Напишите фрагмент программы реализации иерархии классов: Фигура – Круг - Цилиндр. Класс “Фигура” - абстрактный. В каждом производном классе...

Реализация иерархии классов на основе класса "Грузоперевозчик" - C++
Помогите, пожалуйста!!!!Четвёртый день сижу над этой задачей и ничего не получается. Создать базовый класс «Грузоперевозчик» и...

Разработка иерархии классов - Visual C++
Розробка ієрархії класів «Торгівельна мережа комп’ютерної техніки». Розробити ієрархічну систему класів, що визначає торговельну мережу...


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

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

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