Показать сообщение отдельно
  #1  
Старый 25.10.2007, 01:20
PaulStrong PaulStrong вне форума
Прохожий
 
Регистрация: 25.10.2007
Сообщения: 1
Репутация: 10
По умолчанию Непонятка с Canvas у TShape

Мужики, есть одна небольшная проблема, даже сказать, головная боль.

есть O: TShape;

Создаю экземпляр. Пытаюсь вывести текст при помощи Canvas.TextOut(0,0,'123456');

При первой попытке всё выводится. Потом... Изменяю размер при помощи Width := 200;

пытаюсь вывести текст ещё раз - уже не получается. Причём видно, что он прорисовывается, но мельком, почти незаметно, потом исчезает.

Вот код:

var O: TShape;

procedure TForm1.CreateObj;
begin
O := TShape.Create(Self);
O.Parent := Form1;
O.Visible := True;
end;

procedure TForm1.DelObj;
begin
O.Free;
end;

procedure TForm1.DrawText1;
begin
O.Canvas.TextOut(0,0,'12345');
end;
{пока что всё нормально}

procedure TForm1.DrawText2;
begin
O.Width := 200;
O.Height := 200;
O.Canvas.TextOut(0,30,'67890');
//Invalidate;
//Refresh;
//Canvas.Refresh;
end;
{теперь нет ни первой ни второй надписи}

Пробывал в DrawText2 в конце ставить три методы, что закомменчены, ноль результат.

Видимо что то не учёл, кто нибудь сталкивался?
Ответить с цитированием