Einzelnen Beitrag anzeigen

Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#1

Problem Graphic32 und Paintbox

  Alt 7. Jun 2005, 08:13
Hallo DP'ler,


ich habe bisher mit Paintbox und Buffer- Bitmap gearbeitet und mit dem OnPaint- Ereignis über BtlBlt das Bitmap auf die Paintbox kopiert.
Das funktionierte mit
Delphi-Quellcode:
procedure THauptform.LadenClick(Sender: TObject);
var
  JpBitmap: TJPEGImage;
begin
  JpBitmap := TJPEGImage.Create;
  JpBitmap.LoadFromFile(Bildname);
  Bitmap.Assign(JpBitmap); //Buffer- Bitmap
  JpBitmap.Free;
  LeinwandPaint(self); //Neuzeichnen
end;
...

procedure THauptform.LeinwandPaint(Sender: TObject);
begin
  BitBlt(Leinwand.Canvas.Handle, 0, 0, Bitmap.Width,
    Bitmap.Height, Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
end;
Mit dem OnPaint-Ereignis habe ich die Paintbox neu gezeichnet, wenn nötig.


Die Paintbox ist in einer Scrollbox.

=========================================
Umstieg auf Graphic32



Nun besitzt ja Paintbox32 ein eigenes Buffer- Bitmap aber wenn ich ein Bild in das Buffer- Bitmap lade
und dann z.B. scrolle ist die Paintbox schwarz (warum eigentlich nicht weiss???).
Ein OnPaint-Ereignis fehlt hier.
Wenn ich aber die Paintbox32 mit folgenden Befehlen fülle, kann ich scrollen !?!

Delphi-Quellcode:
  Leinwand.Buffer.Canvas.Brush.Color := clwhite;
  Leinwand.Buffer.Canvas.Polygon([Point(0, 0), Point(0, Leinwand.Height),
    Point(Leinwand.Width, Leinwand.Height), Point(Leinwand.Width, 0)]);
  for i := 1 to 20 do //Testgitter
  With Leinwand.Buffer.Canvas Do
  Begin
    MoveTo(I*100,1);
    LineTo(I*100,2336);
  end;
  for i := 1 to 40 do
  With Leinwand.Buffer.Canvas Do
  Begin
    MoveTo(1,I*100);
    LineTo(1656,I*100);
  end;
  LeinwandPaint(self); //rufe ich auf, um Bitmap auf die Paintbox32 zu zeichnen
end;
Frage:
1. Warum gibt es kein OnPaint-Ereignis?
2. Sollte ich lieber Image32 anstelle der Paintbox nehmen? (Flackert das Bild dann wieder?)
3. Wie kann ich das Bild scrollen, ohne das Bereiche, die vorher ausserhalb lagen, schwarz werden?

mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat