![]() |
Handel-Zeichnen
Hallo
warum geht dieser Code nicht?
Code:
es sollte eingetlich in der linken oberen ecke ein Rechteck erscheinen. Das ganze ist als Beispiel gedacht, deshalb auch die Aktion mit dem BitBlt!
procedure TForm1.Button1Click(Sender: TObject);
var hd:HDC; Brush: HBRUSH; Pen: HPEN; hd2:HDC; begin Brush := CreateSolidBrush(RGB(255,0,0)); SelectObject(hd, Brush); Pen := CreatePen(PS_SOLID, 3, RGB(75,0,255)); SelectObject(hd, Pen); Rectangle(hd, 10, 10, 375, 100); hd2 := getdc(0); BitBlt(hd2,20,20,50,50,hd,0,0,SRCCOPY ); end; Danke TO |
Moin The Omega,
die Variable hd wird nicht initialisiert, und ist somit kein DC Handle, also geht das SelectObject wohl auch daneben. |
Ja, genau da liegt mein Problem: ICh will das Objekt nur temporär haben, also nicht sichbar. Dann hilft mir "getdc" auch nicht weiter!
|
Hi theomega,
was du dafür brauchst, sind CreateDC() und DeleteDC(). MfG, d3g |
was ist den dann daran falsch?
Code:
warum entsteht aber ein zweiter Kreis in der rechten oberen Ecke meines Bildschirms? Eignetlich müßte ja bloß einer auf meinem Form sein!
procedure TForm1.Button1Click(Sender: TObject);
var hd:HDC; Brush: HBRUSH; Pen: HPEN; hd2:HDC; begin hd := createdc('Display',nil,nil,nil); Brush := CreateSolidBrush(RGB(255,0,0)); SelectObject(hd, Brush); Pen := CreatePen(PS_SOLID, 3, RGB(75,0,255)); SelectObject(hd, Pen); ellipse(hd,0,0,50,50); hd2 := getdc(form1.Handle); BitBlt(hd2,200,200,50,50,hd,0,0,SRCCOPY ); DeleteDC(hd); end; |
Nö. Mit 'Display' holst du dir das Handle vom Desktop. Soll der Kreis nur auf deiner Form landen, mußt du dir mit GetDC und dem Fenster-Handle den DC holen und mit ReleaseDC wieder freigeben.
|
Ich brauche aber eine temporäres Object, also eins, das nicht angeziegt wird!
|
Re: Handel-Zeichnen
CreateCompatibleDC wäre Temporär.....
|
Re: Handel-Zeichnen
Außerdem solltest du die Geister, die du rufst, auch wieder gehen lassen:
CreateSolidBrush -> DeleteObject CreatePen -> DeleteObject GetDC -> ReleaseDC |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 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