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

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

Печать fsMDIChild [D6, Win2k]


PTE ©   (2002-06-10 12:23:00) 

Есть форма fsMDIChild, таких форм может быть открыто несколько, как дать понять, что нужно печатать именно ту форму fsMDIChild, которая сейчас активна если кнопка печати для всех одно в меню? Печатаю через QReport


hooky-mars   (2002-06-11 13:52:00) [1]

А что делать, если активную MDIChild MainForm`ы ищет поток? В таком случае TMyForm(ActiveMDIChild).QuickRep1.Print; не нашет. Непашет и MainForm.TMyForm(ActiveMDIChild).QuickRep1.Print;


kaif   (2002-06-11 11:16:00) [2]

Если формы разных классов, но отчет везде называется QuickRep1 то
var
c: TComponent;
begin
c := ActiveMDIChild.FindComponent("QuickRep1")
if c <> nil then
with c as TQuickRep do Print;
end;
Если все формы - экземпляры или потомки некоей формы TMyForm, содержащей QuickRep1, то еще проще:
TMyForm(ActiveMDIChild).QuickRep1.Print;


Black Cat   (2002-06-11 11:02:00) [3]


> PTE © (10.06.02 19:52)
> ну а как же другие делают? я такие программ сколько угодно
> видел. MDI приложение и распечатывается та форма печати,
> которая соответствует активной форме. Неужели никто не делал?

В том то и дело, что делал (только без qReporta), все работает. Если вопрос в силе, давай попробуем разобраться.


hooky-mars   (2002-06-10 21:03:00) [4]


> PTE © (10.06.02 21:00)
> нет у меня ничего не получается, а ко всему прочему рядом
> с моей родной серверной красят окна и двери и я сижу, начинаю
> отчаиватся и просто курю и тупо смотрю в монитор.
> мне пора в отпуск

Вообще-то это не ответ.


PTE   (2002-06-10 21:00:00) [5]

нет у меня ничего не получается, а ко всему прочему рядом с моей родной серверной красят окна и двери и я сижу, начинаю отчаиватся и просто курю и тупо смотрю в монитор.
мне пора в отпуск


hooky-mars   (2002-06-10 20:35:00) [6]


> PTE © (10.06.02 19:52)

А ты пробовал сливать менюшки или заменять актионлисты? Я то же пытаюсь решить эту проблуму. Но пока я её решил только при помощи API


PTE   (2002-06-10 19:52:00) [7]

ну а как же другие делают? я такие программ сколько угодно видел. MDI приложение и распечатывается та форма печати, которая соответствует активной форме. Неужели никто не делал?


hooky-mars   (2002-06-10 19:40:00) [8]

ActiveMDIChild до компанентов не домерёщся. Моно попробовать через Api, но незнаю как с принтом.


PTE   (2002-06-10 19:17:00) [9]

попробывал сделать так кинул на родительскую форму кнопку в обработке написал
if Application.FindComponent("Form3") <> nil then
Form3.Show
else
Form3 := TForm3.Create(Application);
Form3.QuickRep1.Preview;

но почему не срабатывает при вызове из системного меню MainMenu


PTE   (2002-06-10 19:08:00) [10]

Попробую ещё раз, почему не печатается или при Preview не просматравается документ

procedure TForm1.N7Click(Sender: TObject);
begin
if (ActiveMDIChild <> Nil) and
(ActiveMDIChild is TForm3) then
TForm3(ActiveMDIChild).QuickRep1.Print;
if (ActiveMDIChild <> Nil) and
(ActiveMDIChild is TForm5) then
TForm5(ActiveMDIChild).QuickRep1.Print;
end;


PTE   (2002-06-10 17:14:00) [11]

так может кто подскажет в чем не прав я?


PTE   (2002-06-10 16:45:00) [12]

да так и есть Form1 fsMDIForm, а остальные чилд


Black Cat   (2002-06-10 16:26:00) [13]

Form1 должна быть fsMDIForm, иначе ActiveMDIChild=nil


PTE   (2002-06-10 16:07:00) [14]

что-то не работает, пытаюсь просмотр делать
procedure TForm1.N20Click(Sender: TObject);
begin
if (ActiveMDIChild <> Nil) and
(ActiveMDIChild is TForm3) then
TForm3(ActiveMDIChild).QuickRep1.Preview;
if (ActiveMDIChild <> Nil) and
(ActiveMDIChild is TForm5) then
TForm5(ActiveMDIChild).QuickRep1.Preview;
end;
нет нифига ничего ни ошибок ни каких движений


Black Cat   (2002-06-10 14:51:00) [15]

if (ActiveMDIChild <> Nil) and (ActiveMDIChild is TForm2) then
TForm2(ActiveMDIChild).QReport1.Print;


PTE   (2002-06-10 14:49:00) [16]

так как правильно то?


hooky-mars   (2002-06-10 14:44:00) [17]


> ActiveMDIChild
Через неё не доберёшся до ком


PTE   (2002-06-10 14:38:00) [18]

ну да делаю ActiveMDIChild.Print; но как он поймет какой из форм ему печатать? у меня формы печати и просмотра на других формах с QReport


Black Cat   (2002-06-10 13:29:00) [19]

Используя ActiveMDIChild


PTE   (2002-06-10 13:29:00) [20]

Когда у меня была одна форма все было просто
Form2.QReport1.Print
Как же теперь понять что отправить на печать, а что нет


Наверх

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