Главная страница
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.016 c
15-1263655862
HRustBB
2010-01-16 18:31
2010.04.04
как сделать браузер классов


6-1207310729
Pochemuk
2008-04-04 16:05
2010.04.04
Ремэпинг без подмены IP. Как сделать?


1-1247727939
wildarg
2009-07-16 11:05
2010.04.04
Получить выделенный текст из другого окна


15-1263211082
trxnet
2010-01-11 14:58
2010.04.04
Кодирование буфера


3-1222293772
ЮЮ
2008-09-25 02:02
2010.04.04
MS SQL. inserted и deleted таблицы в InstedOfUpdate триггере