![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Label поверх ProgressBar
Kilowatt © (2011-06-21 15:31:00)Всем привет!
У меня вопрос: можно ли сделать так что бы компонент label был виден над прогрессбаром? Хочется что бы и прогрессбар шел и видно было какие файлы копируются в данный момент. Но что бы label не закрывал прогрессбар (без фона), а только был виден текст из label.caption.
Дельфи2009
QAZ (2011-06-22 18:35:00) [1]
> Юрий Зотов © (22.06.11 14:48) [16]
не, глобально,ко всему человечеству
Юрий Зотов (2011-06-22 17:45:00) [2]
> Дмитрий С © (22.06.11 17:30) [17]
> не факт что текст будет виден всегда.
Почему? Если рисовать текст вместе с движком, то будет. А чего бы ему прятаться?
Дмитрий С (2011-06-22 17:30:00) [3]странно что никто не отговаривает. Это же глупость. Прогресс бар рисуется в соответствии с темой и не факт что текст будет виден всегда.
Имхо делай текст чуть выше бара.
Юрий Зотов (2011-06-22 14:48:00) [4]
> QAZ (22.06.11 14:25) [15]
Если это вопрос ко мне, то он не по адресу. Я бы вообще положил метку над прогрессбаром (как обычно и делают) и не мудрил.
QAZ (2011-06-22 14:25:00) [5]по вашему текст поверх зеленого\ораньжевого сегментного (в хр) прогресбара "круто" смотрица?
Юрий Зотов (2011-06-22 12:18:00) [6]У Конопки в книжке рассмотрен прогрессбар, в котором на шкале рисуется еще и текст. Надо сделать свой компонент по аналогии и не заморачиваться с непонятками.
sniknik (2011-06-22 10:21:00) [7]> у меня "бегает" D2010
а у меня нет... D7 XP схем в винде нет.
то что получается выглядит убого.
engine (2011-06-22 03:29:00) [8]у меня "бегает" D2010
Германн (2011-06-22 01:48:00) [9]
> Уважаемые, помогите теперь все это слепить вместе.
> Есть такой код - прогрессбар без какого-то подсчета двигается
> постоянно:
> Windows.SetWindowLong(ProgressBar1.Handle, GWL_STYLE,
> Windows.GetWindowLong(Progressbar1.Handle, GWL_STYLE)
> or $08);
> SendMessage(ProgressBar1.handle, WM_USER + 10, WPARAM(true),
> 10);
> ProgressBar1.Visible:=true;
> Если после него или до него поставить код:
> Label1.Parent:= ProgressBar1;
> Label1.Top := 2;
> Label1.Left := 2;
> Label1.Transparent:= true;
> Label1.Font.Color:= clWhite-ProgressBar1.BarColor ;//clLime;
>
> Label1.bringtofront;
>
В данном случае "слепить" означать написать полностью новый код. Я пас.
Kilowatt (2011-06-21 21:43:00) [10]Уважаемые, помогите теперь все это слепить вместе.
Есть такой код - прогрессбар без какого-то подсчета двигается постоянно:
Windows.SetWindowLong(ProgressBar1.Handle, GWL_STYLE,
Windows.GetWindowLong(Progressbar1.Handle, GWL_STYLE) or $08);
SendMessage(ProgressBar1.handle, WM_USER + 10, WPARAM(true), 10);
ProgressBar1.Visible:=true;
Если после него или до него поставить код:
Label1.Parent:= ProgressBar1;
Label1.Top := 2;
Label1.Left := 2;
Label1.Transparent:= true;
Label1.Font.Color:= clWhite-ProgressBar1.BarColor ;//clLime;
Label1.bringtofront;
То label нормально смотрится на прогрессе, а вот прогресс перестает "бегать".
Можно ли как-то исправить это? Выяснил, что мешает именно abel1.Parent:= ProgressBar1, т.е. после удаления этой строки прогресс начинает работать, но опять же label пропадает...
Прошу помощи!
Kilowatt (2011-06-21 17:01:00) [11]
>
> еще меньше "подойдет" у гауде цвет инверсный хоть что то
> видно, а тут никак...
гуаде какой-то каменный век. смотрится аля вин95. прогрессбар хоть на ХП и вин7 смотрится красиво
Kilowatt (2011-06-21 17:00:00) [12]так и тут можно инверсный сделать наверное так, хотя не пробовал. сейчас нет под рукой дельфи:
Label1.Font.Color:= clWhite-ProgressBar1.Color
sniknik (2011-06-21 16:51:00) [13]
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Parent:= ProgressBar1;
Label1.Top := 0;
Label1.Left := 4;
Label1.Transparent:= true;
Label1.Font.Color:= clLime;
end;
еще меньше "подойдет" у гауде цвет инверсный хоть что то видно, а тут никак...
Kilowatt (2011-06-21 16:36:00) [14]Есть, но он мне не подходит.
sniknik (2011-06-21 16:31:00) [15]> Дельфи2009
а Gaude там есть?
Kilowatt (2011-06-21 16:04:00) [16]Почитал по ссылке
> Только если поместить графический на панель (тем самым сделать
> ему другой парент).
Т.е. как-то так: label1.parent:=progressbar1 , а потом label1 сделать bringtofront?
Игорь Шевченко (2011-06-21 16:01:00) [17]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1308515045&n=18пост [1]
Kilowatt (2011-06-21 16:00:00) [18]Спасибо. Я так пробовал, но label перекрывается прогрессбаром. даже в IDE, когда ставлю label на него, то label просто становится за прогрессбаром.
Anatoly Podgoretsky (2011-06-21 15:46:00) [19]> Kilowatt (21.06.2011 15:31:00) [0]
transparent