Текущий архив: 2003.02.06;
Скачать: CL | DM;
ВнизForm.Print Найти похожие ветки
← →
don-do (2003-01-27 08:10) [0]В справке Form.Print описан как виртуальный метод, на самом же деле статический, нужно переопределить, кто подскажет как это сделать без большой крови.
← →
Юрий Зотов (2003-01-27 09:04) [1]Статические методы тоже можно переопределять, и в них тоже можно вызывать inherited. Только надо иметь в виду, что если метод Print будет вызван Вами, из кода Вашей формы - то это будет вызов Вашего Print. Если же он будет вызван из кода VCL - то это будет вызов старого Print, из TCustomForm.
Я сделал поиск по исходникам VCL и нигде не нашел внутренних вызовов TCustomForm.Print. Поэтому, думаю, можете смело замещать. Все вызовы будут Вашими - то есть, будет вызываться именно Ваш Print.
← →
don-do (2003-01-27 09:17) [2]Спасибо!
Но мне хочется чтобы заработал код
Screen.Forms[1].Print;
← →
Casee (2003-01-27 10:09) [3]Тогда нужно написать
TPrintForm(Screen.Forms[1]).Print;
← →
Anatoly Podgoretsky (2003-01-27 10:21) [4]don-do (27.01.03 09:17)
Так не заработает, надо приведение к твоему классу.
← →
Dmitry Filippov (2003-01-27 10:47) [5]Я бымший don-do
Спасибо! именно так я и делал,
но все же есть ли возможность переопределить статические методы?
У DreamControls есть пример, но их подход переопределяет методы класса, не хочется хакать весь класс.
← →
don-do (2003-01-27 10:48) [6]
← →
Юрий Зотов (2003-01-27 12:35) [7]Его не надо хакать, надо просто привести тип формы к Вашему. Для статических методов это обычная практика. А полностью переопределить статический метод - как? Никак. Он же напрямую вызывается, а не косвенно, как виртуальные/динамические.
← →
REA (2003-01-27 13:05) [8]Да там и процедурка то простенькая - можно выдрать и переписать.
Страницы: 1 вся ветка
Текущий архив: 2003.02.06;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.012 c