Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
14-15825
Tux
2003-01-22 00:18
2003.02.06
Нормальный провайдер в Москве


14-15841
gsu
2003-01-21 17:17
2003.02.06
А что там с дотом ?


14-15860
Ketmar
2003-01-19 15:09
2003.02.06
One Writer Multiple Readers


1-15580
=SOFT=
2003-01-28 15:05
2003.02.06
Как узнать и правильно обработать выбранный фильтр в SaveDialog


8-15766
Ciber
2002-10-23 20:40
2003.02.06
Вывод текста поверх рисунка!




   Наверх