Вниз
Скачать: 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.48 MB
Время: 0.019 c
4-1081945308
Aleksandr
2004-04-14 16:21
2004.06.20
Объясните, люди добрые, как работать с GetASuncKeyState?


4-1084450714
senator
2004-05-13 16:18
2004.06.20
Отправка факса из программы


9-1078051428
Support1
2004-02-29 13:43
2004.06.20
Collision в DelphiX


8-1080807221
ИЛЕЙ
2004-04-01 12:13
2004.06.20
Замедление и ускорение звука


6-1082619213
Анонимщик
2004-04-22 11:33
2004.06.20
TServerSocket, TClientSocket. Синхронный и асинхронный, блокирующ




   Наверх