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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2018, 02:17   #11
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,867
По умолчанию

Цитата:
Сообщение от Alar Посмотреть сообщение
Код нужно выкладывать текстом, а не картинкой
Ребят, вот только не надо излишних придирок и буквоедства.
Какой код вы считаете должен был выложить текстом min@y™? Код модуля ExtCtrls? А нафига?
northener вне форума Ответить с цитированием
Старый 04.03.2018, 08:12   #12
fusic
 
Регистрация: 28.02.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
воспользуюсь

В догонку вопрос.
Имеем 6 таймеров на форме (T0...T5).
Имеем переменную F: byte - это 8 флагов полученные в результате обработки данных
полученных с внешнего устроцства. Младшие 6 используются для запуска тех таймеров.
Как проверяя в цикле флаги IsBitSet(F, <номер бита>) запускать или не запускать соответствующий таймер.
Есть вариант через FindComponent. Может быть есть более правильный вариант ?
fusic вне форума Ответить с цитированием
Старый 04.03.2018, 09:45   #13
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Код:
type
  TForm1 = class(TForm)
  //...
  private
    FList: TList;
    procedure SetEnabledTimers(Value: Byte);
  //...
  end;
//...
implementation  
//...
procedure TForm1.FormCreate(Sender: TObject);
begin
  FList := TList.Create;
  FList.Add(Timer1);
  FList.Add(Timer2);
  // и т. д.
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FList.Free;
end;

procedure TForm1.SetEnabledTimers(Value: Byte);
var
  I: Integer;
begin
  for I := 0 to FList.Count - 1 do
    TTimer(FList[I]).Enabled := IsBitSet(Value, I);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetEnabledTimers(F);
end;
Filka вне форума Ответить с цитированием
Старый 04.03.2018, 10:09   #14
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Дополню. Я бы написал такой дженерик:
Код:
TMyEvent = procedure (Sender: TObject; TimerIndex: int32) of object;
TTimerList = class(TObjectList<TTimer>)
private
  // .....
  FOnTimer: TMyEvent;
public 
  function NewTimer(const aInterval: DWORD): TTimer;
  property Enabled[index: int32]: boolean read ... write ...;
  property OnTimer: TMyEvent read FOnTimer write FOnTimer;
end;
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 04.03.2018, 18:30   #15
fusic
 
Регистрация: 28.02.2018
Сообщений: 7
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
Дополню. Я бы написал такой дженерик:
Код:
TMyEvent = procedure (Sender: TObject; TimerIndex: int32) of object;
TTimerList = class(TObjectList<TTimer>)
private
  // .....
  FOnTimer: TMyEvent;
public 
  function NewTimer(const aInterval: DWORD): TTimer;
  property Enabled[index: int32]: boolean read ... write ...;
  property OnTimer: TMyEvent read FOnTimer write FOnTimer;
end;
не понимаю. прошу пояснить.
fusic вне форума Ответить с цитированием
Старый 04.03.2018, 20:00   #16
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от fusic Посмотреть сообщение
не понимаю. прошу пояснить.
Чо не понятно-то?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
элемент ActiveX поле - как сделать список внутри него? tverdij Microsoft Office Word 12 09.04.2013 12:03
Как программно изменить цвет "компонента"? Смотрим внутри... Vova777 Общие вопросы Delphi 3 15.02.2012 05:56
У N одновременно запущенных потоков приходит N события с одними и теми же параметрами TwiX Работа с сетью в Delphi 3 20.02.2010 21:17
Странности в работе с событием OnTimer Mixasik Общие вопросы Delphi 3 17.01.2009 01:22