AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Offscreen-Bitmaps verwenden... wie
Thema durchsuchen
Ansicht
Themen-Optionen

Offscreen-Bitmaps verwenden... wie

Ein Thema von ferby · begonnen am 17. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#1

Offscreen-Bitmaps verwenden... wie

  Alt 17. Okt 2005, 20:10
Hallo,

Ich zeichne zur Zeit auf einer Paintbox, habe aber ein Problem, und zwar das das Bild verschwindet sobal die Grafik mit Scrollbalken hin und her geschrieben wird.

Wie kann ich jetzt auf Offscreen-Bitmaps zeichnen???

Hier mein Quellcode:

Delphi-Quellcode:
//////////////////////////////////////////////////////////////////////////////// Zeichnen
procedure rekursion(var zRe, Zim, cre, cim: real; var n:integer);
var
reneu,imneu: real;
begin
  reneu:=zre * zre - zim * zim + cre;
  imneu:=2 * zre * zim+ cim;
  inc(n);
  if (reneu*reneu+ imneu*imneu < 4) and (n<1000)
  then rekursion (ReNeu, Imneu, cRe, cim, n);
end;

procedure TForm1.button_zeichnenClick(Sender: TObject);
var
i,j: integer;
temp1,temp2:real;
begin
  max:=max+100;
  pbox.height:=max;
  pbox.width:=max;
  label_copy.Top:=label_copy.Top+100;
  pbox.Refresh;

  button_zeichnen.Caption:='Größer &Zeichnen';

  for i:= 0 to max do for j:= 0 to max do
  begin
    n:=-1;
    zRe:=0;
    zIm:=0;
    temp1:=(-(max/2) + i) /(max/4);
    temp2:=((max/2)-j)/(max/4);
    rekursion(zRe, Zim, temp1, temp2, n);
    pbox.canvas.pixels[i,j]:=$1FFF*10*n;
  end;

end;
pbox ist eine Paintbox. Ich möchte aber jetzt zu erst auf ein Bitmap zeichnen und dann erst auf die PaintBox, wie muss ich das machen?
Wenn ihr mir nicht den Quellcode schreiben wollt versteh ich das, ich wäre auch über Denkanstoße dankbar.


Ferby
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Offscreen-Bitmaps verwenden... wie

  Alt 17. Okt 2005, 20:11
anstelle von pbox.canvas verwendest du dann einfach deinBitmap.Canvas und scheibst dieses mit BitBlt dann mit einem Mal auf die Canvas von deiner pbox (im OnPaint)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Offscreen-Bitmaps verwenden... wie

  Alt 17. Okt 2005, 20:14
Hallo Ferby,
Bei einer Paintbox musst du den Canvas der Paintbox immer im OnPaint der Paintbox füllen. Um das Ganze über ein Offscreen-Bitmap zu lösen, benötigts du eine TBitmap-Instanz mit den Abmessungen der Paintbox, in dessen Canvas du zeichnest. Im OnPaint der Paintbox kopierst du dann das Bitmap in den Canvas der Paintbox (Stichwort BitBlt).

Ich denke, dass sollte dir helfen oder benötigst du konkreteres?

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Offscreen-Bitmaps verwenden... wie

  Alt 17. Okt 2005, 20:50
Wenn du sogar schon weißt, wie es heißt, warum suchst du denn nicht mal danach hie rim Forum ode mit Google? Hier im Forum suchenoffscreen bitmap.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 Uhr.
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