![]() |
Bitmap in Paintbox anzeigen
Hallo,
ich möchte ein Bitmap (oder anderes Bildformat) an einer bestimmten stelle in einer Paintbox anzeigen lassen. Ich bekomm es aber irgendwie nicht hin. Hab auch schon die Suche benutzt aber da wird nirgends angezeigt, wo ich einen Pfad zu der Bilddatei eingeben kann. Gruß Martin |
Re: Bitmap in Paintbox anzeigen
Hallo,
Zitat:
![]() Gruß xaromz |
Re: Bitmap in Paintbox anzeigen
das war mir irgendwie klar ^^
aber dann ist da das problem, wie ich ein bild in ein Tbitmap lade :( Bin echt grade auf dem Holzweg |
Re: Bitmap in Paintbox anzeigen
Hallo,
Zitat:
![]() Gruß xaromz |
Re: Bitmap in Paintbox anzeigen
Hallo,
weil das Thema hier gut reinpasst. Wenn ich mit TBitmap.LoadFromFile ein Bitmap lade, dann wird das Bitmap ins linke obere Eck geladen. Wie kann ich das Bitmap irgendwo hin laden? Mein Problem: Ich habe ein TBItmap mit Inhalt, jetzt möchte ich ca. in die Mitte des Inhaltes eine Zeichnung aus einer *.bmp Laden, aber ich hab keine Ahnung wie ich das in die Mitte lade. Denn wenn ich BM.LoadFromFile('tes.bmp'); verwende, dann kann ich keine Koordinaten oder sonst was angeben.... Hoffe mein Problem ist klar.. Ferby |
Re: Bitmap in Paintbox anzeigen
Zitat:
![]() Zitat:
|
Re: Bitmap in Paintbox anzeigen
Hallo,
ich verstehe nicht ganz was du meinst, aber hier mal mein Quellcode:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Forms, GIFImage, Classes, Controls, ExtCtrls, Graphics, StdCtrls; type TForm1 = class(TForm) PBox: TPaintBox; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); end; var Form1: TForm1; BM: TBitmap; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin // BM wird mit blauen Hintergrund erstellt BM:=TBitmap.create; BM.Width:=790; BM.Height:=590; BM.Canvas.Brush.Color:=clBlue; BM.Canvas.FillRect(Rect(0,0,790,590)); // Extra Grafik wird hineingeladen BM.LoadFromFile('dat/ferby-speed.bmp'); end; procedure TForm1.FormPaint(Sender: TObject); begin BitBlt(PBox.Canvas.Handle, 0, 0, BM.Width, BM.Height, BM.Canvas.Handle, 0, 0, SrcCopy); end; end. Ich möchte jetzt das die Zeichnung von ferby-speed.bmp nicht links oben beim Bildschirm angezeigt wird sondern in der mitte, wie muss ich das anstellen? |
Re: Bitmap in Paintbox anzeigen
Was heißt du verstehst nicht, was ich meine? ist es denen so schwer zu verstehen, dass bei der Methode Draw die ersten beiden Parameter (x, y) die Position angeben, wo sich am Ende die linke obere Ecke des Bitmaps befindet?
Bei BitBlt genaus:
Delphi-Quellcode:
Was geben wohl der zweite und dritte bzw. der achte und neunte Parameter an? Wenn man es nicht in der Hilfe* findet, dann könnte man da doch einfach mal irgendwelche Werte eingeben und gucken, was passiert.
procedure TForm1.FormPaint(Sender: TObject);
begin BitBlt(PBox.Canvas.Handle, 0, 0, BM.Width, BM.Height, BM.Canvas.Handle, 0, 0, SrcCopy); end; Die passende Hilfe wäre hier übrigens das PSDK / MSDN, da es sich um eine Windows API-Funktion handelt. |
Re: Bitmap in Paintbox anzeigen
Hallo,
was ich nicht verstehe ist, ob ich jetzt zwei Variabeln von Typ TBitmap brauche oder nicht. Ich brauche doch 2? Sonst hab ich nicht kapiert wie du das lösen willst. Ich verstehe das schon mit dem Draw und den Koordinanten. |
Re: Bitmap in Paintbox anzeigen
Ja das brauchst du. Aber wo ist das Problem? dann gibst du bei BitBlt eben das erste als Ziel an. Und dann kopierst du das erste auf die PaintBox zum Anzeigen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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