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

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

Наверх




Память: 0.49 MB
Время: 0.036 c
1-1086757998
artem_123
2004-06-09 09:13
2004.06.20
Как создать submenu в mainmenu программным путем


1-1086611864
Dextor
2004-06-07 16:37
2004.06.20
Помогите с TRichEdit...


4-1084787168
SergD
2004-05-17 13:46
2004.06.20
Как под LPT сделать кнопку и отследить ее состояние?


14-1085666449
Nic
2004-05-27 18:00
2004.06.20
Я тут хомячок сделал. Зацените :)


14-1086250079
Igorek
2004-06-03 12:07
2004.06.20
Колличество дней между двумя датами.