Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Desktop-Overlay mit DirectX (https://www.delphipraxis.net/83125-desktop-overlay-mit-directx.html)

turboPASCAL 18. Feb 2007 14:22

Re: Desktop-Overlay mit DirectX
 
So, habe meine Umsetzung des C++ Beispiels zu 75% fertig. Nun die Frage, wo verflixt bekomm ich das
IDirectDraw - Dings her ? Direct3D9 und D3DX9 hab ich eingebunden....


Ah, hab was gefunden. ;)

turboPASCAL 18. Feb 2007 16:02

Re: Desktop-Overlay mit DirectX
 
Also ich bekomme die Umsetzung von CreateOverlay(); und CheckOverlaySupport(); nicht in den Griff. Da reichten meine C-Kentnisste nicht aus. :(

Code:
if( capsDrv.dwCaps & DDCAPS_ALIGNBOUNDARYDEST && 0 % capsDrv.dwAlignBoundaryDest != 0 )
:gruebel: Und andere Sachen...

Ich würde mich über Hilfe freuen. (Ich möcht ja nur 'n Bitmap als Overlay setzen...)

JasonDX 18. Feb 2007 16:22

Re: Desktop-Overlay mit DirectX
 
Zitat:

Zitat von turboPASCAL
Also ich bekomme die Umsetzung von CreateOverlay(); und CheckOverlaySupport(); nicht in den Griff. Da reichten meine C-Kentnisste nicht aus. :(

Code:
if( capsDrv.dwCaps & DDCAPS_ALIGNBOUNDARYDEST && 0 % capsDrv.dwAlignBoundaryDest != 0 )
:gruebel: Und andere Sachen...

Ich würde mich über Hilfe freuen. (Ich möcht ja nur 'n Bitmap als Overlay setzen...)

:gruebel: Dieses Codestueck scheint mir etwas sinnbefreit, in meinen augen gibt das immer false, da && und & eine hoehere Prioritaet haben als % :gruebel:
D.h. theoretisch muessts auch klappen, indem du die Abfrage weglaesst und evt. nur den else-Zweig hinschreibst.

greetz
Mike

turboPASCAL 18. Feb 2007 16:53

Re: Desktop-Overlay mit DirectX
 
:gruebel:
Delphi-Quellcode:
if (capsDrv.dwCaps = DDCAPS_ALIGNBOUNDARYDEST) and
  (capsDrv.dwAlignBoundaryDest <> 0 ) then ...
Oder wie ?

Neutral General 18. Feb 2007 16:58

Re: Desktop-Overlay mit DirectX
 
Kleine Frage:

Delphi-Quellcode:
0 % capsDrv.dwAlignBoundaryDest
bedeutet das nicht

Delphi-Quellcode:
0 mod capsDrv.dwAlignBoundaryDest
? o.O

Weil dann wär diese zweite Bedingung Schwachsinn...

JasonDX 18. Feb 2007 17:04

Re: Desktop-Overlay mit DirectX
 
Zitat:

Zitat von turboPASCAL
:gruebel:
Delphi-Quellcode:
if (capsDrv.dwCaps = DDCAPS_ALIGNBOUNDARYDEST) and
  (capsDrv.dwAlignBoundaryDest <> 0 ) then ...
Oder wie ?

Nein, die if komplett weglassen. IMHO korrekt weil:
Code:
capsDrv.dwCaps & DDCAPS_ALIGNBOUNDARYDEST && 0 % capsDrv.dwAlignBoundaryDest != 0
Mit Operatorprioritaeten von:
&&: 11
&: 8
!=: 7
%: 3
sieht mit klammern geschrieben ca. so aus:
Code:
if ((capsDrv.dwCaps & (DDCAPS_ALIGNBOUNDARYDEST && 0)) % (capsDrv.dwAlignBoundaryDest != 0))
DDCAPS_ALIGNBOUNDARYDEST && 0 = 0 -> capsDrv.dwCaps & 0 = 0 -> 0 % (capsDrv.dwAlignBoundaryDest != 0) = 0 (weil 0 mod x = 0) = false -> abfrage gibt immer in den else-zweig.

greetz
Mike

turboPASCAL 18. Feb 2007 17:39

Re: Desktop-Overlay mit DirectX
 
Ich weis warum ich C (nicht) mag. ;)

bubbik 7. Jun 2007 20:14

Re: Desktop-Overlay mit DirectX
 
Desktop overlay with sources

http://mhaggag.wordpress.com/
http://www.gamedev.net/community/for...opic_id=359319

Delphi-Fan-Friedrichsdorf 1. Jul 2007 13:27

Re: Desktop-Overlay mit DirectX
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo interessantes Thema,
ich hab die Unit von JamesTKirk ausprobiert und bei
mir WURDEN die Linken und die Oberen Ränder von allen Fenstern, Tablaschen und den Fensterleistenbuttons(Beenden Minimieren, Maximieren,...) bunt, egal welche Farbe ich einstellte.
Ist das bei euch auch mal passiert?

(Ich habe WinXP, benutze aber das Klassische Windows-Design, weil meine Sicherheitsoftware den Designmanager killt.)

Jetzt
hab ich auch die obere Hälfte des Bildschirms Farbig und die Untere ist irgendwie auch Farbig, aber mehr Streifen als Pixel.

Ist eigentlich noch keiner auf die Idee gekommen die Probleme einfach mal mit einem etwas anderen "Screenshot" zu dokumentieren?

Ich sage nur Kamera.



Edit:
@ JamesTKirk:
Könntest du nicht mal den Aktuellen, also mit allen Änderungen, Quellcode posten, ich finde es etwas hinderlich wenn man sich den Code erst zusammenbauen muss bevor man ihn verwenden kann.

Wer die header von delphidev.de verwendet mus vor alle typen ein T schreiben. z.b.:
Delphi-Quellcode:
...
function TDDOverlay.CheckOverlaySupport: Integer;
var
  capsDrv:DDCAPS_DX7;
...

// mus mit den headern von delphidev.de so aussehen:
...
function TDDOverlay.CheckOverlaySupport: Integer;
var      v
  capsDrv:TDDCAPS_DX7;
...      ^

"Screenshots":

JamesTKirk 8. Jul 2007 19:07

Re: Desktop-Overlay mit DirectX
 
Hi!

Das Problem an sich kommt mir äußerst bekannt vor... ich glaube darum ging es in den früheren Beiträgen hier auch schon :mrgreen:

Zu dem Quellcode: ich werd mal schauen, was sich machen lässt, da des Projekt momentan etwas auf Sparflamme läuft und ich mich eher auf anderes konzentriere...

Und das mit dem "T" vor den Typen: da TDDCaps_DX7 eigentlich sinngemäß definiert ist als

Delphi-Quellcode:
type
  DDCAPS_DX7 = blabla;

  TDDCaps_DX7 = DDCAPS_DX7;
is das egal, aber wenn man stilgerecht programmieren will, hast du natürlich Recht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 Uhr.
Seite 4 von 5   « Erste     234 5      

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 by Thomas Breitkreuz