Newsgroup: it.comp.lang.delphi
Titolo: Problema con Delphi 7 & Windows 98

Salve a tutti!
Provando un semplice programma di stampa compilato con Delphi 7 (usa
TPrinter, apre un nuovo documento, scrive due righe sul canvas e
chiude, mandando in stampa) su Windows 98, esso solleva un'eccezione,
facendo piantare (oltre a se stesso)  il servizio di stampa (intendo
la finestrella di windows elencante per ogni stampante i processi di
stampa attivi) e facendo arrivare il s.o alla famigerata schermata blu
se tento di chiuderlo col task manager. Ora, dato che lo stesso
programma funziona sia su Windows Me che Xp, e che, sempre lo stesso
programma, compilato con Delphi 5 su Windows 98 funzionava, mi chiedo
se ci sia un modo per risolvere il problema (che non sia, ovviamente
cambiare versione di Windows o Delphi :) )
Grazie infinite, sono disperato!
PS: la stampante è un'HP, con annesse utility proprietarie.
Daniele

 Daniele
Io cambierei proprio il S.O. come ho detto anche in passato ritengo una
decisione alquanto strana quella di tenere Win98 e non passare a un Win
2000, non dico Xp ma almeno un Win 2000 che graficamente non si allontana
molto dal 98, ma strutturalmente è quasi uguale ad Xp.
Poi ognuno fa come meglio crede.

 Poi ognuno fa come meglio crede.
Prediligo anche io Windows 2000/XP, ma come accade spesso a chi sviluppa 
programmi, il cliente avrà al 99,9% una macchina differente con un 
sistema operativo più datato. :-)
Poi, se il programma sviluppato deve essere ufficialmente distribuito e 
commercializzato, non si può escludere così su due piedi un sistema 
operativo per problemi dalle origini non note.
Ciao!
-- 
Marco «Alka» Breveglieri
  ABLS Team S.n.c. - Software & Web
  Via De Gasperi, 14
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it

   
http://www.abls.it
Molti software oggi hanno dei requisiti minimi per il semplice motivo che
magari win 98 non supporta certe tecnologie, nessuno si comprerebbe un
cellulare non dual band o con l'antennona gigante oggigiorno... questo vuol
dire che ( ovviamente dipende sempre da con chi hai a che fare e dal tuo
giro di clienti ) l'utente medio in genere si adatta alle nuove
tecnologie.Per quanto riguarda i sistemi operativi da escludere tieni
presente che dai piu grandi fornitori di hardware ( parlo dei driver di
periferica )e di software c'è un grande sistema operativo che viene
puntualmente escluso...Linux anche se negli ultimi anni pare che le cose
stiano andando meglio..

Sono d'accordo, anche io cambierei volentieri il s.o, ma il cliente
non è troppo d'accordo su questa cosa... Mille programmi installati,
casino bestiale etc.
Il problemone è che non posso ricompilare il mio programma con un
delhpi vecchio perchè uso caratteristiche db che delphi 5 non ha...
Non avete idee su cosa può essere all'origine dell'eccezione?
Daniele


 tecnologie.
Non sono certo che sia proprio vero che il cliente si adatta facilmente 
alle nuove tecnologie, ad ogni modo è un discorso che esula dal 
ragionamento che stavo facendo io.
E' ovvio che non posso pretendere di far girare un'applicazione che si 
integra nel "Ripristino Configurazione di Sistema", servizio disponibile 
solo in Windows XP (tralasciando ME), all'interno di Windows 98: 
l'incompatibilità con 98 è dettata dal fatto che non supporta il 
servizio al quale mi appoggio.
Da qui ad escludere Windows 98 dall'elenco dei sistemi operativi in 
grado di far girare il mio applicativo perchè esce un "blue screen" 
quando si stampa banalmente un documento usando il Canvas mi pare 
eccessivo: escludere Windows 98 è solo un espediente per aggirare il 
vero problema, tralasciandolo volutamente e avvantaggiandosi solo del 
fatto che, per qualche strano motivo, in altri sistemi operativi non 
viene segnalato l'errore (il ché non vuol dire nemmeno che il problema 
non sussista anche in quei casi).
Comunque, io suggerisco all'Original Poster del thread di allegare un 
po' di codice, altrimenti non è proprio possibile capire quale possa 
essere il motivo del crash riscontrato (già sarà difficile 
diagnosticarlo quando tutte le variabili saranno note...) :-)


 Non avete idee su cosa può essere all'origine dell'eccezione?
Posta un po' di codice... :-)



Effettivamente al di la di tutte le opinioni che ognuno di noi puo avere
penso che la cosa piu utile sia , come dice Marco Breveglieri, di postare
del codice in modo da poter capire il problema....

PS: la stampante è un'HP, con annesse utility proprietarie.
http://tinyurl.com/3m2st
Che modello stai usando?
Ciao
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

Ecco qui; come dicevo fa veramente cose semplicissime:
procedure TForm1.Button1Click(Sender: TObject);
var printer:Tprinter;
    x,y:integer;
begin
  printer:=Tprinter.create;
  printer.begindoc;
  y:=0;
  x:=0;
  repeat
      x:=x+100;
      printer.canvas.textout(x,y,inttostr(x));
  until x>(printer.pagewidth-100);
  x:=0;
  repeat
    printer.canvas.textout(x,y,inttostr(y));
    y:=y+50;
  until y>printer.PageHeight ;
  printer.enddoc;
end;
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 [...]
Perchè dovresti creare un'istanza di *TPrinter*?
Elimina la chiamata a TPrinter.Create() e la variabile locale di nome 
Printer: utilizza invece l'oggetto fornito dalla funzione *Printer* (di 
tipo *TPrinter*) della unit /Printers.pas/.
Fai un tentativo e verifica cosa accade...
Ciao! :-)
