Установите на форму компаненты Panel1, Timer1, Button1. Надпись на кнопке "Старт". Интервал таймера 500 мс.
TTime MyTime;//глобальная переменная
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//Сравниваются две строки
if(CompareStr(Button1->Caption,"Старт")==0)
{
MyTime = StrToTime("00:00");
Timer1->Enabled = true;
Button1->Caption = "Стоп";
}
else
{
if(CompareStr(Button1->Caption,"Стоп")==0)
{
Timer1->Enabled = false;
Button1->Caption = "Старт";
};
}
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
TTime IncrementTime;
IncrementTime = StrToTime("00:01");
MyTime = MyTime + IncrementTime;
Panel1->Caption = TimeToStr(MyTime);
}
Задание 3
Cоздадим бегущую строку. Определим строку, которую будем использовать в качестве бегущей, как глобальную переменную типа AnsiString.
Описать глобальную переменную нужно в заголовочном модуле формы (с расширением «.h»), а определить – в основном модуле формы (имеющим расширение «.cpp»).
Чтобы быстро открыть заголовочный модуль можно использовать сочетание клави Ctrl+F6.
Для описания глобальной переменной типа AnsiString нужно в заголовочный модуль (файл Name.h) дописать: extern AnsiString Str;
Для определения - в основном модуле (файл Name.cpp) вне функций написать:
|
|
AnsiString Str=”Это пример бегущей строки……….”;
Строка будет располагаться в окне редактирования Edit. Чтобы сделать строку бегущей, надо использовать таймер. Для этого на форме надо разместить компонент Timer и задать его свойства Interval = 100 Enabled = true.
В обработчик события OnTimer вставить операторы, осуществляющие циклический сдвиг строки:
void __fastcall TForm1::Timer1Timer (TObject *Sender)
{ Edit1->Clear();
if (!Str.IsEmpty())// Если строка не пуста
{ Edit1->Text = Str;
char first = Str[1];
for (int i=1; i < Str.Length(); i++) //Циклический сдвиг строки
Str[i] = Str[i+1]; //на один символ влево Str[Str.Length()] = first;} }
Теперь каждый раз по истечении 100 миллисекунд (0,1 сек) строка в окне редактирования Edit будет циклически сдвигаться влево, т.е. это будет бегущая строка.