TPrintDialog w CBuilder /i Delphi/
4 отговора
182 прегледа
TPrintDialog w CBuilder /i Delphi/
Zdravejte.
Do sega ne mi se beshe sluchawalo. Programa, napisana na CBuilder na iska da startira ako njama instaliran printer na PC-to. Razbrah che ima syshtija problem i v Delphi. Porovih se v mrejata, no reshenieto, koeto vidjah e "Instalirajte si printer". Njakoj da se e sblyskwal s tozi problem, da znae kak se reshawa i da iska da spodeli. :)
Do sega ne mi se beshe sluchawalo. Programa, napisana na CBuilder na iska da startira ako njama instaliran printer na PC-to. Razbrah che ima syshtija problem i v Delphi. Porovih se v mrejata, no reshenieto, koeto vidjah e "Instalirajte si printer". Njakoj da se e sblyskwal s tozi problem, da znae kak se reshawa i da iska da spodeli. :)
Re: TPrintDialog w CBuilder /i Delphi/
Проблемът определено не е в BCB-то или пък Делфи-то. Всяка вин програма ще изреве на умряло, ако не си инсталирал принтер и искаш да печаташ на принтера по подразбиране - дето го няма. По добре сложи на формата си TPrinterSetupDialog и при натискането на съответния бутон или каквото е там да изпълни следното:
PrinterSetupDialog1->Execute();
Не ти ли е хрумвало че може да има инсталирани няколко принтера на едно ПК - вкл. мрежови ? Как ще избереш напр. принтера на 2-я етаж ,по коридора в дясно ?
PrinterSetupDialog1->Execute();
Не ти ли е хрумвало че може да има инсталирани няколко принтера на едно ПК - вкл. мрежови ? Как ще избереш напр. принтера на 2-я етаж ,по коридора в дясно ?
Re: TPrintDialog w CBuilder /i Delphi/
До колкото разбирам, можеш да бръкнеш в кода, нали?
Ако е така, добре. Ако не е така, то май наистина трябва да си инсталираш някакъв принтер...
За да не ти стартира въобще програмата, значи, че имаш грешка в самата инициализациа някъде.
Прост пример (работя на Delphi и за това ще е от там):
Имам форма, на която в един от компонентите трябва да се покажат и онагледят имената на всички фонтове, които мога да използвам. За предпочитане е да са принтерските фонтове, а не тези на екрана.
Ако директно във FormCreate извикам Printer.Fonts (списъка с фонтове на принтера по подразбиране) и в системата ми няма изобщо такъв принтер, ще имам отвратителна грешчица, която няма да разреши на програмата да продължи изобщо.
За целта - два варианта за решение:
1. Try... except... end:
Но това е само за конкретния пример, да речем... Ти можеш да използваш нещо от сорта на:
2. Провери дали списъкът на принтерите в системата не е празен
... Printer.Printers.Count = 0 (100% нещо подобно в CBuilder...)
и действай в зависимост от това.
Ако е така, добре. Ако не е така, то май наистина трябва да си инсталираш някакъв принтер...
За да не ти стартира въобще програмата, значи, че имаш грешка в самата инициализациа някъде.
Прост пример (работя на Delphi и за това ще е от там):
Имам форма, на която в един от компонентите трябва да се покажат и онагледят имената на всички фонтове, които мога да използвам. За предпочитане е да са принтерските фонтове, а не тези на екрана.
Ако директно във FormCreate извикам Printer.Fonts (списъка с фонтове на принтера по подразбиране) и в системата ми няма изобщо такъв принтер, ще имам отвратителна грешчица, която няма да разреши на програмата да продължи изобщо.
За целта - два варианта за решение:
1. Try... except... end:
............
try
lFonts := Printer.Fonts;
except
lFonts := Screen.Fonts;
end;
......
Но това е само за конкретния пример, да речем... Ти можеш да използваш нещо от сорта на:
............
try
Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode); //tuk moje da imash problemi,
//ako imash default printer,
//no toi ne e aktiven v momenta
except
//do s.th. else
end;
......
2. Провери дали списъкът на принтерите в системата не е празен
... Printer.Printers.Count = 0 (100% нещо подобно в CBuilder...)
и действай в зависимост от това.
Re: TPrintDialog w CBuilder /i Delphi/
Jawno ne sym opisal sywsem dobre problema. Ne opitwam da pechatam. Imam prosto forma, w kojato slagam PrintDialog. Nishto poweche. Takawa forma ne moje da startira izobshto. Ne stigam do PrintDialog->Execute(). Problema idwa, kogato na sistemata njama instalirn nito edin printer.
Inache, blagodarja za otgoworite. Shte prodaljawam da opitwam warianti.
Inache, blagodarja za otgoworite. Shte prodaljawam da opitwam warianti.
Re: TPrintDialog w CBuilder /i Delphi/
Problema se okaza slednija. Edna forma, t.e., dialog, pri mnogoto mu preprawjanija se okaza che ima TPrintDialog, kojto izobshto ne izpolzwam. I poneje tazi forma se syzdawa sys starta na prilojenieto....
Oshte wednyj vi blagodarja za otgovorite.
Oshte wednyj vi blagodarja za otgovorite.