Avatar billede hugopedersen Nybegynder
24. juni 2009 - 07:44 Der er 12 kommentarer og
1 løsning

Udskriv med registreret program

Jeg bruger nedenstående function til at forsøge at udskrive en .pas fil ved hjælp af Delphi. Men den går ikke, jeg får en fejl 31 - a device attached to the system is not functioning
Jeg har sakset kode fra bitwise artiklen 'A DELPHI PROGRAM LAUNCHPAD' - med mods.
Hvis jeg ændrer Print til Open, så åbnes filerne lige så fint.

Function FilePrint(Const aFile : String) : THandle;
  Type
    CharArray = Array[0..MAX_PATH] Of Char;
  Var
    ntFileName              : CharArray;
    ntDir                  : CharArray;
    strPath                : String;
begin
  strPath := ExtractFilePath(aFile);
  Result := ShellExecute(Application.MainForm.Handle,
  'Print',
  StrPCopy(ntFileName, aFile),
  Nil,
  StrPCopy(ntDir, strPath),
  SW_HIDE);
End;
Avatar billede hugopedersen Nybegynder
24. juni 2009 - 07:47 #1
Nu kom jeg til at trykke opret før jeg fik rettet antal point - hvor kan man rette det som på den gamle Eksperten?
Avatar billede borrisholt Novice
24. juni 2009 - 08:49 #2
Du kunne også bare vælge den simple løsning :

uses
  ShellaPI;

function FilePrint(const aFile: string): THandle;
var
  Path: string;
begin
  Path:= ExtractFilePath(aFile);
  Result := ShellExecute(0, 'Print', PChar(aFile), nil, PChar(Path), SW_HIDE);
end;

procedure TForm8.FormCreate(Sender: TObject);
begin
  if FilePrint('C:\Users\jbo.PROFDOC\Documents\RAD Studio\Projects\Unit8.pas') <> 0then
    ShowMessage(SysErrorMessage(GetLastError));
end;
Avatar billede hugopedersen Nybegynder
24. juni 2009 - 09:16 #3
Det giver så bare en anden fejl - no application is associated with the specified file for this operation

Og det er ligegyldigt om det er en .pas, .dfm eller .dpr fil
Avatar billede borrisholt Novice
24. juni 2009 - 09:21 #4
Se DET er et windows opsætnings problem, som du så må løse.
Avatar billede a_nor Nybegynder
24. juni 2009 - 09:24 #5
Du kan jo prøve om print virker fra CMD-promptet !
Avatar billede hugopedersen Nybegynder
24. juni 2009 - 09:51 #6
Og hvis jeg så forsøger at lave en print option på .pas så får jeg at vide at 'cannot create file when a file with that name exists' og det giver ingen mening synes jeg ikke.
Avatar billede hugopedersen Nybegynder
01. juli 2009 - 07:01 #7
Læg et par svar for input så jeg kan lukke.

Projektet lykkedes dog ikke for mig da jeg ikke kan få Delphi IDE til at skrive ud på denne måde.
Avatar billede a_nor Nybegynder
01. juli 2009 - 10:32 #8
Hej Hugo,

Det er ikke lykkedes mig at finde ud af, hvad du egentlig vil have printet og hvordan .... ?

Anders
Avatar billede hugopedersen Nybegynder
01. juli 2009 - 10:36 #9
Alle de .pas, .dfm og dpr filer der findes i de directories jeg har valgt.
Avatar billede a_nor Nybegynder
01. juli 2009 - 11:11 #10
Ok, så forstår jeg bemærkningen om Delphi IDE-et.
Du fik vel print til at virke med PAS og DPR-filer, og så fandt du ud, at der skulle formattering til ?
Avatar billede hugopedersen Nybegynder
01. juli 2009 - 11:17 #11
Jeg kan ikke få nogen af mulighederne til at virke.
Delphi er ikke sat op til at kunne udskrive på den måde. Om den kan skal jeg lade være usagt, jeg kan i hvert fald ikke finde skruen der skal drejes.
Avatar billede a_nor Nybegynder
01. juli 2009 - 11:28 #12
I Delphi 7 har jeg lige prøvet at udskrive en DPR-fil med linienumre og farver. Det fungerer perfekt!
Avatar billede hugopedersen Nybegynder
01. juli 2009 - 11:32 #13
Det gør det hvis du har filen åbnet i IDE, men det jeg vil gøre er at kalde det via noget DDE lignende fiksfaks
Jeg har et program der kan tage et anatl directories i og så for hver af disse directories viser den alle de .pas .dfm og .dpr filer der er og så kan man skrive dem ud.

Hvis du gerne vil se det så kast en email.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester