Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2015, 09:58   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию Закруглить углы image

Собственно сабж.в гугле ничего не нашел
mitiay вне форума Ответить с цитированием
Старый 27.11.2015, 17:56   #2
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Вопрос Так пойдет?

Image бросаем на Панель, далее стандартная функция Windows по закруглению углов
Код:
procedure MakeRounded(MyControl: TWinControl);
var
  R: TRect;
  Rgn: HRGN;
begin
  R := MyControl.ClientRect;
  Rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 16, 16); //эти параметры определяют эллипс скругления
  MyControl.Perform(EM_GETRECT, 0, lParam(@R));
  InflateRect(R, -2, -2);
  MyControl.Perform(EM_SETRECTNP, 0, lParam(@R));
  SetWindowRgn(MyControl.Handle, Rgn, True);
  MyControl.Invalidate;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Panel1.BevelOuter := bvNone;
  Image1.Left := 0; Image1.Top := 0;
  Panel1.Width := Image1.Width; Panel1.Height := Image1.Height;
  MakeRounded(Panel1);
end;
SQLPowerUser вне форума Ответить с цитированием
Старый 27.11.2015, 19:51   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Спасибо большое!
mitiay вне форума Ответить с цитированием
Старый 28.11.2015, 05:20   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Но это же закругление самой TPanel, а не картинки.
FaTaL вне форума Ответить с цитированием
Старый 28.11.2015, 08:58   #5
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
По умолчанию

У image нет Handle... Здесь панель подгоняется под размер картинки и получаем результат. Я привел наименее затратное решение

Кстати, кому интересно, здесь, как рисовать гладкие круги без зазубрин, под спойлером переделал (с TCanvas.Pixels) на TBitmap.Scanline

Последний раз редактировалось SQLPowerUser; 28.11.2015 в 09:08.
SQLPowerUser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закруглить фигуры в Word ЕленаГ Помощь студентам 0 19.03.2014 01:14
Закруглить углы у Edit stalker1995s Общие вопросы Delphi 7 02.03.2013 14:48
Закруглить углы рамки в CSS Tonchi HTML и CSS 6 19.03.2012 12:34
Закруглить углы? Tonik_A HTML и CSS 1 01.03.2010 22:37