Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
Вниздесингтайм Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.032 c