![]() |
Canvas.Handle via GetDC(Panel1.Handle)
Glaube nicht das ich blöd bin
PaintBox1.canvas.Handle = Result: Handle Device Contex(PaintBox1) GetDC(Panel1.Handle) = Result: Handle Device Contex(Panel1) jetzt sag mir mal einer warum das eine funktioniert und das andere nicht. gruss Emil |
Re: Canvas.Handle via GetDC(Panel1.Handle)
Bitte, was hast du da geschrieben?
|
Re: Canvas.Handle via GetDC(Panel1.Handle)
Zitat:
PaintBox1.canvas.Handle = HDC oder ? GetDC ermittelt das Handle eines Anzeige-Gerätekontextes [DC] für den Clientbereich eines Fensters. dürfte in beiden fällen das gleiche sein oder ? Warum geht das eine und das andere nicht ? Auf das ermittelte DC über GetDC kann ich zeichnen auf PaintBox1 nicht ? gruss Emil |
Re: Canvas.Handle via GetDC(Panel1.Handle)
Ich kann auf beidem zeichnen:
Delphi-Quellcode:
dc:=getdc(Panel1.Handle);
rectangle(dc,10,10,40,40); releasedc(Panel1.Handle,dc); dc:=Paintbox1.Canvas.Handle; rectangle(dc,10,10,40,40); |
Re: Canvas.Handle via GetDC(Panel1.Handle)
Zitat:
Beides das gleiche.. wobei du dir unten das dc als Variable hättest sparen können denn Paintbox1.Canvas.Handle ist DC
Delphi-Quellcode:
Aber trotzdem geht nur die eine variante bei mir.
rectangle(Paintbox1.Canvas.Handle,10,10,40,40);
Mit GetDc über das Window Handle von Panel1 gruss Emil |
Re: Canvas.Handle via GetDC(Panel1.Handle)
Bei mir geht das aber auch. Vielleicht liegt der Fehler ganz woanders?
[edit] Glückwunsch zum 1000. Beitrag :zwinker: [/edit] |
Re: Canvas.Handle via GetDC(Panel1.Handle)
du hast vielleicht an irgendwelchen Farben gedreht, sodass dein Objekt unsichtbar wird. Oder es wird durch irgendetwas überzeichnet. Vielleicht ein RePaint?
|
Re: Canvas.Handle via GetDC(Panel1.Handle)
Zitat:
Achte auf sowas gar nicht. hiihihih Ich übergebe das DC an meine DLL (BAssVis) Über GetDC funktioniert es aber nicht über das direkte DC 'canvas.handle' was auch immer Image oder paintBox
Delphi-Quellcode:
SON_PaintHandle : DWORD; // Als DWORD da GetDC Cardinal zurückgibt
Delphi-Quellcode:
funktioniert ohne problem
BASSVISKIND_SONIQUE:
begin _HDC := GetDc(Panel1.handle); If optPanel.checked = True Then begin mExec.AMP_SON_Pluginfile := PChar(pathlist.Strings[IndexNum]); mExec.SON_ConfigFile := PChar(PluginDir + '\vis.ini'); mExec.SON_Flags := 0; mExec.SON_PaintHandle := _HDC; mExec.Left := 0; mExec.Top := 0; mExec.Width := Panel1.Width; mExec.Height := Panel1.Height; BASSVIS_ExecutePlugin(@mExec, mVisParam); ini := TIniFile.Create(ChangeFileExt(application.exename, '.ini')); sliSlowfade.Position := ini.ReadInteger('PluginType', 'Slowfade', 2); ini.Free; end;
Delphi-Quellcode:
geht nicht.. hmmmmm
BASSVISKIND_SONIQUE:
begin If optPanel.checked = True Then begin mExec.AMP_SON_Pluginfile := PChar(pathlist.Strings[IndexNum]); mExec.SON_ConfigFile := PChar(PluginDir + '\vis.ini'); mExec.SON_Flags := 0; mExec.SON_PaintHandle := PaintBox1.Canvas.Handle; mExec.Left := 0; mExec.Top := 0; mExec.Width := PaintBox1.Width; mExec.Height := PaintBox1.Height; BASSVIS_ExecutePlugin(@mExec, mVisParam); ini := TIniFile.Create(ChangeFileExt(application.exename, '.ini')); sliSlowfade.Position := ini.ReadInteger('PluginType', 'Slowfade', 2); ini.Free; end; gruss Emil |
Re: Canvas.Handle via GetDC(Panel1.Handle)
Zitat:
habe jetzt mal nen test gemacht.
Delphi-Quellcode:
funktioniert nicht..
dc : HDC
dc := paintbox1.Canvas.Handle; BASS_SONIQUEVIS_Render(vischan, RecChan, dc);
Delphi-Quellcode:
funktioniert ...
BASS_SONIQUEVIS_Render(vischan, RecChan, frmMain.paintbox1.Canvas.Handle);
verdammt nochmal irgendwo muss doch eine unterschied sein das beide (gleiche) aufrufe unterschiedliche ergebnisse haben. Macht auch keinen unterschied ob isch dc als DWORD oder Cardinal deklariere geht alles nicht. gruss Emil |
Re: Canvas.Handle via GetDC(Panel1.Handle)
Hast du schon mal die beiden Werte als Zahl angeschaut? Eventuell kommt ja doch im nicht funktionierenden Fall etwas unterschiedliches heraus, und am Ende ist es gar nicht sicher, dass beides das selbe ist.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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