Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
ВнизЕсть такая директива? Найти похожие ветки
← →
NAlexey (2003-04-16 16:00) [0]Проблема в следующем: был описан класс наследник от TPersistent и у него описан свой метод SetBounds куда в отличии от стандартного передавался готовый TRect а не координаты. Возникла необходимость сменить класс на TWinControl, исправив все видимые ошибки с этим связанные. Исправили. Щас возникла ситуация такая, автор когда писал код использовал локальные переменные совпадающие с названием некоторых методов у TControl как то например
var BoundsRect: TRect;
и дальше по тексту -BoundsRect := Rect(10,10,100,100); SetBounds(BoundsRect)
и в этом месте в процедуру SetBounds передается BoundsRect контрола естественно пустой... Можно это решить с помощью директивы какой нибудь, если нет то как можно?
← →
Внук (2003-04-16 16:10) [1]Что-то здесь нечисто.
Локальные переменные имеют приоритет видимости по сравнению с данными объекта-предка.
← →
Anatoly Podgoretsky (2003-04-16 16:12) [2]Module.XXX
← →
NAlexey (2003-04-16 16:24) [3]>Module.XXX
Хотелось бы с как можно меньшими затратам времени решить.
>Что-то здесь нечисто.
Локальные переменные имеют приоритет видимости по сравнению с данными объекта-предка.
Не знаю как объяснить.
TMyClass = class(TWinControl)
private
SetBounds(ARect: Trect);
end;
procedure TMyClass.Blah;
var
BoundsRect: TRect;
begin
BoundsRect := Rect(10, 10, 100, 100);
SetBounds(BoundsRect);
end;
Идет в TControl.GetBoundsRect потом TMyClass.SetBouns...
← →
Внук (2003-04-16 16:40) [4]Вот именно здесь локальная переменная var BoundsRect должна перекрыть область видимости свойства BoundsRect предка и, как следствие, вызов метода GetBoundsRect.
Иначе - ухожу в монастырь
← →
NAlexey (2003-04-17 11:45) [5]>Внук
Когда постриг?:)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c