![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Убрать свойство из класса
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;
{---------------------------------------}
сделал
и в теле SetLeftPos вызываю.
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;
{---------------------------------------}
12 (2010-02-03 10:26:00) [7]
> SetWidth(70);
а это как?