Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Canvas in TBitmap ??? (https://www.delphipraxis.net/36782-canvas-tbitmap.html)

San 4. Jan 2005 22:37

Re: Canvas in TBitmap ???
 
danke für deine schnelle antwort.

Zitat:

Zitat von Magier
ich habe bisher nur sehr wenig mit tcanvas gearbeitet, aber muss es nicht anstatt
Delphi-Quellcode:
PaintBox1.Canvas.Draw(0,0,Bitmap); //Bitmap wird in Paintbox gezeichnet
so heißen
Delphi-Quellcode:
Bitmap.Canvas.Draw(0,0,PaintBox1); //Bitmap wird in Paintbox gezeichnet

wenn man PaintBox1 anstatt Bitmap verwendet, kommt di Fehlermeldung
Code:
[Fehler] soundU.pas(142): Inkompatible Typen: 'TGraphic' und 'TPaintBox'
habe den savedialog auch per savedialog1.execute aufgerufen, aber hat trotzdem nicht geklappt.
edit: habe das gerade nochmal den code von hansklok verwendet und daort dann den savedialog eingesetzt, dann hat es doch geklappt. :bounce1:
allerdings ist das abgespeicherte bitmap immer noch weiß ...

liebe grüße
san

Magier 4. Jan 2005 22:45

Re: Canvas in TBitmap ???
 
poste hier bitte noch mal deinen jetztigen quellcode.

San 4. Jan 2005 22:46

Re: Canvas in TBitmap ???
 
Code:
procedure TForm1.Speichern(Sender: TObject);
var
Bitmap: TBitmap;
begin

Bitmap:= TBitmap.Create; //erstellt eine Bitmap
Bitmap.PixelFormat:= pf32bit; //Bitmap erhält eine Bittiefe von 32 Bit (hohe Qualität)
Bitmap.Height:= PaintBox1.Height; //Höhe der Bitmap ist gleich der Höhe der Paintbox
Bitmap.Width:= Paintbox1.Width; //Breite der Bitmap ist gleich der Breite der Paintbox

PaintBox1.Canvas.Draw(0,0,Bitmap); //Bitmap wird in Paintbox gezeichnet

if savedialog1.execute then
Bitmap.SaveToFile(SaveDialog1.Filename); //Bitmap wird als Bitmap abgespeichert
end;

Birzenbae 4. Jan 2005 23:03

Re: Canvas in TBitmap ???
 
das gespeichert bitmap is daher weis, weil du damit nichts machst du gibst nur qualität, höhe und breite an und dann lässt du es ja auch schon speichern es kann also nur weis sein.

Wuaegner 4. Jan 2005 23:04

Re: Canvas in TBitmap ???
 
Zitat:

allerdings ist das abgespeicherte bitmap immer noch weiß ...
Zitat:

ich habe bisher nur sehr wenig mit tcanvas gearbeitet, aber muss es nicht anstatt
Quellcode: markieren
PaintBox1.Canvas.Draw(0,0,Bitmap); //Bitmap wird in Paintbox gezeichnet


so heißen
Quellcode: markieren
Bitmap.Canvas.Draw(0,0,PaintBox1); //Bitmap wird in Paintbox gezeichnet



wenn ich mich irre verbessert mich bitte.
Er hat doch schon geschrieben warum es weiß bleibt.

San 4. Jan 2005 23:12

Re: Canvas in TBitmap ???
 
aber wenn ich eben anstatt bitmap (ist eigentlich klar, dass es dann weiß bleibt :wall: ) paintbox1 einsetze bekomme ich die fehlermeldug mit den inkompatiblen typen.

wie kann ich das denn umgehen? das verstehe ich eben nicht, eben auch nicht, warum das so nicht geht. der inhalt ist doch sowohl im bitmapm als auch in der paintbox graphisch und das programm wird doch nur aufgefordert, eben diesen graphischen inhalt zu übernehmen. wieso dann inkompatible typen?

Magier 4. Jan 2005 23:18

Re: Canvas in TBitmap ???
 
warum nimmst du denn nicht einfach ne image komponente anstatt der paintbox?

San 4. Jan 2005 23:23

Re: Canvas in TBitmap ???
 
brauche ne paintbox in meinem programm, da sie schnell immer wieder neu gezeichnet werden muss...
und das wäre mit nem image ja nicht möglich, oder?

Birzenbae 4. Jan 2005 23:40

Re: Canvas in TBitmap ???
 
du sollst ja auch im private teil sollste ne variable des typs TBitmap deklarieren und auf dem zeichnen und das kannste dann auch speichern und zum speichern nimmste einfach nur die IF-anweisung wie du sie hast nur eben für das Bitmap was du im private teil deklariert hast.

San 4. Jan 2005 23:49

Re: Canvas in TBitmap ???
 
versteh nich ganz, was du meinst.

wenn ichdie bitmap variable im private teil,anstatt in der prozedure selber deklariere und meine procedure sonst so lasse (kann ich das?), dann bekomme ich immer noch den fehler von inkompatiblen typen. das speichern ist ja auch im moment nich mehr mein problem, sonder das TBitmap mit Inhalt zu füllen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Seite 2 von 3     12 3      

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