BEERZONE |
Отправлено: 20.10.2006, 19:56 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
Суть проблемы в следующем: в обработчике FormPaint() рисую что-нибудь простыми MoveTo(), LineTo(). В результате, если над формой своего приложения "водить" другим приложением, то все нормально. Но если не "водить", а просто сделать Activate() другое приложение, потом свое,соответственно, Activate(). В результате, никакого OnPaint().
Прошелся пошагово, понял, что сначала выполняется OnPaint() "внизу", потом форма выскакивает наверх уже с пустым Canvasом. Загнал все ето хозяйство в таймер, чтобы задержка была по времени пока форма наверх выскакивает, работает. Только коряво все ето, хочется по-нормальному сделать. Подскажите пожалуйста как? |
|
Admin |
Отправлено: 20.10.2006, 20:51 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
А каким образом делаете Activate() другого приложения,
а потом своего ?
Может в FormActivate вставить вызов: FormPaint(Sender);
|
|
BEERZONE |
Отправлено: 20.10.2006, 21:21 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
Просто мышью кликаю. Формы каскадом расположены. В FormActivate пробовал до ApplicationActivate. Эффекта никакого. Сначала OnPaint() выполняется (внизу), потом форма выпрыгивает наверх уже пустая |
|
Admin |
Отправлено: 20.10.2006, 21:26 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Странно, у меня работает нормально.
CODE |
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->FillRect(ClientRect);
Canvas->MoveTo(0, 0);
Canvas->LineTo(100, 100);
}
//---------------------------------------------------------------------------
|
может рисуете не на Canvas формы ?
|
|
BEERZONE |
Отправлено: 20.10.2006, 22:03 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
Рисую на Label->Canvas
|
|
BEERZONE |
Отправлено: 21.10.2006, 00:26 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 21
|
Вопрос снимается с повестки дня. Нашел решение с PaintBox. |
|