AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Application.HideHint ändern

Ein Thema von ConnorMcLeod · begonnen am 22. Feb 2015 · letzter Beitrag vom 22. Feb 2015
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#1

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 14:55
Aber es ist letztendlich doch nur ein "Windows"?

Dann müsste es eigentlich viele Messages geben, welche von und an das Ding gehen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 17:53
IIUC ist es kein ausgewachsenes Fenster, sondern "nur" ein TWinControl. Ich vermute, daß Windoof ein Tooltip-Window erzeugt und Delphi das THintWindow (das zwar Window heißt, aber kein TCustomForm ist) darin einbaut um die Anzeige zu malen.

Es würde mich zwar akademisch interessieren, wie der Mechanismus tatsächlich abläuft, aber die Zeit dafür bezahlt niemand :-/

Ich bin momentan happy mit der eigenen THintWindow-Klasse und werde mglw den FastcodeAddressPatch verwenden, um applikationsweit nur eine einzige Prozedur zu haben, die dann mittels Interface verschiedene THintWindow-Klassen bedienen kann.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#3

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 20:20
Alles was Windows anzeigt, sind "Fenster" ... selbst ein TEdit (EDIT) oder ein TButton (BUTTON) sind nur Fenster, die in das große Top-Level-Fenster eingebettet sind.
Und jedes WinControl wird über Messages kontrolliert.

http://stackoverflow.com/questions/9...2-edit-control
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 20:24
Schon klar, deswegen waren die MessageHandler meine erste Idee; THintWindow wird offenbar dennoch anders behandelt. Schon mal selbst probiert?
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.374 Beiträge
 
Delphi 12 Athens
 
#5

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 20:56
Delphi-Quellcode:
procedure TForm2.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
var
  C: TWinControl;
begin
  C := FindControl(Msg.hwnd);
  if C is HintWindowClass then begin
    Tag := Tag + 1;
    Caption := IntToStr(Tag);
  end;
end;
Hmmmmm, also entweder hostet Windows die HintWindows extern, was aber nicht gehen kann, denn irgendwo muß das WM_PAINT des HintWindows vorbeikommen, denn als ich zuletzt eine eigene Hint-Klasse schrieb, da ist das noch angekommen (in der Klasse).
Oder man muß auf irgendwas Anderes hören, oder Delphi fängt die HintMessages ab, bevor sie beim OnMessage vorbeikommen.

Delphi-Quellcode:
  THintWindow = class(TCustomControl)
  protected
    procedure Paint; override;
    procedure WMPrint(var Message: TMessage); message WM_PRINT;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Feb 2015 um 20:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:32 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