Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.04.04;
Скачать: 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 вся ветка

Текущий архив: 2010.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
15-1263245425
Юрий
2010-01-12 00:30
2010.04.04
С днем рождения ! 12 января 2010 вторник


15-1263644504
AlexDan
2010-01-16 15:21
2010.04.04
dll библиотеки и линукс..


15-1263421825
Юрий
2010-01-14 01:30
2010.04.04
С днем рождения ! 14 января 2010 четверг


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


15-1263502754
zalet
2010-01-14 23:59
2010.04.04
шифрование