AGB  ·  Datenschutz  ·  Impressum  







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

images in Paintbox mit BitBlt-Prozedure

Ein Thema von ontorius · begonnen am 18. Mär 2006 · letzter Beitrag vom 18. Mär 2006
Antwort Antwort
ontorius

Registriert seit: 11. Jan 2006
17 Beiträge
 
#1

images in Paintbox mit BitBlt-Prozedure

  Alt 18. Mär 2006, 12:18
Um Bilder aus einer Datei in einer Paintbox anzuzeigen habe ich folgende Zeilen geschrieben:

Delphi-Quellcode:
var
  Form1: TForm1;
  b:integer;
  bg:TBitmap;
  const x=10;
        y=10;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender:TObject);
begin
  bg:=TBitmap.Create;
  bg.PixelFormat := pf24Bit;
end;

procedure TForm1.START1Click(Sender: TObject);
begin
  timer2.Enabled:=false;
  form1.DoubleBuffered:=true;

  bg.loadfromfile('.\pics\trasch24b.bmp');
  Bitblt(paintbox1.Canvas.Handle,0,555,1036,50,bg,0,0,srccopy);
  paintbox1.Canvas.Draw(0,555,bg);

  image2.picture.loadfromfile('.\pics\stehen_1.bmp');
  image5.Picture.LoadFromFile('.\pics\door.bmp');
end;
Beim compilieren wird mir zur BitBlt-Prozedur der Fehler "inkompatibler Typ: 'HDC' und 'TBitmap'" angezeigt. Ich glaube, dass der Fehler in der Variablen "bg" liegt, die nicht mit BitBlt kompatibel ist. Wie kann man das lösen und worauf muss man bei diesem Befehl (bitBlt) achten?
Ich will ein Sloganizer Banner haben. Punkt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: images in Paintbox mit BitBlt-Prozedure

  Alt 18. Mär 2006, 12:22
BitBlt will ein Handle zu einem DC haben - somit musst du ihm dies auch übergeben. Die Klassen TBitmap und deren Instanzen der VCL sind der WinAPI völligst unbekannt. Diese kapseln aber die WinAPI Funktionen in Objekten und haben somit auch ein solches Handle. Du musst anstatt bg daher bg.Canvas.Handle angeben in dem BitBlt.

Und mit deinem Code wirst du nicht glücklich sein, da man durch einfaches herüberziehen eines Fensters die PaintBox wieder löschen kann. Du musst den Inhalt der PaintBox in deren OnPaint Ereignis zeichnen und nicht woanders.
  Mit Zitat antworten Zitat
ontorius

Registriert seit: 11. Jan 2006
17 Beiträge
 
#3

Re: images in Paintbox mit BitBlt-Prozedure

  Alt 18. Mär 2006, 14:22
ja, jetzt hat er kein problem mehr mit dem "bg". aber das programm bricht jetz immer an der stelle ab, wo dem "bg" eine bilddatei zugewiesen wird.
Ich will ein Sloganizer Banner haben. Punkt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: images in Paintbox mit BitBlt-Prozedure

  Alt 18. Mär 2006, 15:02
Zitat von ontorius:
ja, jetzt hat er kein problem mehr mit dem "bg". aber das programm bricht jetz immer an der stelle ab, wo dem "bg" eine bilddatei zugewiesen wird.
Sorry, aber meine Glaskugel ist zZ nicht geeicht, daher müsstest du mir am besten mal sagen mit welcher Fehlermeldung/Hinweis er abbricht.
  Mit Zitat antworten Zitat
ontorius

Registriert seit: 11. Jan 2006
17 Beiträge
 
#5

Re: images in Paintbox mit BitBlt-Prozedure

  Alt 18. Mär 2006, 22:17
Zitat:
Sorry, aber meine Glaskugel ist zZ nicht geeicht, daher müsstest du mir am besten mal sagen mit welcher Fehlermeldung/Hinweis er abbricht.
Na bei  bg.loadfromfile('.\pics\trasch24b.bmp'); aber ich hab das mit der paintbox eh aufgegeben und probier es weiter mit mehreren images.
Ich will ein Sloganizer Banner haben. Punkt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: images in Paintbox mit BitBlt-Prozedure

  Alt 18. Mär 2006, 23:01
Es ist ja nicht so, dass ich nicht helfen will, aber wenn ich nach "welcher Fehlermeldung" frage und statt dessen das wo beschrieben bekomme, dann weiss ich auch nicht.

Grundsätzlich würde ich mal behaupten, er findet die Datei nicht. Du gibst einen relativen Pfad, der immer vom aktuellen ausgeht. Dieser aktuelle Pfad wird aber durch x-beliebige Dinge verändert. Vom Open/SaveDialog über jedes andere Futzelprogramm. Daher solltest du keien relativen Pfade nutzen sondern absolute. Und um die Lage der EXE Datei im System herauszufinden, nutze ExtractFilePath(Application.ExeName); .

Weil dies grundlegende Problem solltest du auch bei deinen Images bekommen.
  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 23:02 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