|
| 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
| |
|
|