Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Александер   (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 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.072 c
14-1109840007
Marser
2005-03-03 11:53
2005.03.27
Хочу извиниться


1-1111043672
Gek1
2005-03-17 10:14
2005.03.27
ComboBox


14-1109578732
Tornado
2005-02-28 11:18
2005.03.27
Не работает Windows Update


1-1110886549
MixAnOL
2005-03-15 14:35
2005.03.27
Не работает ShowScrollBar


1-1110905825
alex2005
2005-03-15 19:57
2005.03.27
Связь и передача данных из программы в Excell





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский