Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Убрать свойство из класса


oleg1963lora ©   (2010-02-03 09:57:00) 

Здравствуйте уважаемые мастера! Создал класс на основе панели. В свойствах указал координаты, высоту и ширину. Потом решил высоту и ширину определять внутри объекта, но столкнулся с фокусом.
Если убрать свойство, оставив процедуру в защищенном разделе, при ее вызове меняются размеры главной формы. Т.е. при

procedure TComponent1.SetLeftPos(Value: integer);
begin
    Panel.Left:=Value;
    Label1.Left:=10;
    ProgressBar.Left:=30;
    ............................
    SetWidth(70);
end;
форма принимает вид узкой полоски

Родители объявлены так
procedure TComponent1.SetParent(Value: TWinControl);
begin
    Panel.Parent:=Value; {Form1}
    Label1.Parent:=Panel;
    Label2.Parent:=Panel;
    ProgressBar.Parent:=Panel;
    ModLevel.Parent:=Panel;
    ModDisorder.Parent:=Panel;
    BasicLevel.Parent:=Panel;
    DisOrderLevel.Parent:=Panel;
    TurnOn.Parent:=Panel;
end;
 Как избежать такое явление? Где я ошибся?


Ega23   (2010-02-03 16:00:00) [1]


> ИМХО не очень красиво, однако работает


Почему бы и нет?


oleg1963lora   (2010-02-03 15:57:00) [2]

В общем, я установки высоты и ширины компонетов вбил напосредственно в конструктор Create сразу после создания компонентов. ИМХО не очень красиво, однако работает. За вопрос извиняюсь.


brother   (2010-02-03 12:20:00) [3]

ждем внятных объяснений...


Ega23   (2010-02-03 12:12:00) [4]

Я нихрена не понял.


12   (2010-02-03 12:10:00) [5]

а чего в SetWidth написано?
вообще, полный листинг можно?

чет ниче не понял -
>> Родители объявлены так
родители какие-то.. Родитель по-идее один, от кого наследуемся.


oleg1963lora   (2010-02-03 11:25:00) [6]


> а это как?

Вместо
 protected
   { Protected declarations }
   procedure SetLeftPos (Value : integer);
   procedure SetTopPos (Value : integer);
   procedure SetWidth (Value : integer);
  {-----------------------------------}
 public
   { Public declarations }
   property LeftPos : integer write SetLeftPos;
   property TopPos : integer write SetTopPos;
   property Width  : integer write SetWidth;
  {---------------------------------------}

сделал

protected
   { Protected declarations }
   procedure SetLeftPos (Value : integer);
   procedure SetTopPos (Value : integer);
   procedure SetWidth (Value : integer);
  {-----------------------------------}
 public
   { Public declarations }
   property LeftPos : integer write SetLeftPos;
   property TopPos : integer write SetTopPos;
  {---------------------------------------}
и в теле SetLeftPos вызываю.


12   (2010-02-03 10:26:00) [7]


> SetWidth(70);

а это как?


Наверх

Титульная страница Поиск, карта сайта Написать письмо