TTimer
Ниже приведен код в котором соит переменная t которая равна рандомному числу из 5.
У меня вопрос в следующем, чем можно заменить рандом, чтобы все эти условия выполнялись по порядку, а не рандомно. Пробовал через
int a[5] = {1,2,3,4,5} и дальше эти же условия, неработает.В чем проблема:confused:.
int t = random(5);
if (t==0) l->Font->Color=clBlack;
if (t==1) l->Font->Color=clMaroon;
if (t==2) l->Font->Color=clNavy;
if (t==3) l->Font->Color=clGreen;
if (t==4) l->Font->Color=clGray;
if (t==5) l->Font->Color=clRed;
int t = random(5);
switch (t)
{
case 0: l->Font->Color=clBlack;
case 1: l->Font->Color=clMaroon;
case 2: l->Font->Color=clNavy;
case 3: l->Font->Color=clGreen;
case 4: l->Font->Color=clGray;
case 5: l->Font->Color=clRed;
}
PS: А причем тут таймер??? :confused: Где в твоем коде проблемы с таймером?
PSS: Как название темы, так и описание проблемы высказаны "кривовато"...
{
static int t = 0;
if (t == 0) ...
....
if (t == 4) ...
t++;
}
{
static int t = 0;
....
}
Угу. согласен, только использовние статической переменной обычно приводит к немастабируемому коду, и (ИМХО) лучше этого избежать. Как вариант -- дай переменной int t нормальное имя, и засунь ее в определение класса твоей формы. Результат будет практически тот же.
_____________
За Родину! (на Берл... То есть, на Детройт :) )
int t = random(5);
switch (t)
{
case 0: l->Font->Color=clBlack;
case 1: l->Font->Color=clMaroon;
case 2: l->Font->Color=clNavy;
case 3: l->Font->Color=clGreen;
case 4: l->Font->Color=clGray;
case 5: l->Font->Color=clRed;
}
PS: А причем тут таймер??? :confused: Где в твоем коде проблемы с таймером?
PSS: Как название темы, так и описание проблемы высказаны "кривовато"...
Я же вам напиал что это в обработчике события TTimer
{
static int t = 0;
if(t == 0)
{
Image1->Visible=false;
}
if (t==2)
{
Image1->Visible=true;
}
if (t==3)
{
Image1->Visible=false;
}
if (t==4)
{
Image1->Visible=false;
}
if(t==5)
{
Image1->Visible=true;
}
t++;
}
____________________________
Вчера ходил на Детройт!!!!:)
и засунь ее в определение класса твоей формы
Т.е.:
{
__published: // IDE-managed Components
TButton *Button1;
TStringGrid *StringGrid1;
TButton *Button2;
TSpinEdit *SpinEdit1;
TSpinEdit *SpinEdit2;
TLabel *Label1;
TLabel *Label2;
TButton *Button3;
TButton *Button4;
void __fastcall Button1Click(TObject *Sender);
void __fastcall SpinEdit1Change(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button3Click(TObject *Sender);
void __fastcall Button4Click(TObject *Sender);
private: // User declarations
public: // User declarations
//Сюда пропишы
int t;
__fastcall TForm1(TComponent* Owner);
};
В OnCreate пропиши t=0;
и в таймере незабудь прописать на if(t==5) чтоб по кругу ходило (если надо конечно...) или остановку таймера, чтоб больше это событие не вызывалось.
З.Ы. почемуб вместо иф"ов не использовать свич?
Какой цикл, ты о чем? Timer имеет свойства Interval и Enabled. После установки свойства Enabled в true каждые Interval миллисекунд выполняется то, что у тебя написано в функции OnTimer. До тех пор, пока свойства Enabled ты не установишь в false.
Так что что-то вроде цикла у тебя и так выполняется. Только каждая итерация с задержкой в Interval миллисекунд.
2 KPIStudent
теории, теории... что такое "мастабируемый" код? Как вы это понимаете? Часто ли приходилось "мастабировать"?
Если эта переменная используется только в функции OnTimer и нигде больше, выносить ее в определение класса нецелесообразно -- только захламляет код
2 Se AD WMD
//Сюда пропишы
И уж тем более не выносить переменную-счетчик в public раздел. На крайняк что-нибудь вроде __property get организовать.
Приходилось однажды. Сидеть, материться и лопатить код сервера, в несколько десятков тысяч строк размером, который до этого несколько лет писал прогер, не любивший теории, теории, убирать там копипасты, и потенциальные источники ошибок, работающие в оригинале, но создававшие проблемы при модификации.
Масштаби́руемость (scalability) — в информатике означает способность системы увеличивать свою производительность при добавлении ресурсов (обычно аппаратных). А также, означает возможность использования типа (в ООП), в более крупных структурах, или же использование нескольких экземпяров этого типа.
Очень жаль, что вы этого не понимаете. В простейшем случае - это когда можно создать три одинаковых формы TForm1, и все три будут нормально работать.
, ни в лекциях
не нуждаюсь. И в жалости тем более.
2.
С чего это вы сделали такой вывод? Из того, что я вас спросил, как ВЫ понимаете данный вопрос?
3.
Топикстартер с таймером-то не может разобраться, а вы ему про масштабируемость. Поднимите его предыдущие темы, посмотрите
_____________
За Родину! (на Берл... То есть, на Детройт :) )
Как раз таки ваш вариант + Se AD WMD - это грубейшая ошибка в С++. И причем тут "немастабируемому коду" воистину загадка. Новое слово на лекциях услышали? :)
Как MediaPlayer воспроизвести на весь экран. Либо где это можно
сделать.
LPCSTR lpParameters = "\"C:\\Documents and Settings\\admin\\Мои Документы\\Моя музыка\\ToT - Image.mpg\""; //в этой строке путь к проигрываемому ролику
LPCSTR lpDirectory = "C:\\Program Files\\Windows Media Player\\";
ShellExecute(Handle, "open", lpFile, lpParameters, lpDirectory, SW_MAXIMIZE);
Я имею ввиду про Билдеровский(TMediaPlayer), как сделать чтобы он на весь экран показывал, в свойствах Дисплея для него(Panel1) или нужно чтото с самим проигрывателем делать?
FormShow->Visible = false;
FormShow->WindowState = wsMaximized;
Panel->Align = alClient;
Вот этот код пиши перед запуском ролика, заданного в MediaPlayer->FileName:
MediaPlayer->Display = FormShow->Panel;
MediaPlayer->DisplayRect = FormShow->Panel->ClientRect;