AGB  ·  Datenschutz  ·  Impressum  







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

Application.HideHint ändern

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

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

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 13:08
Wie ich schon schrieb ... Message abfangen funkt leider nicht.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#12

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 14:54
Schau dir vielleicht mal die Units NativeHintWindow und FastCodePatch (bzw. Cromis.Detours) an. Beide ändern in Zusammenarbeit miteinander die Delphi-Hints in native und "patchen" dabei Application.HideHint.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 15:42
Das sieht doch mal gut aus
Daß dabei TApplication.HideHint als einzige Methode derart gepatcht werden muß bekräftigt mich in der Annahme, daß in diesem Fall die üblichen Mittel tatsächlich nicht ausreichen.
Danke sehr!
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Application.HideHint ändern

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

Dann müsste es eigentlich viele Messages geben, welche von und an das Ding gehen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 18: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.088 Beiträge
 
Delphi 12 Athens
 
#16

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 21: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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 21: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.088 Beiträge
 
Delphi 12 Athens
 
#18

AW: Application.HideHint ändern

  Alt 22. Feb 2015, 21: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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (22. Feb 2015 um 21:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 15:24 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