AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi In einer Klasse Messages für alle Komponenten abfangen
Thema durchsuchen
Ansicht
Themen-Optionen

In einer Klasse Messages für alle Komponenten abfangen

Ein Thema von LH_Freak · begonnen am 5. Mai 2007 · letzter Beitrag vom 17. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#1

In einer Klasse Messages für alle Komponenten abfangen

  Alt 5. Mai 2007, 09:51
Hi hi, alle miteinander...

ich programmiere ja immer noch an der Skinkomponente für M.U.H Messenger (es macht Fortschritte , kaum zu glauben aber wahr)...jetzt steh ich vor dem Problem, dass ich ja alle Komponenten überzeichnet aufs Formular zeichnen muss...das klappt bis jetzt ganz gut...allerdings will ich nicht jeden Redraw, HoverEffekt etc. durch ein MouseOver ermitteln. Das ruckelt dann schon alles etc.
Deswegen hab ich mir gedacht, ich könnte doch irgendwie die Messages, die sich aufs zeichnen beziehen von all den Komponenten auf dem Formular abfangen und dann das ganze zeichnen...allerdings steh ich grad auf dem Schlauch ob das überhaupt geht und wie das geht...ich hoffe mir kann da jemand helfen

MfG
LH_Freak

Ach ja...es wäre nett wenn mir jemand helfen könnte wie ich das löse, falls das mit den Messages nicht funktioniert...Danke
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#2

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 6. Mai 2007, 10:46
also ich denke mal, dass ich dafür Hooks verwenden muss...hat dazu jemand ein gutes Tutorial? Ich hab bisher nur eins für C++ gefunden...allerdings wäre dass sowas was ich will...ich werde mal schaun ob ich damit zurecht komme...
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 6. Mai 2007, 10:57
Schau mal da!
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Manne
Manne

Registriert seit: 8. Okt 2003
Ort: Hirrlingen
82 Beiträge
 
Delphi 7 Personal
 
#4

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 6. Mai 2007, 10:58
Hi,

schau dir mal den Windows XP Theme Manager von Mike Lischke an. [ Link ]
Er zeichnet das den XP Style über jedes Control.

Manne
So 6 wie wir 5 gibt es keine 4 andere, denn wir 3 sind die 2 1sten
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 6. Mai 2007, 19:38
Eventuell langt aber auch schon die Benutzung eines einfachen "Application.OnMessage".
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#6

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 13. Mai 2007, 10:48
Ok, also erstmal danke...
im Moment versuche ich die WindowProcs der Komponenten zu überschreiben...das funktioniert auch gut...
allerdings weiß ich jetzt nicht wirklich welche Messages ich alle abfangen muss
Was löst z.B. bei einem Edit den Redraw aus wenn ich tippe? WM_TEXTCHANGE hat nicht funktioniert...hmhm...gibts da irgendwas wo man bezüglich dem nachschauen kann?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 13. Mai 2007, 10:58
Ich vermute mal, dass das eigentliche Neuzeichnen von WM_PAINT ausgelöst wird.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 13. Mai 2007, 11:28
du musst auf wm_paint und wm_erasebkrnd (oder wie man das schreibt) mindestens eingehen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#9

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 13. Mai 2007, 18:12
ya...das mach ich ja...aber ich muss ja auch drauf reagieren wenn das Eingabefeld den Fokus bekommt, wenn man text ändert...da bekommt das Edit kein WM_PAINT...so hab ichs zumindest festgestellt...
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#10

Re: In einer Klasse Messages für alle Komponenten abfangen

  Alt 14. Mai 2007, 11:26
Schau mal, was machen alle deine Komponenten ?

Sie bekommen unterschiedlichste Messages, speichern intern unterschiedlichste Staties und stellen dies auf dem Bildschirm dar.
Logische Konsequenz: möchtest du per Hooks, egal ob Windowsbotschaften oder die vielen Delphi-VCL-Botschaften, alles abfangen und selber machen, dann wäre es besser deine eigenen Komponenten zu bauen. Denn der Aufwand ist höher mit den Hooks. Der Tipp mit den Themes ist schon richtig, denn das ist der präferierte Weg. Mit Hooks wirst du immer nur gezielte und einfache Manipulationen bewerkstelligen können und hast niemals den kompletten Zugriff auf alle internen Staties deiner Komponenten. Das was du versuchst ist so als ob du das Verhalten aller Menschen kontrollieren möchtest indem du alles von Aussen kontrollierst, also Wind,Wetter,Fernsehen,Nahrung etc.pp. ohne das du die innersten Gedanken der Menschen direkt beeinflussen kannst.

Mit Hooks wirst du auf lang oder kurz an einem Punkt ankommen bei dem du besser über alle Komponenten, die du beeinflussen möchtest, bescheid weist als der Programmierer der diese Komponenten erzeugt hat. Ergo: dann bist du schneller wenn du all diese Komponenten durch eigene Entwicklungen ersetzt. Einzigster Ausweg ist die Benutzung eines APIs das exakt diese Veränderungen vorsieht, und das sind die Themes.

Gruß Hagen
  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 09:38 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