AGB  ·  Datenschutz  ·  Impressum  







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

Bitmap in Paintbox anzeigen

Ein Thema von netscanner · begonnen am 27. Mai 2006 · letzter Beitrag vom 15. Aug 2006
Antwort Antwort
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#1

Bitmap in Paintbox anzeigen

  Alt 27. Mai 2006, 10:06
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
Martin
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Bitmap in Paintbox anzeigen

  Alt 27. Mai 2006, 10:10
Hallo,
Zitat von netscanner:
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.
Du kannst auch kein Bild in eine Paintbox laden. Du musst das Bild erst in ein TBitmap laden, und dann dieses auf den Canvas der Paintbox malen (Delphi-Referenz durchsuchenTCanvas.Draw).

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Bitmap in Paintbox anzeigen

  Alt 27. Mai 2006, 10:11
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
Martin
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Bitmap in Paintbox anzeigen

  Alt 27. Mai 2006, 10:14
Hallo,
Zitat von netscanner:
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
Wie wär's mit Delphi-Referenz durchsuchenTBitmap.LoadFromFile?

Gruß
xaromz
  Mit Zitat antworten Zitat
ferby

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

Re: Bitmap in Paintbox anzeigen

  Alt 15. Aug 2006, 23:09
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Bitmap in Paintbox anzeigen

  Alt 15. Aug 2006, 23:18
Zitat von ferby:
Wenn ich mit TBitmap.LoadFromFile ein Bitmap lade,
dann wird das Bitmap ins linke obere Eck geladen.
In welche linke obere Ecke? Die vom Speicher? Mit der Methode LoadFromFile wird das Bitmap nur in den Speicher geladen, mehr nicht. Entscheident ist, wie du es auf den Canvas der PaintBox kopierst. Und wenn ich mir mal die Hilfe zu der Methode Delphi-Referenz durchsuchenDraw angucke, dann lese ich:
Zitat:
Renders the graphic specified by the Graphic parameter on the canvas at the location given by the coordinates (X, Y).

procedure Draw(X, Y: Integer; Graphic: TGraphic);

Description

Call Draw to draw a graphic on the canvas. Draw calls the Draw method of the graphic. The image is rendered into a rectangle determined by the size of the graphic, with the upper left corner at the point (X, Y).

Graphics can be bitmaps, icons, or metafiles. If the graphic is a TBitmap object, the bitmap is rendered using the value of CopyMode.
Den entscheidenden Teil habe ich mal hervorgehoben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ferby

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

Re: Bitmap in Paintbox anzeigen

  Alt 15. Aug 2006, 23:28
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Bitmap in Paintbox anzeigen

  Alt 15. Aug 2006, 23:36
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:
procedure TForm1.FormPaint(Sender: TObject);
begin
  BitBlt(PBox.Canvas.Handle, 0, 0, BM.Width, BM.Height, BM.Canvas.Handle, 0, 0, SrcCopy);
end;
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.

Die passende Hilfe wäre hier übrigens das PSDK / MSDN, da es sich um eine Windows API-Funktion handelt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ferby

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

Re: Bitmap in Paintbox anzeigen

  Alt 15. Aug 2006, 23:43
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.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Bitmap in Paintbox anzeigen

  Alt 15. Aug 2006, 23:44
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.
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 09:33 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