Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Form.Print


don-do ©   (2003-01-27 08:10:00) 

В справке Form.Print описан как виртуальный метод, на самом же деле статический, нужно переопределить, кто подскажет как это сделать без большой крови.


REA   (2003-01-27 13:05:00) [1]

Да там и процедурка то простенькая - можно выдрать и переписать.


Юрий Зотов   (2003-01-27 12:35:00) [2]

Его не надо хакать, надо просто привести тип формы к Вашему. Для статических методов это обычная практика. А полностью переопределить статический метод - как? Никак. Он же напрямую вызывается, а не косвенно, как виртуальные/динамические.


don-do   (2003-01-27 10:48:00) [3]



Dmitry Filippov   (2003-01-27 10:47:00) [4]

Я бымший don-do
Спасибо! именно так я и делал,
но все же есть ли возможность переопределить статические методы?
У DreamControls есть пример, но их подход переопределяет методы класса, не хочется хакать весь класс.


Anatoly Podgoretsky   (2003-01-27 10:21:00) [5]

don-do (27.01.03 09:17)
Так не заработает, надо приведение к твоему классу.


Casee   (2003-01-27 10:09:00) [6]

Тогда нужно написать
TPrintForm(Screen.Forms[1]).Print;


don-do   (2003-01-27 09:17:00) [7]

Спасибо!
Но мне хочется чтобы заработал код
Screen.Forms[1].Print;


Юрий Зотов   (2003-01-27 09:04:00) [8]

Статические методы тоже можно переопределять, и в них тоже можно вызывать inherited. Только надо иметь в виду, что если метод Print будет вызван Вами, из кода Вашей формы - то это будет вызов Вашего Print. Если же он будет вызван из кода VCL - то это будет вызов старого Print, из TCustomForm.

Я сделал поиск по исходникам VCL и нигде не нашел внутренних вызовов TCustomForm.Print. Поэтому, думаю, можете смело замещать. Все вызовы будут Вашими - то есть, будет вызываться именно Ваш Print.


Наверх

Титульная страница Поиск, карта сайта Написать письмо