Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi anzahl pixel bei image1.strech:= true (https://www.delphipraxis.net/7871-anzahl-pixel-bei-image1-strech-%3D-true.html)

iaby 28. Aug 2003 09:21

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

Gandalfus 28. Aug 2003 12:12

Re: anzahl pixel bei image1.strech:= true
 
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  PaintBox1.Canvas.StretchDraw(PaintBox1.ClientRect,Image1.Picture.Graphic);
end;
Wo ist das Problem?

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]

iaby 28. Aug 2003 12:48

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

Matze 29. Aug 2003 09:21

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. :(

Gandalfus 29. Aug 2003 13:23

Re: anzahl pixel bei image1.strech:= true
 
Du benutzt ein TBitmap als zwischen speicher. Dadurch kann es auch nicht flimmern.

Delphi-Quellcode:
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;
Ich schreib hier ja bald dein ganzes Programm...

@Maze: Ich will da jetzt nicht draufrumhacken aber deine Lösung ist nicht gerade ideal.(meine ist sicher auch nicht perfekt)

Matze 29. Aug 2003 13:29

Re: anzahl pixel bei image1.strech:= true
 
@Gandalfus: Meines ist gar keine Lösung!! :shock: ;)

Jens Schumann 29. Aug 2003 13:39

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.

Gandalfus 29. Aug 2003 14:35

Re: anzahl pixel bei image1.strech:= true
 
Zitat:

Zitat von Jens Schumann
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

Ich hab bewusst draw genommen ist für Anfänger leichter.

Delphi-Quellcode:
BitBlt(Painbox1.canvas.handle, 0, 0, backbild.witdh, backbild.height, backbild.Canvas.Handle, 0, 0, srccopy);
als Alternative zu draw.

Zitat:

Ach ja. Im OnPaint Event der PaintBox solltest ebenfalls die Bitmap zeichnen lassen.
Hab ich doch


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz