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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.07.2007, 22:29   #1
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию Цифровые часы без фона

пробую написать цифровые часы без фона.
вот написал код:

implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:= '';
Form1.Brush.Style := bsClear;
Form1.BorderStyle := bsNone;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:= '';
Label1.Caption:= TimeToStr(Time);
end;
end.

компилирую, часики идут, но вот только Label либо вообще не перерисовывается либо с опазданием, вобщем ужасный результат.
как реализовать перерисовку и чтоб не мерцал при этом текст? уже все чего мог перепробовал
Изо всей благодати
В руках крепко сжатых
Я донесу только капли

Последний раз редактировалось Roof; 16.07.2007 в 22:33.
Roof вне форума Ответить с цитированием
Старый 17.07.2007, 08:43   #2
Vitaly59
 
Аватар для Vitaly59
 
Регистрация: 13.07.2007
Сообщений: 3
По умолчанию

А зачем в таймере ты очищаеш Label1, ведь когда присваеваешь
Caption у Label, старое значение затирается. Вот у тебя у получается мерцание, т.к. он сначало очищаеть, затем снова пишет. А если убрать очистку, у тебя будет красивая замена цифр.
Vitaly59 вне форума Ответить с цитированием
Старый 17.07.2007, 10:49   #3
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Код:
 
Label1.Transparent:=true;
Timer1.Interval:=1000;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:= TimeToStr(Now);
end;
Alex21 вне форума Ответить с цитированием
Старый 20.07.2007, 17:59   #4
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию не помогло

от мерцания вроде избавился, а вот код не помог все так же старые цифры не стираются.
Вот посмотрите в архиве, я сфотал результат.
А может и глюк видеокарты?
Вложения
Тип файла: rar Безымянный.rar (41.0 Кб, 21 просмотров)
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 20.07.2007, 18:08   #5
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

А где Label1?
Carbon вне форума Ответить с цитированием
Старый 20.07.2007, 18:38   #6
Net
;-)
Пользователь
 
Регистрация: 18.07.2007
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Roof Посмотреть сообщение
от мерцания вроде избавился, а вот код не помог все так же старые цифры не стираются.
Вот посмотрите в архиве, я сфотал результат.
А может и глюк видеокарты?
Дык все ясно. Вы ставите у формы bsClear, вот она и не делает заливку перед выводом нового текста, а сразу новый выводит. вот время идет, текст меняется, и накладывается один на другой.

Сделайте как сказал Alex21, у label поставьте свойство Transparent:=True.

Да, а вы не забыли еще из FormCreate те две строчки грохнуть?
Net вне форума Ответить с цитированием
Старый 21.07.2007, 20:26   #7
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Цитата:
Сообщение от Carbon Посмотреть сообщение
А где Label1?
Вроде все на месте. В коде он есть.
или я неправильно вопрос ваш понял?
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 21.07.2007, 20:43   #8
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Цитата:
Сообщение от Net Посмотреть сообщение
Дык все ясно. Вы ставите у формы bsClear, вот она и не делает заливку перед выводом нового текста, а сразу новый выводит. вот время идет, текст меняется, и накладывается один на другой.

Сделайте как сказал Alex21, у label поставьте свойство Transparent:=True.

Да, а вы не забыли еще из FormCreate те две строчки грохнуть?

если убираю bsclear, то перерисовка нормально идет, но фон остается, форму видно, а мне нада, чтоб форма прозрачной была. Label1.Transparent:=true; я поставил.
И какие две строчки?
Может напишешь мне правильный код просто, а я по нему разберусь?

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Label1.Caption:= '';
  Form1.Brush.Style := bsClear;
  Form1.BorderStyle := bsNone;
  Label1.Transparent:=true;
  Timer1.Interval:=1000;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:= TimeToStr(Now);
end;
end.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 21.07.2007, 23:36   #9
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

По моему ты хочешь вот это:
Код:
procedure DRAW;
var T:TTime;
begin
     T:=(Now);
     Form1.Canvas.Brush.Color:=clLime;
     Form1.Canvas.Pen.Color:=clLime;
     Form1.Canvas.Rectangle(0,0,Form1.Width,Form1.Height);
     Form1.Canvas.Brush.Style:=bsClear;
     Form1.Canvas.TextOut(0,0,TimeToStr(T));
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
     Form1.BorderStyle := bsNone;
     Form1.TransparentColorValue:=clLime;
     Form1.TransparentColor:=true;
     Timer1.Interval:=100;
     Form1.Canvas.Font.Color:=clRed;
     Form1.Canvas.Font.Size:=36;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
     draw;
end;
Label c формы убери, оставь один Таймер, отрисовка будет прямо на форме. Настройки менять не обязательно, они меняются в FormCreate. (см. код)
Alex21 вне форума Ответить с цитированием
Старый 22.07.2007, 11:03   #10
Net
;-)
Пользователь
 
Регистрация: 18.07.2007
Сообщений: 69
По умолчанию

Все, понял что требуется, когда запустил.. абсолютно прозрачная форма..

вот посмотри мою прогру, там по таймеру вычисляется число (отсчет элементарный), по шрифту и по его размеру форме делается регион и устанавливается. форма таскабельная.

если оно, дам исходник
Вложения
Тип файла: rar CLOCK.rar (174.2 Кб, 41 просмотров)
Net вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу сделать цифровые часы sid Общие вопросы Delphi 25 16.12.2009 05:06
Засунуть программу где часы. Fellics{новичок} Помощь студентам 3 19.06.2008 15:09
электронные часы Багира Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 19.12.2007 23:09
Ускоренные часы Иринкаа Компоненты Delphi 2 23.11.2007 12:58
Заменить часы в трее Teen4jump Win Api 10 08.08.2007 12:26