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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2012, 13:39   #1
NameGrey
Новичок
Джуниор
 
Регистрация: 26.05.2012
Сообщений: 1
По умолчанию Компонент круглой кнопки

Пытался разобраться сам, но все же обращусь за помощью к более опытным... Мне нужно создать компонент круглой кнопки. Создать-то я его создал:

Код:
unit ell;
 
interface
 
uses
  SysUtils, Classes, Controls, StdCtrls,windows;
 
type
  Tell = class(TButton)
  private
 
    { Private declarations }
  protected
    { Protected declarations }
      procedure CreateWnd;override;
  public
    { Public declarations }
  published
    { Published declarations }
  end;
 
procedure Register;
 
implementation
 
procedure Register;
begin
  RegisterComponents('New', [Tell]);
end;
 
{ Tell }
procedure Tell.CreateWnd;
var
 FormRgn:hrgn;
begin
  inherited;
  FormRgn := CreateRoundRectRgn(1, 1, Width - 1,
  height - 1, width, height);
  SetWindowRgn(Handle, FormRgn, TRUE);
end;
 
end.

Проблема заключается в том, что при изменении размеров компонента визуально компонент не перерисовывается. Пробовал переопределять Repaint. Ничего не получилось. Во время работы программы я могу изменить размеры моего компонента(см. ниже код), но мне нужно, чтобы это уже было в нем заложено, а не программно осуществлялось.

Код:
var
FormRgn: hRgn;
begin
ell1.Width:=200; //  ell1 - имя объекта созданного на основе класса моего компонента
ell1.height:=100;
FormRgn := CreateRoundRectRgn(1, 1, ell1.Width - 1,
ell1.height - 1, ell1.width, ell1.height);
SetWindowRgn(ell1.Handle, FormRgn, TRUE);
NameGrey вне форума Ответить с цитированием
Старый 28.05.2012, 13:20   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
что при изменении размеров
Код:
TControl
procedure ReSize dianmic;

Tell 
procedure ReSize; override;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент Image в роли кнопки. Небесный Общие вопросы Delphi 5 24.11.2011 18:23
[Поиск] Компонент локализации строковых ресурсов и сторонних компонент delphi Человек_Борща Компоненты Delphi 3 23.08.2011 10:44
Пример создания круглой кнопки ucs13 C++ Builder 0 15.06.2011 00:18
UCOZ: Кнопки кнопки на изображении ReDuX HTML и CSS 19 25.04.2008 02:39
триггерные кнопки и кнопки переключатели в DELPHI MARGO Помощь студентам 3 12.11.2007 17:35