gromar Skrevet 30. mars 2004 Del Skrevet 30. mars 2004 Hei, Jeg skriver et program der jeg tegner opp en del vektorer på canvassen til et Timage. Problemet er ikke opptegningen men størrelsen. Jeg får ikke laget TImage større en ca 5000*5000 når jeg kjører en oppløsning på 1024*768, og mindre om jeg har høyere oppløsning. Problemet er at jeg trenger et TImage som er størst mulig helst 20000*20000. Jeg bruker en TImagePanel for og "ha" bilde i, slik at jeg kan scrolle med det. Noen forslag? Mvh Martin Groh Lenke til kommentar
DidzisK Skrevet 31. mars 2004 Del Skrevet 31. mars 2004 procedure TForm1.Button1Click(Sender: TObject); var C:TCanvas; begin if M<>nil then M.Free; //M er privat property av TForm1 M:=TMetafile.Create; M.Width:=20000; M.Height:=20000; C:=TMetafileCanvas.Create(M,0); try C.Pen.Color:=clBlack; C.MoveTo(0,0); C.LineTo(20000,20000); finally C.Free; end; RedrawImage; end; procedure TForm1.RedrawImage; begin Image1.Canvas.FillRect(Rect(0,0,1000,1000)); Image1.Canvas.Draw(-HorzScrollbar.Position,-VertScrollbar.Position,M); end; procedure TForm1.VertScrollbarChange(Sender: TObject); begin RedrawImage; end; Komentarer: Jeg har plassert Image1 på formen, med VertScrollbar til høyre fra den og HorzScrollbar under. Begge disse har Max=20000. VertScrollbarChange er OnChange event for begge to. Jeg tegner alt på TMetafileCanvas i Button1Click og når jeg kaller C.Free, blir alt innhold overført fra C til metafilen (ifølge Delphi Help). Så er det bare å tegne den synlige delen av metafilen på Image1.Canvas. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå