AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem Graphic32 und Paintbox

Ein Thema von BrunoT · begonnen am 7. Jun 2005 · letzter Beitrag vom 7. Jun 2005
 
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
 


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 22:23 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