Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.017 c
1-15743
Dionis
2003-01-28 09:34
2003.02.06
Время между событиями


3-15431
Я
2003-01-22 12:37
2003.02.06
Блокировка таблицы


6-15811
kalishenko stas
2002-12-11 17:54
2003.02.06
Проверка почты


4-15978
Ewgenij85
2002-12-22 19:16
2003.02.06
Свойства файла


3-15434
CashDi
2003-01-22 12:23
2003.02.06
AutoIncrement firebird dbExpress