![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Shape.Brush.Color... + Timer [D7, XP]
Stepper © (2008-01-03 21:39:00)Как в одним таймером (TTimer) замутить следующее: 500 мс - Shape.Brush.Color := clLime и последующие 500 мс - Shape.Brush.Color := clRed ?
Stepper (2008-01-04 09:52:00) [1]
> Кстати... вот еще вариант:
>
> if Shape.Brush.Color<>clRed then Shape.Brush.Color := clRed
> else Shape.Brush.Color := clLime;
>
> Вообще все просто)
Спс Огромное Всем! Проверил все, но остановился на данной реализации Сабжа!
MBo (2008-01-04 08:53:00) [2]можно еще так попробовать:
ColorMask : = clRed xor clLime;
исходный цвет - один из clRed, clLime
в обработчике
Shape.Brush.Color : = Shape.Brush.Color xor ColorMask;
Германн (2008-01-04 03:10:00) [3]
> {RASkov} © (04.01.08 03:00) [13]
>
> > [12] {RASkov} © (04.01.08 02:51)
> > Ну дык иногда и подумать не вредно :)
>
> Сергей, это опять не про тебя.... сорри :) Все... пора спать)
>
А я и не подумал, что это про меня :)
{RASkov} (2008-01-04 03:00:00) [4]> [12] {RASkov} © (04.01.08 02:51)
> Ну дык иногда и подумать не вредно :)
Сергей, это опять не про тебя.... сорри :) Все... пора спать)
{RASkov} (2008-01-04 02:51:00) [5]> [10] Германн © (04.01.08 02:49)
> Хм. См. [4]
Ну дык иногда и подумать не вредно :)
{RASkov} (2008-01-04 02:50:00) [6]> [9] Германн © (04.01.08 02:45)
> Хм.
> Между бегин и эндом как раз говорит о локальности.
Ну наверное все по разному смотрят на мир :)
Смысл в конце кода подпрограммы с локальной переменной делать:
> Check := not Check;
т.е. инвертировать локальную переменную и выйти, зачем???
Или в начале - непроинициализировав проверять переменную....
Это мне говорит сразу о ее глобальном характере, а не о локальном.)
Германн (2008-01-04 02:49:00) [7]Хм. См. [4]
Германн (2008-01-04 02:45:00) [8]
> {RASkov} © (04.01.08 02:38) [7]
>
> > [6] Германн © (04.01.08 02:32)
> > Неужели теперь и локальные переменные "инициализируются"?
>
>
> Не ну.... У меня в голове эта переменная сразу была глобальной
> хоть и написан кусок кода "криво", но между бегин и эндом
> код говорит как раз о ее глобальности а не локальности..
> .. вот поэтому и было сказано, что "а с первого взгляда
> каж...." ...Иногда нужно думать не как "копипастер" :)
>
Хм.
Между бегин и эндом как раз говорит о локальности.
{RASkov} (2008-01-04 02:41:00) [9]> ...Иногда нужно думать не как "копипастер" :)
Это было сказано, по большему счету, не [6] Германн ©, а конечно же автору вопроса, т.е. [2] Stepper (03.01.08 21:51)
:о)
{RASkov} (2008-01-04 02:38:00) [10]> [6] Германн © (04.01.08 02:32)
> Неужели теперь и локальные переменные "инициализируются"?
Не ну.... У меня в голове эта переменная сразу была глобальной хоть и написан кусок кода "криво", но между бегин и эндом код говорит как раз о ее глобальности а не локальности.... вот поэтому и было сказано, что "а с первого взгляда каж...." ...Иногда нужно думать не как "копипастер" :)
Германн (2008-01-04 02:32:00) [11]
> Хм.... а с первого взгляда кажется, что должен быть - красный)
> переменная check инициализироваться (False) вроде должна.
> ...
> ...ан нет) Она же локальная и "почемуто" Тру :)
Не ну. Неужели теперь и локальные переменные "инициализируются"?
{RASkov} (2008-01-04 02:08:00) [12]> [4] Германн © (04.01.08 01:14)
> А из примера как раз и не видно, что переменная Check глобальная.
Ну... это.... я ..."тонко" намекнул про глобальную :)
> даёт почти всегда зелёный
Хм.... а с первого взгляда кажется, что должен быть - красный) переменная check инициализироваться (False) вроде должна....
...ан нет) Она же локальная и "почемуто" Тру :)
> [2] Stepper (03.01.08 21:51)
Вот без переменных тоже самое
Timer.Interval=500;
procedure TForm.TimerOnTimer();
begin
if Timer.Tag=0 then Shape.Brush.Color:=clRed
else Shape.Brush.Color;=clLime;
Timer.Tag:=not Timer.Tag;
end;
Кстати... вот еще вариант:
if Shape.Brush.Color<>clRed then Shape.Brush.Color := clRed
else Shape.Brush.Color := clLime;
Вообще все просто)
:)
Германн (2008-01-04 01:14:00) [13]
> {RASkov} © (03.01.08 23:15) [3]
А из примера как раз и не видно, что переменная Check глобальная. Так что простой перенос сего кода в процедуру таймера даёт почти всегда зелёный :)
{RASkov} (2008-01-03 23:15:00) [14]> [2] Stepper (03.01.08 21:51)
См [1]
Ставишь интервал таймеру в 500..... вместо глобальной переменной Check можно "заюзать" Тэг таймера...
Так и не въехал? :)
Stepper (2008-01-03 21:51:00) [15]
> engine © (03.01.08 21:42) [1]
мне надо чтоб моргал тозеленым (500 мс) потом красным (500 мс) goto то:)
engine (2008-01-03 21:42:00) [16]var Check : Boolean;
begin
if check then
Shape.Brush.Color := clLime else
Shape.Brush.Color := clRed;
Check := not Check;
end;