рисование — нарисуйте линию на форме шоу / видимое переполнение стека

Эй, я хочу что-то нарисовать, когда форма всплывает. Я заметил OnPaint даже, но это не показывает мой рисунок. Когда я добавляю его к кнопке, он показывает, что я хотел нарисовать.

Вот что я рисую:

void TSelectElementForm::DrawLinesInLayout()
{
EraseLayOut(); //draws a new square over the previous lines
int X_origin, Y_origin;
int X1, Y1, X2, Y2, X3, Y3, X4, Y4;
int VectorSize;
int scale;

X_origin = Layout->Left +5;
Y_origin = Layout->Top +5;

Canvas->Pen->Color=clRed;
Canvas->MoveTo(X_origin,Y_origin);
Canvas->LineTo(X_origin,Y_origin+10);
Canvas->MoveTo(X_origin,Y_origin);
Canvas->LineTo(X_origin+10,Y_origin);

VectorSize = ElementVector[Index].vectorLP.size();
scale = CalculateScale();

for(int i =0; i < VectorSize; i++)
{
int LPX = ElementVector[Index].vectorLP[i].X;
int LPY = ElementVector[Index].vectorLP[i].Y;
int BeginX = ElementVector[Index].el_beginX;

Canvas->Pen->Color=clLime;

X1 = X_origin + ((LPX  - BeginX) / scale);
Y1 = Y_origin + (LPY / scale);

if(i == 0)
{
Canvas->MoveTo(X1, Y1);
}
else
{
Canvas->LineTo(X1, Y1);
}
}
}

Поэтому, когда я вызываю этот метод в кнопке, он работает, но когда я вызываю это в OnShow событие или OnPaint событие это ничего не привлекает.

Странная вещь, когда я просто создаю новый проект с drawLine() метод (который рисует 1 линию) и OnPaint Событие это работает. Как это возможно?

Итак, просто 2 вопроса:

  • Этот метод долго рисовать, прежде чем всплывает моя форма?
  • Как я могу получить это на моей форме сразу же, когда она появляется?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]