Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закругление краев 
:(
    Опции темы
MrDmitry
Дата 5.9.2011, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Всем привет. Делаю закругления краев у панелей


Код

  r := frame11.spanel5.ClientRect;
  rgn := CreateRoundRectRgn(-5, r.top, r.right, r.bottom, 10, 10);
  frame11.spanel5.BorderStyle := bsNone;
  frame11.spanel5.Perform(EM_GETRECT, 0, lparam(@r));
  InflateRect(r, -5, -5);
  frame11.spanel5.Perform(EM_SETRECTNP, 0, lparam(@r));
  SetWindowRgn(frame11.spanel5.Handle, rgn, true);


Но в итоге закругления краев получается не ровным а каким то рваным 
user posted image

И еще вопрос. Привиденный код закругляет только правую часть. Но на другой панели мне нужно закруглить только левую часть. Делаю так 

Код

r := mains.spanel6.ClientRect;
  rgn := CreateRoundRectRgn(r.Left, r.top, -5, r.bottom, 0, 10);
  mains.spanel6.BorderStyle := bsNone;
  mains.spanel6.Perform(EM_GETRECT, 0, lparam(@r));
  InflateRect(r, -5, -5);
  mains.spanel6.Perform(EM_SETRECTNP, 0, lparam(@r));
  SetWindowRgn(mains.spanel6.Handle, rgn, true);


Но в итоге компонет просто не отображается. Я так понимаю это происходит из за того что компонент прорисовывается с левf на право и соответственно в данном коде прорисовывается с 0 до -5. Но как тут быть?
PM MAIL   Вверх
bems
Дата 5.9.2011, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



На оконных регионах не сделать сглаживания, забудь об этом.


--------------------
Обижено школьников: 8
PM MAIL   Вверх
MrDmitry
Дата 6.9.2011, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цитата(MrDmitry @ 5.9.2011,  15:49)
И еще вопрос. Привиденный код закругляет только правую часть. Но на другой панели мне нужно закруглить только левую часть. Делаю так 

Код

r := mains.spanel6.ClientRect;
  rgn := CreateRoundRectRgn(r.Left, r.top, -5, r.bottom, 0, 10);
  mains.spanel6.BorderStyle := bsNone;
  mains.spanel6.Perform(EM_GETRECT, 0, lparam(@r));
  InflateRect(r, -5, -5);
  mains.spanel6.Perform(EM_SETRECTNP, 0, lparam(@r));
  SetWindowRgn(mains.spanel6.Handle, rgn, true);


Но в итоге компонет просто не отображается. Я так понимаю это происходит из за того что компонент прорисовывается с левf на право и соответственно в данном коде прорисовывается с 0 до -5. Но как тут быть?

C этим я разобрался

bems
И как быть?
PM MAIL   Вверх
Frees
Дата 6.9.2011, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



может взять сторонние компоненты, alphaskins например или еще какие аналоги погуглить


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
bems
Дата 6.9.2011, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(MrDmitry @  6.9.2011,  13:14 Найти цитируемый пост)
И как быть? 
ну например поступить радикально, и сделать вебинтерфейс smile
Или layered windows



--------------------
Обижено школьников: 8
PM MAIL   Вверх
MrDmitry
Дата 6.9.2011, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Блин. Слишком много придется переделывать если делать веб интерфейс.  В моем коде происходит же закругление углов. Просто как то не очень красиво (((
PM MAIL   Вверх
14SatanA88
Дата 6.9.2011, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 2
Всего: 5



MrDmitry, я бы нарисовал просто углы и расставлял бы их (изображения) по нужным местам
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1663 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.