Страница 1 из 1

Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 14.06.2009 21:39:38
trius-strannik
Помогите с определением типа вариантной части записи, если определён только тип тега, а имя нет :( , очень надо

Re: Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 14.06.2009 21:51:39
Иван Шихалев
Собственно, к вариантной части можно и так и так обращаться. Если не определено поле тега, а только тип — значит это и неважно — какое представление требуется, то и используем.

Re: Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 16.06.2009 11:27:38
trius-strannik
Спасибо за ответ.
Иван Шихалев писал(а):Собственно, к вариантной части можно и так и так обращаться. Если не определено поле тега, а только тип — значит это и неважно — какое представление требуется, то и используем.

это значит, что можно обращаться к несуществующей в действительности записи, ведь все варианты разного типа... , а нельзя ли как-то определить тип записи, в SDL через такую запись передаются события, а перед её использованием надо пределить тип, а то каламбур получится. Или чего-то я не понял.

Re: Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 16.06.2009 14:00:30
Иван Шихалев
Да, можно обращаться...

Лучше привести конкретный пример записи... Дело в том, что в идеале, автор типа подразумевает, не указывая поле селектора, что варианты равноправны и просто являются разными представлениями одного и того же... Но это в идеале. А так — нужно смотреть конкретную ситуацию.

Re: Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 16.06.2009 15:05:49
trius-strannik
Вот пример:
Код: Выделить всё
       PSDL_Event = ^SDL_Event;
       SDL_Event = record
           case longint of
              0 : ( eventtype : Uint8 );
              1 : ( active : SDL_ActiveEvent );
              2 : ( key : SDL_KeyboardEvent );
              3 : ( motion : SDL_MouseMotionEvent );
              4 : ( button : SDL_MouseButtonEvent );
              5 : ( jaxis : SDL_JoyAxisEvent );
              6 : ( jball : SDL_JoyBallEvent );
              7 : ( jhat : SDL_JoyHatEvent );
              8 : ( jbutton : SDL_JoyButtonEvent );
              9 : ( resize : SDL_ResizeEvent );
              10: ( expose : SDL_ExposeEvent );
              11: ( quit : SDL_QuitEvent );
              12: ( user : SDL_UserEvent );
              13: ( syswm : SDL_SysWMEvent );
           end;
Тег CODE не забываем!
Все типы в свою очередь тоже записи с разным числом элеентов.
А нельзя ли определить каким-то образом тип этой записи?

Re: Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 16.06.2009 15:36:55
Иван Шихалев
А эти записи сами по себе не содержат первым полем eventtype : Uint8? Судя по всему, именно на него надо ориентироваться.

Re: Вариантные записи с неопределённым именем тега

СообщениеДобавлено: 16.06.2009 16:22:31
trius-strannik
Содержат, значит по этому элементу и определять... щас попробую.....

Добавлено спустя 3 минуты 26 секунд:
работает, он-то ивозвращает то, что надо :P , большое спасибо!!!!!!!!!!!!!

Добавлено спустя 11 минут 11 секунд:
работает, он-то ивозвращает то, что надо :P , большое спасибо!!!!!!!!!!!!!