C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Что такое TLabel по сути?, TLabel и TCanvas — одно и то же!?
BEERZONE
Отправлено: 03.11.2006, 01:11


Ученик-кочегар

Группа: Участник
Сообщений: 21



Создаю PaintBox1. Поверх него создаю Label1 и Edit1 в режиме разработки формы приложения. Когда пишу код в режиме выполнения

PaintBox1->Color=clWhite;
PaintBox1->Canvas->FillRect(ClientRect);

то Label1->Caption пропадает, а Edit1->Text остается.

Не могу понять. Ни TLabel, ни TEdit наследниками TPaintBox не являются, почему так происходит?
Valdemar
Отправлено: 03.11.2006, 08:27


Мастер участка

Группа: Участник
Сообщений: 433



Потому что Label всегда находиться на заднем плане.
poland
Отправлено: 03.11.2006, 09:52


Ученик-кочегар

Группа: Участник
Сообщений: 16



TLabel рисуется на канве родителя (форма в твоем случае), а она перекрыта канвой PaintBox.
TEdit — полноценное окно, конкурирует при отрисовке с другими окнами. Изменив флаг WS_CLIPSIBLING можешь его тоже спрятать за PaintBox.

Вернуться в Вопросы программирования в C++Builder