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

десингтайм   Найти похожие ветки 

 
zep ©   (2004-06-05 15:23) [0]

привет ALL подскажите как запретить изменение размеров компанента в десингтайме


 
Mim1 ©   (2004-06-05 15:26) [1]

Вообще запретить? или только через инспектор обьектов, или тольео мышкой?


 
KilkennyCat ©   (2004-06-05 15:32) [2]

Задать ограничение размера, констрайзсайз - типа так произносится :)


 
zep ©   (2004-06-05 15:41) [3]

есть компанент предком его является Tpanel и на панели располежены другие компаненты и надо чтобы когда пользователь ставил компанент на форму он не мог ее мышкой уменишить или растянуть


 
Гаврила ©   (2004-06-05 16:11) [4]

У компонента есть свойство ComponentState
там есть флаг. по которому можно понять, какой тайм - дезайн или ран


 
jack128 ©   (2004-06-05 16:21) [5]


> подскажите как запретить изменение размеров компанента в
> десингтайме
контрола, я так понимаю?
Перекрыть SetBounds

procedure TMySuperControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
 if csDesigning in ComponentState then
 begin
   AWidth := Width;
   AHeight := Height;
 end
 inherited;
end;


 
Гаврила ©   (2004-06-05 17:02) [6]

>>jack128 ©   (05.06.04 16:21) [5]

Наверно все таки не совсе так
потому что по inherited все выполнится в любом случае


 
zep ©   (2004-06-05 17:27) [7]

а если можно попадробние
>>jack128 ©   (05.06.04 16:21) [5]
Наверно все таки не совсе так
потому что по inherited все выполнится в любом случае


 
Petr V. Abramov ©   (2004-06-05 18:25) [8]

CanResize поможет


 
default ©   (2004-06-05 18:58) [9]

procedure TMySuperControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
if not csDesigning in ComponentState then inherited
end;


 
Petr V. Abramov ©   (2004-06-05 19:05) [10]

> default ©   (05.06.04 18:58) [9]
 И как же компонент, например, св-во Width из dfm загрузит?
 Про csLoading забыли?


 
default ©   (2004-06-05 19:10) [11]

Petr V. Abramov ©   (05.06.04 19:05) [10]
точно ведь


 
jack128 ©   (2004-06-05 19:30) [12]

procedure TMySuperControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
if not csDesigning in ComponentState then inherited
end;
А как человек будет менять местоположение компонента? ;-)
Итого:
procedure TMySuperControl.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
if (csDesigning in ComponentState) and not (csLoading in ComponentState) then
begin
  AWidth := Width;
  AHeight := Height;
end
inherited;
end;


 
Petr V. Abramov ©   (2004-06-05 19:47) [13]

function CanResize(var NewWidth, NewHeight: Integer): Boolean; override;
begin
 Result := (not (csDesigning in ComponentState) or (csLoading in ComponentState)) and inherited CanResize(NewWidth, NewHeight)
end;


 У меня короче :)


 
zep ©   (2004-06-05 20:38) [14]

всем спасибо



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

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



Память: 0.47 MB
Время: 0.028 c
1-1086255561
DIS
2004-06-03 13:39
2004.06.20
Перевод символа в верхний регистр


14-1086328393
Iraizor
2004-06-04 09:53
2004.06.20
Что за компонент ?


9-1077293085
Creep
2004-02-20 19:04
2004.06.20
как перемещать Timage с поворотом


14-1086268337
Григорьев Антон
2004-06-03 17:12
2004.06.20
Кто-нибудь сталкивался с вирусом cache277?


1-1086177479
None
2004-06-02 15:57
2004.06.20
Показ формцы




   Наверх