24. oktober 2001 - 10:43Der er
63 kommentarer og 1 løsning
Opstilling af print
Jeg har problemer med at udskrive. Jeg skal have udskrevet de værdier der står i nogle editbokse, samt et billede (til medlemskort). Værdierne skal skrives ud på en bestemt placering på kortet, samt i en betemt størrelse.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
var Line: Integer; PrintText: TextFile; {declares a file variable} begin Printmedlem.Execute; if Printmedlem.Execute then begin AssignPrn(PrintText); {assigns PrintText to the printer} Rewrite(PrintText); {creates and opens the output file} Printer.Canvas.Font := edtNavn.Font; {assigns Font settings to the canvas} write(Printtext, edtNavn.Text); writeln(Printtext, imgmedlem.Picture.); CloseFile(PrintText); {Closes the printer variable} end; end;
Det virker fint nok, men hvordan får jeg et billede med på denne måde? Den skriver at det er en \"illegal type\"
Det ser ud til at virke fint. Et hurtigt lille spørgsmål. Hvordan får jeg den til at udskrive det billede der bliver vist i imgMedlem, i stedet for hele billedet? Kan man ændre i størrelsen på billedet, og hvilken del af billedet der skrives ud?
procedure TfrmMedlem.Button1Click(Sender: TObject); var Billede : TBitmap; begin if not BitBlt(Billede,50,50,150,200,imgMedlem.Picture.Bitmap.Canvas.Handle,10,10,BLACKNESS) then ShowMessage(\'Fejl ved ud print af billed\'); end;
VAR TmpCanvas : TCanvas; begin TmpCanvas := TCanvas.Create; TmpCanvas.Draw(0,0,imgMedlem.Picture.Bitmap); if not BitBlt(Printer.Canvas.Handle,50,50,150,200,TmpCanvas.Handle,10,10,BLACKNESS) then ShowMessage(\'Fejl ved ud print af billed\'); end;
Jeg har lavet en tmp canvas som jeg smider dit img over på og kopi\'er derfra ud på din printer canvas
if not BitBlt(Printer.Canvas.Handle,50,50,150,200,imgMedlem.Picture.Bitmap.Canvas.Handle,10,10,BLACKNESS) then ShowMessage(\'Fejl ved ud print af billed\');
Nu skal jeg nok snart give dig dine point. Jeg har skrevet følgende, Men jeg kan ikke rigtig se om det virker før jeg sætter det ind i en TImage. Jeg har en der hedder imgMedlem. Hvordan gør jeg det?
Jo, det skal jeg også, men jeg vil også gerne vise det rigtige billede inden jeg skriver det ud. Jeg skal lave et medlemskort, hvor jeg tager billedet med et webcam. Men det er svært kun at tage billede af hovedet på en person. Derfor er det nødvendigt at kunne klippe noget af billedet ud, og det ville jo være rart at kunne se det i et TImage før man printede det ud!
Du kan prøve sådan, så skulle den kopiere fra sig selv til sig selv, ved ikke om den kan finde ud af det, hvis ikke må du lave en extra Bitmap du kan Draw\'e over på og så tilbage fra med CopyRect()
Du kan da gøre som jeg foreslog, måske har du sat Strech til true på din image comp., men du kan da bare putte en image comp. mere på din form, eller lave en ny form hvor du viser den på, som du så lukker igen, ellers kan jeg ikke komme på nogle idér, men en TImage er den eneste Image comp. der er. Hvis den æder det og gør noget men det ikke ser ud som om der er nogen forskel, så er det nok dine Rect\'s du skal checke, om de er rigtige eller om du bare kopier det til samme størelse
Jeg prøver om jeg kan få det til at virke. Tak for hjælpen. Du har fortjent de 100 point. Hvis du er interesseret i at tjene 100 point mere, kan du jo kigge på dette spørgsmål:
Du har misforstået noget en TRect er IKKE et billed, det er bare størelsen på en firkant, en måde at angive et område på. Så du skal havde en Image med Org. billedet og en Image til det nye billede også angive området med en TRect.
Det er det med at angive området med en TRect der er problemet. Jeg tror det er den rigtige måde at gøre det på, men jeg kan ikke få det til at virke.
Kan du give et eksempel på et TImage der bliver loadet fra en fil, hvor du bruger TRect til at angive det område du vil have vist. Det ville være fedt!!!!!
Nej, men jeg har lige prøvet at copyrect fra en Image comp. til en PaintBox comp. det virker Lav en form smid en Image comp. på og en paintbox comp. på og en knap skriv denne kode i onclick event\'en på knappen :
procedure TForm1.Button1Click(Sender: TObject); VAR R,R2 : TRect; X : Integer; begin X := 50; R.Left := X; R.Top := X; R.Right := R.Left + ( Image1.Width - X ); R.Bottom := R.Top + ( Image1.Height - X ); R2.Left := 0; R2.Right := Image2.Width; R2.Top := 0; R2.Bottom := Image2.Height; PaintBox1.Canvas.CopyRect(R2,Image1.Picture.Bitmap.Canvas,R); end;
Jeg kunne ikke få den til at kopiere fra en image comp. til en anden, hvorfor ved jeg ikke lige, men måske du kan få noget ud af dette eks.
Jeg har fået et billede ind i TImage med en \"OpenPictureDialog\", og den er kopieret over i paintbox\'en, men den har samme størrelse. Er det meningen at der skal stå Image2 i ovenstående kode?
NEj Du kan loade en billede ind i Image comp. fra objectinspectoren, og så compilere, så kopierer den billedet over i paintbox\'en fra 50,50,width-50,height-50, altså et udsnit af det org. billed, det virkede hos mig.
Med nr 2 eks. kan du markere en område på billedet som den kopiere ( den tegner det ikke, men du cliker ned og flytter musen med og slipper, så har du markeret )
Leg lidt med dem, det burde kunne skubbe dig det sidste stykke
Du har været til KANON hjælp. Er du sikker på du ikke vil hjælpe mig med mit Chart problem? Der vil være mange point at hente. Jeg er ved at lave hovedopgave på Datamatikeruddannelsen, og jeg skal være færdig med at programmere d. 1. november, så jeg er lidt presset.
Jeg har ikke leget så meget med TChart, så den har jeg ikke den store erfaring med, derfor havde jeg ikke lige et bud på dit problem :(, måske hvis jeg får tid, så smider jeg et svar
Den zoomer helt vildt når jeg prøver at klippe noget ud. Det er kun hvis jeg klipper hele billedet ud igen, at det har den rigtig størrelse, og så går ideen ligesom af det. Hvis man klipper en lille smule ud, zoomer den meget. Det billede jeg klipper fra, er noget større end det endelige billede.
Så nu tror jeg det virker. Det var R2 jeg skulle rette på. Kan man ikke på en eller anden måde få en fast firkant som man kan se, til at skære den del af billedet ud man vil have. Problemet er, at hvis du ikke gør det i de helt rigtig proportioner når du trækker musen over billedet, kommer der en masse røde klatter i billedet.
Lige et hurtigt spørgsmål. Kan det kun lade sig gøre med *.bmp billeder, eller kan man bruge *.jpg? Jeg har prøvet med *.jpg men så sker der ikke noget?
Størelsen på DestRect og SourceRect, må du selv lige tilpasse
/Martin
Synes godt om
Ny brugerNybegynder
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.