![]() |
Re: anzahl pixel bei image1.strech:= true
also die property strechdraw hab ich nicht gefunden.
und die englische hilfe zu onPaint hab ich nicht kapiert(was ich wahrscheinlich auch auf deutsch nicht gemacht hätte) könnte ich das noch mal genauer haben, bitte? gruss, iaby |
Re: anzahl pixel bei image1.strech:= true
Delphi-Quellcode:
Wo ist das Problem?
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin PaintBox1.Canvas.StretchDraw(PaintBox1.ClientRect,Image1.Picture.Graphic); end; [edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit] |
Re: anzahl pixel bei image1.strech:= true
ich zeichne aber selbst auf die paintbox, und lade nicht nur ein image!
die paintbox stellt bei mir einen fortschrittsbalken dar. wenn ich nun gerade eine zeit lang nicht drauf zeichne und die paintbox mit etwas anderem überdecke, dann wir ihr inhalt wieder weiß. würde ich das auf ein image zeichnen, hätte ich dieses problem nicht. gruss, iaby |
Re: anzahl pixel bei image1.strech:= true
@Gandalfus: Ich hab das irgendwie falsch verstanden.
Ich habe es so verstanden, dass er ein Bild auf dem Image hat, und er aus das Selbe Image eine Linie zeichnen will. :( |
Re: anzahl pixel bei image1.strech:= true
Du benutzt ein TBitmap als zwischen speicher. Dadurch kann es auch nicht flimmern.
Delphi-Quellcode:
Ich schreib hier ja bald dein ganzes Programm...
var
Backbild: TBitmap; //dürfte klar sein procedure TForm1.PaintBox1Paint(Sender: TObject); begin PaintBox1.Canvas.Draw(0,0,backbild); end; //Bitmap initializeren und bild aus Imag11 auf das Bitmap kopieren procedure TForm1.FormCreate(Sender: TObject); begin Backbild := TBitmap.Create; Backbild.Width := PaintBox1.Width; Backbild.Height := PaintBox1.Height; Backbild.Canvas.StretchDraw(Rect(0,0,Backbild.Width,Backbild.Height),Image1.Picture.Graphic); end; //beim beenden freigeben procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Backbild.Free; end; //hier ein Beispiel zum linien zeichnen procedure TForm1.Button1Click(Sender: TObject); begin Backbild.Canvas.Pen.Color := clred; Backbild.Canvas.MoveTo(1,1); Backbild.Canvas.lineto(25,25); PaintBox1.Canvas.Draw(0,0,backbild); end; @Maze: Ich will da jetzt nicht draufrumhacken aber deine Lösung ist nicht gerade ideal.(meine ist sicher auch nicht perfekt) |
Re: anzahl pixel bei image1.strech:= true
@Gandalfus: Meines ist gar keine Lösung!! :shock: ;)
|
Re: anzahl pixel bei image1.strech:= true
Hallo Gandalfus,
die Methode mit der Bitmap als Zwischenspeicher ist sogar ziemlich gut. Wenn Du jetzt eine BitBlt API-Funktionen und nicht Canvas.Draw nehmen würdest, wäre die Lösung soage ziemlich ziemlich gut. Die BitBlt sind erheblich schneller Ach ja. Im OnPaint Event der PaintBox solltest ebenfalls die Bitmap zeichnen lassen. |
Re: anzahl pixel bei image1.strech:= true
Zitat:
Delphi-Quellcode:
als Alternative zu draw.
BitBlt(Painbox1.canvas.handle, 0, 0, backbild.witdh, backbild.height, backbild.Canvas.Handle, 0, 0, srccopy);
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz