/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Skærmbillede til printer
Fra : Kurt Guldbæk


Dato : 08-07-04 10:49

Hej NG.

Jeg har før brugt PrintDialog.Execute for at printe tekst fra en RichEdit.
Nu har jeg brug for at kunne lave et 'skærmdump' til printeren.
Hvordan gør man det?

Mvh Kurt



 
 
Christian Iversen (08-07-2004)
Kommentar
Fra : Christian Iversen


Dato : 08-07-04 11:18

Kurt Guldbæk wrote:

> Hej NG.
>
> Jeg har før brugt PrintDialog.Execute for at printe tekst fra en RichEdit.
> Nu har jeg brug for at kunne lave et 'skærmdump' til printeren.
> Hvordan gør man det?

Måske er der i de nyere delphi-versioner en nemmere måde, men dengang jeg
brugte delphi (Delphi 3 :) var måden at kopiere skærmens indhold til et
bitmap, og så printe det. Du kan bruge windows.tegnefunktionen GetDC(0) til
at få et handle til tegnecontexten for hele skærmen. Prøv noget i stil med
følgende:

Var
C : TCanvas;
Begin
C := TCanvas.Create;
C.Handle := GetDC(0);
... brug C ...
CloseHandle(C.Handle);
C.Handle := 0;
C.Free;
End;

--
M.V.H
Christian Iversen

Kurt Guldbæk (08-07-2004)
Kommentar
Fra : Kurt Guldbæk


Dato : 08-07-04 11:49

"Christian Iversen" <chrivers@iversen-net.dk> wrote in message
news:ccj701$2jhb$1@news.cybercity.dk...
> Kurt Guldbæk wrote:
>
> > Hej NG.
> >
> > Jeg har før brugt PrintDialog.Execute for at printe tekst fra en
RichEdit.
> > Nu har jeg brug for at kunne lave et 'skærmdump' til printeren.
> > Hvordan gør man det?
>
> Måske er der i de nyere delphi-versioner en nemmere måde, men dengang jeg
> brugte delphi (Delphi 3 :) var måden at kopiere skærmens indhold til et
> bitmap, og så printe det. Du kan bruge windows.tegnefunktionen GetDC(0)
til
> at få et handle til tegnecontexten for hele skærmen. Prøv noget i stil med
> følgende:
>
> Var
> C : TCanvas;
> Begin
> C := TCanvas.Create;
> C.Handle := GetDC(0);
> ... brug C ...
> CloseHandle(C.Handle);
> C.Handle := 0;
> C.Free;
> End;
>
> --
> M.V.H
> Christian Iversen

Tak for svaret.
Jeg er nu ikke interesseret i hele skærmen, blot det aktive program. Altså
samme funktion, som man får med 'Alt' + 'PrintScrn'.

Er det samme metode?
/Kurt



Nicolai Hansen (09-07-2004)
Kommentar
Fra : Nicolai Hansen


Dato : 09-07-04 12:35

> > Var
> > C : TCanvas;
> > Begin
> > C := TCanvas.Create;
> > C.Handle := GetDC(0);
> > ... brug C ...
> > CloseHandle(C.Handle);
> > C.Handle := 0;
> > C.Free;
> > End;
> >
> > --
> > M.V.H
> > Christian Iversen
>
> Tak for svaret.
> Jeg er nu ikke interesseret i hele skærmen, blot det aktive program. Altså
> samme funktion, som man får med 'Alt' + 'PrintScrn'.
>
> Er det samme metode?

prøv med GetDC(Form.Handle);

/Nic

> /Kurt

Kurt Guldbæk (09-07-2004)
Kommentar
Fra : Kurt Guldbæk


Dato : 09-07-04 18:25

"Nicolai Hansen" <nic@aub.dk> skrev i en meddelelse
news:d96764ff.0407090335.1c05b780@posting.google.com...
> > > Var
> > > C : TCanvas;
> > > Begin
> > > C := TCanvas.Create;
> > > C.Handle := GetDC(0);
> > > ... brug C ...
> > > CloseHandle(C.Handle);
> > > C.Handle := 0;
> > > C.Free;
> > > End;
> > >
> > > --
> > > M.V.H
> > > Christian Iversen
> >
> > Tak for svaret.
> > Jeg er nu ikke interesseret i hele skærmen, blot det aktive program.
Altså
> > samme funktion, som man får med 'Alt' + 'PrintScrn'.
> >
> > Er det samme metode?
>
> prøv med GetDC(Form.Handle);
>
> /Nic

