![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать? [D7, WinXP]
Александер © (2005-03-09 19:46:00)Приветствую Вас, господа!
Сообщений об ошибках нет, но программа не работает как надо.
Создал две формы. На форме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 включается, но прямоугольника на ней нет.
Помогите пожалуйста!
Defunct (2005-03-09 22:59:00) [1]Александер (09.03.05 20:08) [7]
Рано радуетесь. Любое окно затрет все ваши художества.
Александер (2005-03-09 20:08:00) [2]Спасибо! Получилось :)
Zeqfreed (2005-03-09 20:05:00) [3]Александер (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 не рисует. Ну и естественно после перерисовки (а при открытии окно перерисовывается) прямоугольник стирается => порядок открытия/рисования нужно поменять.
aus (2005-03-09 20:04:00) [4]Не заметил Show Modal
Просто дело в том, что форма перерисовывается, т.е. рисовать нужно на видимой форме (в OnPaint, например).
Александер (2005-03-09 20:01:00) [5]Все равно нету...
Я ввожу х1 = у1 = 400, х2 = у2 = 600
Может это координаты неправильные?
А может в Unit2 нужно что-то вписать дополнительно для формы2 (кроме выхода конечно)?
ламер_ (2005-03-09 20:01:00) [6]
> поменяй местами
И чего получится? пока fm2 не закроется, прямоугольник даже не нарисуется :))
2 Александер - а координаты хоть задавал в пределах окна ? или же брал экранные?
Virgo_Style (2005-03-09 19:54:00) [7]aus (09.03.05 19:52) [1]
поменяй местами.
:-))) Ну-ну.
aus (2005-03-09 19:52:00) [8]Александер (09.03.05 19:46)
Form2.Canvas.Rectangle(x1, y1, x2, y2);
if (not Form2.Visible) then Form2.ShowModal
поменяй местами.