Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
10 / 10 / 2
Регистрация: 22.10.2010
Сообщений: 110

Изменение размеров рисунка при изменении размеров области вывода (окна)

04.10.2012, 19:27. Показов 3280. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно сделать так, что бы рисунок менял свой размер при изменении окна...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
unit Unit1;
interface
  uses Windows, Messages, SysUtils, Variants,Classes,Graphics,Controls,Forms,Dialogs,Math,StdCtrls;
type TForm1 = class(TForm)
procedure FormPaint(Sender: TObject);
end;
var Form1: TForm1;
implementation
{$R *.dfm}
 
procedure TForm1.FormPaint(Sender: TObject);
var
  mas_px: array of TPoint;
  i, r,r_1, pixel, x_0,y_0: Integer;
  ugol, ugol_1: Real;
begin
  pixel:=10;
  x_0:=ClientWidth div 2;
  y_0:=ClientHeight div 2;
  SetLength(mas_px, 5);
 
  ugol:=90; r:=200;
  for i:=0 to 4 do
  begin
    ugol:=ugol+(360/5);
    mas_px[i].X:=Round(x_0+r*cos((180*pi/180)+(ugol*pi/180)+2*pi*i/5));
    mas_px[i].Y:=Round(y_0+r*sin((180*pi/180)+(ugol*pi/180)+2*pi*i/5));
  end;
  Canvas.Pen.Width:=20;
  Canvas.Pen.Color:=clRed;
  Canvas.Polygon(mas_px);
 
  ugol_1:=-90; r_1:=84;
  for i:=0 to 4 do
  begin
    mas_px[i].X:=Round(x_0+r_1*cos((180*pi/180)+(ugol_1*pi/180)+2*pi*i/5));
    mas_px[i].Y:=Round(y_0+r_1*sin((180*pi/180)+(ugol_1*pi/180)+2*pi*i/5));
  end;
  Canvas.Pen.Width:=10;
  Canvas.Pen.Color:=clBlue;
  Canvas.Polygon(mas_px);
end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.10.2012, 19:27
Ответы с готовыми решениями:

Изменение размеров компонентов в Делфи при увеличении окна на весь экран
Здравствуйте,прошу вашей помощи,дело в том, что у меня такая проблема:я создал программу которая при выборе фигур отображает их,но есть...

Изменение размеров Image.Picture.LoadFromFile при изменении размеров окна
Подскажите, пожалуйста, какие функции для этого нужны.

Изменение размеров окна при изменении размеров виджета
Доброго времени суток, господа программисты! Возникла такая ситуация: есть окно программы, в нем виджет, который увеличивается при...

10
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
04.10.2012, 20:07
добавить в начало
Delphi
1
Canvas.FillRect(ClientRect);
и ту же самую процедуру подписать на событие OnResize
1
10 / 10 / 2
Регистрация: 22.10.2010
Сообщений: 110
05.10.2012, 18:00  [ТС]
не работает,..
он только смещает рисунок по центру когда начинаем менять размеры окна..
0
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
05.10.2012, 19:22
а чего хотел-то , что в идеале?
0
10 / 10 / 2
Регистрация: 22.10.2010
Сообщений: 110
06.10.2012, 17:21  [ТС]
!!!что бы размеры рисунка увеличивались/уменьшались(масштаб рисунка больше/меньше) по высоте/ширине при изменении окна программы.

и чтобы смещался при изменении окна программы к центу (по центу) и перерисовывал каждый раз рисунок [это уже работает]
0
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
06.10.2012, 17:41
Цитата Сообщение от Morfeus Посмотреть сообщение
что бы размеры рисунка увеличивались/уменьшались
разумеется не работает, т.к:
Delphi
1
r:=200;
или ты хочешь чтоб я его сам пересчитал имея ClientWidth и ClientHeight, тогда на главной странице спустись в самый низ, там помогут, да и я встречу
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33184 / 21482 / 8231
Регистрация: 22.10.2011
Сообщений: 36,852
Записей в блоге: 12
06.10.2012, 18:46
MansMI, а ты поднимись на самый верх, и прочти правила. Особенно пункт 5.9, угу?

Morfeus,
Delphi
1
2
3
4
5
// 1
  ugol:=90; r := Min(x_0, y_0) - 20; // Uses Math для Min ...
 
// 2
  ugol_1:=-90; r_1 := 3 * r div 10;
Ну, ты понимаешь. в какую сторону копать, да?

Цитата Сообщение от MansMI Посмотреть сообщение
добавить в начало <...>
и ту же самую процедуру подписать на событие OnResize
Тьфу... Self.Invalidate на OnResize зачем придумали?
1
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
06.10.2012, 20:34
как жена Цезаря, модераторы вне комментариев
0
10 / 10 / 2
Регистрация: 22.10.2010
Сообщений: 110
06.10.2012, 20:52  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
MansMI,
Тьфу... Self.Invalidate на OnResize зачем придумали?
не знаю, но эта "штука" перерисовку делает ..
друг посоветовал ))

Большое спасибо за помощь!
0
1615 / 1181 / 552
Регистрация: 08.01.2012
Сообщений: 4,558
06.10.2012, 21:04
Цитата Сообщение от Morfeus Посмотреть сообщение
Большое спасибо за помощь!
ответь это тому кто за тебя "заступился"
0
10 / 10 / 2
Регистрация: 22.10.2010
Сообщений: 110
06.10.2012, 21:15  [ТС]
да без б..
UI отдельное спасибо !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.10.2012, 21:15
Помогаю со студенческими работами здесь

Изменение размеров виджета при изменении размеров окна
Здравствуйте! Окно, созданное Qt (в моем случае QMainWindow), можно увеличивать и уменьшать в размерах. А как сделать так, чтобы...

Растягивание рисунка при изменении размеров окна
Доброго времени суток! У меня возникла проблема: на котроле я рисую круг, этот контрол масштабируется вместе с формой, на которой он...

Масштабирование размеров графика в Image при изменении размеров окна
Подскажите пожалуйста, как использовать масштабирование, у меня построен график в Image1, как сделать чтобы при изменение размеров окна,...

Автоматическое изменение размеров компонентов при изменении размеров формы
Приветствую. Подскажите. Форма по умолчанию при запуске приложения открывается по центру. Если необходимо развернуть форму на весь экран,...

Изменение размеров элементов, сохраняя пропорции, при изменении размеров самой формы
Как изменять размеры элементов, сохраняя пропорции, при изменении размеров самой формы?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru