Вниз
Скачать: CL | DM;

Убрать свойство из класса   Найти похожие ветки 

 
oleg1963lora   (2010-02-03 09:57) [0]

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

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;
 Как избежать такое явление? Где я ошибся?


 
12 ©   (2010-02-03 10:26) [1]


> SetWidth(70);

а это как?


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


> а это как?

Вместо
 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 12:10) [3]

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

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


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

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


 
brother ©   (2010-02-03 12:20) [5]

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


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

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


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


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


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



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
3-1237759093
zod33
2009-03-23 00:58
2010.04.04
Ошибка при вставке


15-1263435454
brother
2010-01-14 05:17
2010.04.04
Уникальность окна


6-1216304328
Karat
2008-07-17 18:18
2010.04.04
Замена broadcast-пакетов на unicast-пакеты


15-1263452243
brother
2010-01-14 09:57
2010.04.04
Из cmd получить файл по http


2-1264862689
TRSteep
2010-01-30 17:44
2010.04.04
Права доступа на запись




   Наверх