Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2010, 19:34   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Обработка констант в процедурах (Or)

Может уже и спрашивал, тему потерял.

Код:
Const
 CONST_1 = $000001;
 CONST_2 = $000002;
 CONST_3 = $000004;
Код:
Procedure SpinSmt(Flag : Integer);
Код:
SpinSmt(CONST_2 Or CONST_3)
Как мне определить не перечисляя варианты, какие константы были вызваны?
Типа:
Код:
If CONST_1 In [Parameters] Then DoSomething;
If CONST_2 In [Parameters] Then DoSomething;
If CONST_3 In [Parameters] Then DoSomething;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 30.11.2010, 19:42   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
if (Flag and CONSR_1)<>0 then //CONST_1 установленна.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 30.11.2010 в 19:44.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.11.2010, 19:43   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Спасибо!

Не нужно зря цитировать предыдущее сообщение! Это - флуд.
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
А кроме кнопки "Цитата" внизу есть простое окно для ввода своего сообщения.
Или маленькая кнопочка "Быстрый ответ" справа от кнопки "Цитата".
Попадаете туда же.
Модератор
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось mihali4; 30.11.2010 в 21:27.
Alex Cones вне форума Ответить с цитированием
Старый 04.12.2010, 13:33   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Код:
Procedure SetButtonImage(Index : Integer; Image : Integer; Flag : Integer); StdCall; Export;
 Begin
  If (BTN_IMAGE_NORMAL  And Flag) <> 0 Then Warehouse.Button[Index].ImageN := Image;
  If (BTN_IMAGE_HOVER   And Flag) <> 0 Then Warehouse.Button[Index].ImageH := Image;
  If (BTN_IMAGE_PRESSED And Flag) <> 0 Then Warehouse.Button[Index].ImageP := Image;
 End;
Вызываю:
Код:
SetButtonImage(Button1, LoadTexture('BN.bmp'), BTN_IMAGE_NORMAL);
И нифига - не меняется Warehouse.Button[Index].ImageN

UPD________________________________ ___
Вот почему, когда напишешь на форуме, тут же находишь решение, хотя до этого часа два просидишь?

Проблема в том, что константы описал с нуля. Сместил константы на единицу и все заработало, что неудивительно - 0 And Number всегда 0.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ

Последний раз редактировалось Alex Cones; 04.12.2010 в 13:37.
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос о процедурах TaYgA Помощь студентам 3 15.09.2010 13:15
Записи в процедурах!!! eR- Помощь студентам 1 16.12.2009 14:49
Объекты в процедурах Altera Общие вопросы Delphi 10 07.03.2009 17:21
запутался в процедурах world12_tk Помощь студентам 6 03.03.2009 18:57
Материал о процедурах Jondeer Помощь студентам 18 04.12.2007 21:22