AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Fenster-Handle der eigenen Anwendung?
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster-Handle der eigenen Anwendung?

Ein Thema von MartinKumeran · begonnen am 19. Jul 2005 · letzter Beitrag vom 21. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
MartinKumeran

Registriert seit: 19. Jul 2005
10 Beiträge
 
#1

Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 19:02
Hallo,

ich experimentiere im Moment etwas mit nonvcl, benötige aber für eine Funktion das Fenster-Handle meiner Anwendung. Gibt es sowas überhaupt bei einer nicht-visuellen Anwendung? Normalerweise kann man ja einfach die Variable "Handle" übergeben (definiert in Controls.pas) und hat automatisch den richtigen Wert, aber wie funktioniert das wenn man nur die Windows und Message-Units eingebunden hat?

Viele Grüße,

Martin
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 19:07
CreateWindowEx liefert dir doch dein fensterhandle zurück, merk es dir einfach.

BTW. das Handle, was du meinst, ist eine Eigenschaft von TForm.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
MartinKumeran

Registriert seit: 19. Jul 2005
10 Beiträge
 
#3

Re: Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 20:13
Ja, nur ist das Problem dass ich eigentlich gar keine Form erzeugen will
Ich habe das Programm in VCl-Form bekommen und will probieren es probeweise in nonvcl umzuwandeln. Das VCL-Proggi arbeitet so dass man das Fenster-handle (hWnd) an eine externe Funktion übergibt (dll) die damit einen "Hook" erstellt und Messages an das Programm zurücksendet.
Das mit dem empfangen und verarbeiten der Messages übernimmt bei nonvcl ja die Nachrichtenfunktion, allerdings muss der Funktion ja irgendwie die "Adresse" des Programmes bekommes, eben der hWnd-Parameter.
Hoffentlich war das jetzt irgendwie verständlich
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 20:31
Eine Anwendung kann mehrere Fenster haben - jetzt überdenke nochmal deine Frage.

Wenn man eine VCL-Anwendung umwandelt, wird man um ein Fenster kaum herumkommen. Außerdem brauchst du irgendwie eine Message-Loop ... ob du die Nachrichten dann an ein Fenster weiterleitest ist ja deine Sache. Beispiele findest du sicher in Luckies Win32-Tuts.

Das Fensterhandle hat mit der Adresse des Programms (Instanzenhandle) nichts zu tun!
  Mit Zitat antworten Zitat
MartinKumeran

Registriert seit: 19. Jul 2005
10 Beiträge
 
#5

Re: Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 23:04
Hallo Olli,

mhm ok. Ich nehme mal an bei einem nonvcl-Proggi ohne erzeugte Formulare gibt es kein Fenster, oder?

Dementsprechend müsste ich den Instanzenhandle an die Funktion übergeben, allerdings erwartet sie als Parameter den Datentyp hWnd.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 23:06
wie ist es denn in dem VCL-Programm? welches Handle wird dort übergeben? Dort gibt es doch bestimmt auch ein Fenster
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: Fenster-Handle der eigenen Anwendung?

  Alt 19. Jul 2005, 23:16
Zitat von SirThornberry:
wie ist es denn in dem VCL-Programm? welches Handle wird dort übergeben? Dort gibt es doch bestimmt auch ein Fenster
Ich vermute mal ein Fensterhandle, da Nachrichten üblicherweise an Fenster geschickt werden.

Mit PostThreadMessage kann man es natürlich auch direkt an einen Thread schicken. Dann müßte allerdings der Code angepaßt werden. Alternativ kann man ein Dummy-Fenster versteckt erstellen. Ist ja kein Hit.

@Beide: In nonVCL gibt es garkeine Forms ... zumindest heißen sie dort nicht so, weil es eben keine VCL gibt
  Mit Zitat antworten Zitat
MartinKumeran

Registriert seit: 19. Jul 2005
10 Beiträge
 
#8

Re: Fenster-Handle der eigenen Anwendung?

  Alt 20. Jul 2005, 01:18
@SirThornberry

Da wird einfach "Handle" übergeben. Wie Luckie geschrieben hat ist das ja ein property von TForm, gibt es bei nonvcl also leider nicht.

@Olli

Mhm, Thread-Sachen habe ich noch nie gemacht, wäre es sehr kompliziert das ganze umzubauen?

Ansonsten wäre die Lösung mit dem Dummyfenster vielleicht noch das einfachste, werde mir morgen mal ansehen was da an Minimum-Quelltext notwendig ist für etwas was man eigentlich gar nicht braucht
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Fenster-Handle der eigenen Anwendung?

  Alt 20. Jul 2005, 01:21
Zitat:
Wie Luckie geschrieben hat ist das ja ein property von TForm, gibt es bei nonvcl also leider nicht.
Luckie hat auch geschrieben:
Zitat:
CreateWindowEx liefert dir doch dein fensterhandle zurück, merk es dir einfach.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#10

Re: Fenster-Handle der eigenen Anwendung?

  Alt 20. Jul 2005, 09:08
bei vcl kram hat wohl Application.Handle das _haupt_ fenster </senf>
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:56 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