Вниз
Скачать: CL | DM;

Как нарисовать?   Найти похожие ветки 

 
Александер   (2005-03-09 19:46) [0]

Приветствую Вас, господа!
Сообщений об ошибках нет, но программа не работает как надо.
Создал две формы. На форме1 вводятся координаты вершин прямоугольника, который с успехом на ней же и рисуется. Тут вроде все нормально. Но рисовать на форме2 не хочет. Вот:

procedure TForm1.Button1Click(Sender: TObject);
var x1, y1, x2, y2: integer;
begin
   x1 := StrToInt(Edit1.Text);
   y1 := StrToInt(Edit2.Text);
   x2 := StrToInt(Edit3.Text);
   y2 := StrToInt(Edit4.Text);
   Form2.Canvas.Rectangle(x1, y1, x2, y2);
   if (not Form2.Visible) then Form2.ShowModal;

end;


Т.е. форма2 включается, но прямоугольника на ней нет.
Помогите пожалуйста!


 
aus   (2005-03-09 19:52) [1]

Александер   (09.03.05 19:46)
Form2.Canvas.Rectangle(x1, y1, x2, y2);
if (not Form2.Visible) then Form2.ShowModal


поменяй местами.


 
Virgo_Style ©   (2005-03-09 19:54) [2]

aus   (09.03.05 19:52) [1]
поменяй местами.

:-))) Ну-ну.


 
Александер   (2005-03-09 20:01) [3]

Все равно нету...
Я ввожу х1 = у1 = 400, х2 = у2 = 600

Может это координаты неправильные?
А может в Unit2 нужно что-то вписать дополнительно для формы2 (кроме выхода конечно)?


 
ламер_   (2005-03-09 20:01) [4]


> поменяй местами

И чего получится? пока fm2 не закроется, прямоугольник даже не нарисуется :))
2 Александер - а координаты хоть задавал в пределах окна ? или же брал экранные?


 
aus   (2005-03-09 20:04) [5]

Не заметил ShowModal

Просто дело в том, что форма перерисовывается, т.е. рисовать нужно на видимой форме (в OnPaint, например).


 
Zeqfreed ©   (2005-03-09 20:05) [6]

Александер   (09.03.05 19:46)

procedure TForm1.Button1Click(Sender: TObject);
var x1, y1, x2, y2: integer;
begin
  x1 := StrToInt(Edit1.Text);
  y1 := StrToInt(Edit2.Text);
  x2 := StrToInt(Edit3.Text);
  y2 := StrToInt(Edit4.Text);
  if (not Form2.Visible) then Form2.Show;
  Form2.Canvas.Rectangle(x1, y1, x2, y2);
end;

У меня получилось нарисовать только так, на ShowModal не рисует. Ну и естественно после перерисовки (а при открытии окно перерисовывается) прямоугольник стирается => порядок открытия/рисования нужно поменять.


 
Александер   (2005-03-09 20:08) [7]

Спасибо! Получилось :)


 
Defunct ©   (2005-03-09 22:59) [8]

Александер   (09.03.05 20:08) [7]

Рано радуетесь. Любое окно затрет все ваши художества.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1109578732
Tornado
2005-02-28 11:18
2005.03.27
Не работает Windows Update


10-1087493123
Igoryok
2004-06-17 21:25
2005.03.27
Как узнать функции OLE сервера


3-1109840819
juice
2005-03-03 12:06
2005.03.27
DataSource


1-1110997286
Руслана
2005-03-16 21:21
2005.03.27
Подскажите какую нибудь статью по


14-1110319566
ArMellon
2005-03-09 01:06
2005.03.27
GeForce2 MX VGA BIOS где найти дрова?




   Наверх