AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Canvas im Vordergrund

Ein Thema von n1ghtSurfer · begonnen am 6. Sep 2008 · letzter Beitrag vom 7. Sep 2008
Antwort Antwort
n1ghtSurfer

Registriert seit: 2. Mai 2008
14 Beiträge
 
Delphi 7 Enterprise
 
#1

Canvas im Vordergrund

  Alt 6. Sep 2008, 22:41
Hey hab wida ne seltsame Frage ^^ ich würde gerne mein Programm minimieren ein anderes starten und mit Canvas die ganze zeit was auf das 2. Programm schreiben, es soll auch da bleiben und nicht weg gehen wenn man drüber geht bzw. ne Schleife die es einfach immer wieder neu zeichnet
ich hoffe man kann mich verstehen und jmd. kann mir helfen
Thx im Vorraus
MfG
N1GhtSurfer
Was soll ich denn mit einer Signatur?
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#2

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 01:26
Zitat von n1ghtSurfer:
[..] es soll auch da bleiben und nicht weg gehen wenn man drüber geht bzw. ne Schleife die es einfach immer wieder neu zeichnet [..]
Also wenn ich über eine Form gehe, dann geht die nicht weg. Probier mal im Objektinspektor deines zweiten Programms FormStyle auf fsStayOnTop zu setzen; u.U. ist das schon was du suchst. Genau hab' ich's aber nicht verstanden...

Gruß
--
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#3

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 02:09
Zitat von n1ghtSurfer:
Hey hab wida ne seltsame Frage ^^ ich würde gerne mein Programm minimieren ein anderes starten und mit Canvas die ganze zeit was auf das 2. Programm schreiben, es soll auch da bleiben und nicht weg gehen wenn man drüber geht bzw. ne Schleife die es einfach immer wieder neu zeichnet
ich hoffe man kann mich verstehen und jmd. kann mir helfen
Thx im Vorraus
MfG
N1GhtSurfer
Besorg dir das Handle, des Fensters auf das du zeichnen willst, hol dir den device context mittels
Delphi-Quellcode:
HDC GetDC(
  HWND hWnd // handle to window
);
oder der Variante mit Ex dahinter und benutz dann die üblichen Zeichenmethoden.
Wenn das andere Fenster noch minimiert wird oder sich die Größe verändert, musst du dir eventuell was ausdenken, das zu überprüfen und neu zu zeichen (irgend ein Message-Hook?).
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 02:42
Zitat von Cyf:
);[/delphi] oder der Variante mit Ex dahinter und benutz dann die üblichen Zeichenmethoden.
Wenn das andere Fenster noch minimiert wird oder sich die Größe verändert, musst du dir eventuell was ausdenken, das zu überprüfen und neu zu zeichen (irgend ein Message-Hook?).
Nicht nur dann. Jedes mal wenn sich das andere fenster zeichnet, also eine W_PAINT Nachricht bekommt, muss er neu zeichnen. Er muss also die WM_PAINT Nachricht, die an das fremde Fenster geht abfangen. Dazu würde ich eine DLL in den fremden Prozess injizieren und die Fensterprozedur des fremden Fensters umbiegen und dort dann auf die Zeichennachrichten entsprechend reagieren. Ist allerdings nicht ganz trivial und erfordert ein entsprechendes Wissen und Können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
melodie

Registriert seit: 6. Mai 2007
32 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 12:01
Wie wäre es wenn man ein Form nimmt, FormStyle = fsStayOnTop, den Hintergrund weiß macht, TransparentColor = True, TransparentColorValue = White.
Dann kann man mit Canvas auf die Form zeichnen.
  Mit Zitat antworten Zitat
n1ghtSurfer

Registriert seit: 2. Mai 2008
14 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 15:24
Ne geht leider nit weil ich ja das programm dahinterg steuern muss ;P
Was soll ich denn mit einer Signatur?
  Mit Zitat antworten Zitat
Cyf

Registriert seit: 30. Mai 2008
407 Beiträge
 
Lazarus
 
#7

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 18:32
Zitat von Luckie:
Dazu würde ich eine DLL in den fremden Prozess injizieren und die Fensterprozedur des fremden Fensters umbiegen und dort dann auf die Zeichennachrichten entsprechend reagieren. Ist allerdings nicht ganz trivial und erfordert ein entsprechendes Wissen und Können.
Tuts nicht auch ein globaler Hook mit entsprechender Beschränkung nur bei dem einem Fenster zu reagieren?
  Mit Zitat antworten Zitat
melodie

Registriert seit: 6. Mai 2007
32 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 19:27
Zitat von n1ghtSurfer:
Ne geht leider nit weil ich ja das programm dahinterg steuern muss ;P
Kann man nicht bei transparenten Forms da durch klicken?
  Mit Zitat antworten Zitat
n1ghtSurfer

Registriert seit: 2. Mai 2008
14 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Canvas im Vordergrund

  Alt 7. Sep 2008, 20:23
Habs grade ausprobiert ja man kann durchklicken prob. is das wenn die Form Transparent ist ist auch Canvas Transparent
=( muss ich wohl doch mal eine der Komplizierteren Methoden versuchen

EDIT//
Ups ich war wohl nur zu dumm ausserhalb der Form zuzeichnen also habs jetzt so gemacht das ich ein Timer Eingebaut habe ihn auf 1ms gestellt habe die Form Transparent gemacht habe und diesen Code hier in abgeänderter Form verwendet habe =)
http://www.delphipraxis.net/internal...hlight=desktop
Was soll ich denn mit einer Signatur?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.
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