Det meste er nu sort tale for mig. Jeg vil lige se hvad hjælpen siger om
GetDC!
/Kurt



PØLLE (08-07-2004)
Kommentar
Fra : PØLLE


Dato : 08-07-04 14:53

Prøv:
if PrintDialog.Execute then Editor.Print(FileName);

Editor is TRichEdit
Filename = Dir + Filnavn

PØLLE



Kurt Guldbæk (08-07-2004)
Kommentar
Fra : Kurt Guldbæk


Dato : 08-07-04 16:53


"PØLLE" <NoName@mail.dk> skrev i en meddelelse
news:40ed51b0$0$287$edfadb0f@dread16.news.tele.dk...
> Prøv:
> if PrintDialog.Execute then Editor.Print(FileName);
>
> Editor is TRichEdit
> Filename = Dir + Filnavn
>
> PØLLE

Er det ikke kun til tekst?
/Kurt



Thor (08-07-2004)
Kommentar
Fra : Thor


Dato : 08-07-04 20:25

Sådan her

Form1.Print;

Thomas Riedel

"Kurt Guldbæk" <kurt_g@guldbaek.net> skrev i en meddelelse
news:40ed188c$0$226$edfadb0f@dread16.news.tele.dk...
> Hej NG.
>
> Jeg har før brugt PrintDialog.Execute for at printe tekst fra en RichEdit.
> Nu har jeg brug for at kunne lave et 'skærmdump' til printeren.
> Hvordan gør man det?
>
> Mvh Kurt
>
>



Kurt Guldbæk (08-07-2004)
Kommentar
Fra : Kurt Guldbæk


Dato : 08-07-04 21:13

"Thor" <thor@thor.thor> skrev i en meddelelse
news:40ed9eea$0$23871$14726298@news.sunsite.dk...
> Sådan her
>
> Form1.Print;
>
> Thomas Riedel
>
> "Kurt Guldbæk" <kurt_g@guldbaek.net> skrev i en meddelelse
> news:40ed188c$0$226$edfadb0f@dread16.news.tele.dk...
> > Hej NG.
> >
> > Jeg har før brugt PrintDialog.Execute for at printe tekst fra en
RichEdit.
> > Nu har jeg brug for at kunne lave et 'skærmdump' til printeren.
> > Hvordan gør man det?
> >
> > Mvh Kurt
> >

Det var jo simpelt!
Desværre giver det følgende fejlmelding:
[Error] This form of method call only allowed for class methods

/Kurt



Christian Iversen (10-07-2004)
Kommentar
Fra : Christian Iversen


Dato : 10-07-04 19:29

Kurt Guldbæk wrote:

> "Thor" <thor@thor.thor> skrev i en meddelelse
> news:40ed9eea$0$23871$14726298@news.sunsite.dk...
>> Sådan her
>>
>> Form1.Print;
>>
>> Thomas Riedel
>>
>> "Kurt Guldbæk" <kurt_g@guldbaek.net> skrev i en meddelelse
>> news:40ed188c$0$226$edfadb0f@dread16.news.tele.dk...
>> > Hej NG.
>> >
>> > Jeg har før brugt PrintDialog.Execute for at printe tekst fra en
> RichEdit.
>> > Nu har jeg brug for at kunne lave et 'skærmdump' til printeren.
>> > Hvordan gør man det?
>> >
>> > Mvh Kurt
>> >
>
> Det var jo simpelt!
> Desværre giver det følgende fejlmelding:
> [Error] This form of method call only allowed for class methods

Du har skrevet TForm.Print i stedet for Form1.Print. ... vil jeg vædde
med :)

--
M.V.H
Christian Iversen

Kurt Guldbæk (10-07-2004)
Kommentar
Fra : Kurt Guldbæk


Dato : 10-07-04 23:19

"Christian Iversen" <chrivers@iversen-net.dk> skrev i en meddelelse
news:ccpchj$1l9$1@news.cybercity.dk...
> Kurt Guldbæk wrote:
Snip
> >> Form1.Print;
Snip
> > Det var jo simpelt!
> > Desværre giver det følgende fejlmelding:
> > [Error] This form of method call only allowed for class methods
>
> Du har skrevet TForm.Print i stedet for Form1.Print. ... vil jeg vædde
> med :)
> --
> M.V.H
> Christian Iversen

Godt, at vi ikke væddede, for du havde fuldstændig ret.
Tak for hjælpen til jer alle.
/Kurt



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste