Вверх ↑
Этот топик читают: Гость
Ответов: 2265
Рейтинг: 676
#1: 2010-06-18 20:37:13 ЛС | профиль | цитата
Вот возникла необходимость знать положение флагов. Но не получилось. Подскажите что сделал не так?
code_18925.txt

Отладка
Подготовка к сборке проекта...
Генерация кода целевого языка
Компоновка проекта...
Command line: dcc32.exe "D:\Program Files\HiAsm\Elements\delphi\code\ReadFlags.dpr" "-UD:\My\GL components\." -Q
Borland Delphi Version 12.0 Copyright (c) 1983,98 Inprise Corporation

D:\Program Files\HiAsm\Elements\delphi\code\WinLayout.pas(159) Warning: Variable 'd' might not have been initialized

D:\Program Files\HiAsm\Elements\delphi\code\WinLayout.pas(176) Warning: Variable 'd' might not have been initialized

D:\Program Files\HiAsm\Elements\delphi\code\WinLayout.pas(40) Hint: Private symbol '_onObjDestroy' declared but never used

D:\Program Files\HiAsm\Elements\delphi\code\hiGL_Light.pas(40) Warning: Variable 'p' might not have been initialized

D:\Program Files\HiAsm\Elements\delphi\code\hiMainForm_5D1F760.pas(16) Fatal: Unit name mismatch: 'hiInlineCode_56E68E0'
Сборка завершена.
карма: 11

0
файлы: 1code_18925.txt [2.1KB] [410]
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2010-06-18 20:42:00 ЛС | профиль | цитата
нельзя в IC менять название класса
карма: 27
0
Ответов: 1161
Рейтинг: 160
#3: 2010-06-18 20:56:08 ЛС | профиль | цитата
Может так?
code_18927.txt
карма: 0

1
файлы: 1code_18927.txt [2.1KB] [444]
Голосовали:sla8a
Ответов: 2265
Рейтинг: 676
#4: 2010-06-18 22:37:05 ЛС | профиль | цитата
Бывает нужно запомнить установлинные флаги, чтоб потом вернуть их значения обратно. Вот что получилось: code_18928.txt
Это можно считать как правильно? Может есть другой более оптимальный способ (без If)?

карма: 11

1
файлы: 1code_18928.txt [4KB] [611]
Голосовали:MAV
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2010-06-18 23:01:56 ЛС | профиль | цитата
можно и без if

#pas
const flg:array[0..11] of integer = (GL_LIGHTING, GL_COLOR_MATERIAL, GL_DEPTH_TEST, GL_NORMALIZE, GL_FOG,
GL_LINE_STIPPLE, GL_LINE_SMOOTH, GL_POINT_SMOOTH, GL_BLEND, GL_CULL_FACE,
GL_TEXTURE_2D, GL_STENCIL_TEST);
var
x,i:integer;
begin
x := 0;
for i := 0 to high(flg) do
x := x + (1 shl i) * byte(glIsEnabled(flg[i]));
карма: 27
1
Голосовали:sla8a
Ответов: 2265
Рейтинг: 676
#6: 2010-06-18 23:27:44 ЛС | профиль | цитата
А такое свойство к GL_Options имеет смысл приделывать для штатного компанента?
карма: 11

0
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2010-06-19 00:29:49 ЛС | профиль | цитата
пока не очень понятно, зачем оно необходимо именно в таком виде. Насколько я знаю по ходу вывода объектов на сцену в какой-то момент нужно временно отключить/включить одно-два свойства и восстановить их обратно. Для этого лучше подходит некий метод с примерно таким содержимым:
#pas
glEnable(_SOME_FLAG_);
_hi_onEvent(_event_onEvent);
glDisable(_SOME_FLAG_);
т.е. включаем св-во, вызываем метод onEvent, после которого выполняем все необходимые действия, и отключаем св-во обратно.
карма: 27
0
Ответов: 2265
Рейтинг: 676
#8: 2010-06-19 01:18:19 ЛС | профиль | цитата
Возможно и не в таком виде, но иметь возможность узнать включено свойство или нет, думаю надо. Может точку Свойство к GL_Options и значение 1 - включено 0 - выключено того свойства, что в Flag выставлено. Если это вообще кому нужно кроме меня. Если нет, то вопрос исчерпан т.к. я уже себе сделаю.
карма: 11

0
Ответов: 1304
Рейтинг: 405
#9: 2010-06-19 02:36:33 ЛС | профиль | цитата
sla8a, мне понадобится для отладки, если подключать стороний движок. Тут два варианта или проверить интересующие флаги или лезть в исходники, первый вариант естественно предпочтительней.
карма: 3

0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2010-06-19 12:24:36 ЛС | профиль | цитата
sla8a писал(а):
Может точку Свойство к GL_Options и значение 1 - включено 0 - выключено того свойства, что в Flag выставлено

это предпочтительнее
карма: 27
0
Ответов: 2265
Рейтинг: 676
#11: 2010-06-19 15:58:42 ЛС | профиль | цитата
Добавил точку, вроде работает: code_18947.txt pas и ini в файле.
p.s. ClipPlane вещь хорошая, но вот зачем MAV вынес в отдельное свойство
карма: 11

0
файлы: 1code_18947.txt [6.3KB] [634]
Гость
Ответов: 17029
Рейтинг: 0
#12: 2010-06-19 21:17:01 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-21 04:24:56
карма: 0

0
Ответов: 2265
Рейтинг: 676
#13: 2010-06-19 23:17:16 ЛС | профиль | цитата
MAV, не пытаюсь спорить, а хочу понять. Разве так не проще и понятней? code_18961.txt (pas + ini)
карма: 11

0
файлы: 1code_18961.txt [2.5KB] [680]
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2010-06-20 01:09:52 ЛС | профиль | цитата
присоединяюсь к sla8a, - не совсем ясно, зачем такое разделение нужно, если оно явно усложняет код и заставляет в настройках элемента менять два свойства для включения одной плоскости.
карма: 27
0
Ответов: 1304
Рейтинг: 405
#15: 2010-06-20 01:35:45 ЛС | профиль | цитата
sla8a, если мы будем запихивать всё в вкладку "flag", то список получится очень длинным, возможно что это не последняя функция с переменными параметрами. Конечно как ты предлагаешь проще, флаг и параметр выбирается за один клик, поэтому трудно сказать что лучше.
------------------------------------------------------------------------
Уговорили .

карма: 3

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)