Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi HDC eines TImage ermitteln (https://www.delphipraxis.net/78599-hdc-eines-timage-ermitteln.html)

EWeiss 7. Okt 2006 16:59


HDC eines TImage ermitteln
 
Leider gibt es ja keine PicBox in Delphi.
Benötige aber das hdc vom TImage ..

Ist die abfrage korrekt ?
Wird mir damit das richtige hdc der Image zugewiesen ?

Sorry wenn die frage etwas blöd klingt !

Delphi-Quellcode:
Var
PicMapDC : HDC;
Begin
PicMapDC := GetDC(picMap.Picture.Bitmap.Handle);
End;
oder bekomme ich dieses nur über TBitmap ?
wäre aber ein riesen umweg.

gruß

turboPASCAL 7. Okt 2006 17:01

Re: weiss es jemand ? TImage
 
Ja. Also so ists wohl besser:

Delphi-Quellcode:
PicMapDC := picMap.Picture.Bitmap.Handle;
// Edit:

...ne halt Stopp. Fehler meiner seit's. So erhältst du ja nur das HBitmap...

nim doch den DC vom

Delphi-Quellcode:
PicMapDC := picMap.Picture.Bitmap.Canvas.Handle;

SirThornberry 7. Okt 2006 17:03

Re: weiss es jemand ? TImage
 
Zitat:

Zitat von turboPASCAL
Ja. Also so ists wohl besser:

Delphi-Quellcode:
PicMapDC := picMap.Picture.Bitmap.Handle;

damit bekommst du aber nicht das hdc des Bitmaps sondern ein HBitmap welches nicht kompatibel mit hdc ist.

@EWeiss: Könntest du dem Beitrag bitte einen Aussagekräftigen Titel geben? "weiss es jemand?..." ist auf keinen Fall aussagegräftig (zumal weiss im sinne von wissen falsch geschrieben ist)

EWeiss 7. Okt 2006 17:03

Re: weiss es jemand ? TImage
 
Zitat:

Zitat von turboPASCAL
Ja. Also so ists wohl besser:

Delphi-Quellcode:
PicMapDC := picMap.Picture.Bitmap.Handle;

Hmmm das ist das handle der bitmap was mir da zurückgegeben wird oder ?
Ich benötige das hdc!

Edit:
Oder ist dies das Handle vom Device Contex?

gruß

SirThornberry 7. Okt 2006 17:06

Re: weiss es jemand ? TImage
 
TImage selbst hat kein eigenes HDC im herkömlichen Sinne eines Fensters da sich ein TImage nur auf das HDC seines Parents zeichnet.

DeviceContext = DC
Und das Handle ist wie oben schon geschrieben ein HBitmap. Also das Handle des Bitmaps und nicht das Handle eines DC.

turboPASCAL 7. Okt 2006 17:07

Re: Aussagekräftiger Titel 'HDC eines TImage ermitteln'
 
Korrektur oben... *schwitz*

Sunlight7 7. Okt 2006 17:08

Re: Aussagekräftiger Titel 'HDC eines TImage ermitteln'
 
Geht doch so oder?

Delphi-Quellcode:
Var
PicMapDC : HDC;
Begin
PicMapDC := PicMap.Picture.Bitmap.Canvas.Handle);
End;
Aber Vorsicht!
Das DC ändert sich!

EWeiss 7. Okt 2006 17:08

Re: weiss es jemand ? TImage
 
Zitat:

Zitat von SirThornberry
TImage selbst hat kein eigenes HDC im herkömlichen Sinne eines Fensters da sich ein TImage nur auf das HDC seines Parents zeichnet.

DeviceContext = DC
Und das Handle ist wie oben schon geschrieben ein HBitmap. Also das Handle des Bitmaps und nicht das Handle eines DC.

Ja genauso wie in Vb
Deshalb ja meine frage ob es über GetDC .. Das Handle vom Device Contex picMap.Picture.Bitmap.Handle
in erfahrung zu bringen ist.

gruß

EWeiss 7. Okt 2006 17:14

Re: Aussagekräftiger Titel 'HDC eines TImage ermitteln'
 
Zitat:

Zitat von Sunlight7
Geht doch so oder?

Delphi-Quellcode:
Var
PicMapDC : HDC;
Begin
PicMapDC := PicMap.Picture.Bitmap.Canvas.Handle);
End;
Aber Vorsicht!
Das DC ändert sich!

Darf sich nicht ändern.
Muss erhalten bleiben solange bis aus diesen Bitmap alle benötigten
ausschnitte des Bildes in ein neues TImages geblittet wurden.


was ist nun der unterschied ?

picMap.Picture.Bitmap.Handle
PicMap.Picture.Bitmap.Canvas.Handle

gruß

Sunlight7 7. Okt 2006 17:18

Re: HDC eines TImage ermitteln
 
Habs gerade probiert, es funktioniert so.
Nur solltest Du vorher prüfen ob im Image ein Bitmap drinnen ist.

Das DC bleibt (meine ich) gültig bis man es neu abfragt, oder andere Nachrichten verarbeitet werden.


picMap.Picture.Bitmap.Handle <- Handle der Bitmap
PicMap.Picture.Bitmap.Canvas.Handle <- Handle des mit dem Bitmap verbundenen DC


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.
Seite 1 von 2  1 2      

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