Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.01.2010, 13:32
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию Синтаксис Delphi 7 и Delphi 2010

Почему-то на объявление класса типа
Код:
unit UnitMain;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, ExtCtrls;
type
  TWLD = class//класс
  type //8 строка
    TH = record//тип запись в классе
      Name : string[10];
    end;//конец записи
  var
    H : TH;
  end;//конец класса 24 строка
var
 WLD : TWLD;
//*****************************************************************************
implementation //28 строка
end.
Delphi 7 ворчит не может, а Delphi 2010 прожевал и не поперхнулся...
Вот ошибки Delphi 7
Цитата:
[Error] UnitMain.pas(8): 'END' expected but 'TYPE' found
[Error] UnitMain.pas(24): 'IMPLEMENTATION' expected but ';' found
[Error] UnitMain.pas(28): '.' expected but 'IMPLEMENTATION' found
[Fatal Error] FormMain.pas(34): Could not compile used unit 'UnitMain.pas'
Может кто знает ответ, как мне в Delphi 7 реализовать...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #2  
Старый 28.01.2010, 13:53
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Странно, что не попернулся т.к. у вас записано следующее:
Код:
type
  TWLD = class type TH = record Name : string[10]; end;
Не мог компилятор ни 10-ки ни 7-ки такую конструкцию пропустить.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 28.01.2010, 14:07
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Может подскажешь, как сделать...
В некотором классе, мне нужно объявить тип данных record...
Что я и сделал
Цитата:

type
TH = record
Name : string[10];
end;
Далее хочу создать переменную этого типа
Цитата:
var
H : TH;
Класс объявлен стандартно
Цитата:
type
TWLD = class
...
end;
var
WLD : TWLD;
Что не так непонятно...
Повторюсь (только что проверил) Delphi 7 выдает вышенаписанные ошибки, Delphi 2010 компилирует программу...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 28.01.2010 в 14:13.
Ответить с цитированием
  #4  
Старый 28.01.2010, 14:26
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Оставим новые фичи 10-ки в покое, это явно не ваш случай. Вам нужно видимо такое:
Код:
Type
 TMyRec = record
   FN,MN,LN: String;
 end;

 TMyCalss = class
  MyRec: TMyRec;
 end;

Var
 MR: TMyRec;
 MC: TMyClass;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 28.01.2010, 18:55
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Весь прикол в том, что я не хочу выносить тип MyRecord за пределы класса...
Какой тогда смысл в отдельном классе...Можно просто в юните объявить все типы данных, переменные и процедуры с функциями...
И вообще я не понимаю, почему в классе нелься объявить свой тип данных...
Может что то в настройках компилятора изменить...ну или диррективы какие есть...буду копать...
Спасибо за ответы...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #6  
Старый 28.01.2010, 19:17
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Весь прикол в том, что я не хочу выносить тип MyRecord за пределы класса...
Ага, понял. Вам видимо вот что требуется:
Делаете так:
Код:
Type
 TMyClass = class
  T: record A: String; B: String; end;
 end;
Т.е. происходит неявное объявление классовой переменной T непосредственно в теле класса.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter