![]() |
Seltsammes Hint Verhalten eines TButtons
Gegeben: D11.2 VCL Anwendung.
Am unteren Rand des Formulares befinden sich statisch platzierte Buttons für zurück, weiter und abbrechen. Alle haben zur Design Zeit einen Hint zugewiesen bekommen. Bei MouseOver wird dieser angezeigt. Befindet man sich auf der letzten Seite wird der Weiter Button disabled. Enable := false. Und jetzt wird's seltsam: fährt man mit der Maus über den Button kommt ein ganz anderer Hint eines Buttons, der zu dem Zeitpunkt gar nicht auf dem Bildschirm ist und selbst wenn, nicht an der Stelle wäre. Im ganzen Code kommt aber niorgends "Hint" vor, ist also alles per Designer gesetzt. Ist das jemand schon mal untergekommen? Was kann ich zur weiteren Diagnose tun? |
AW: Seltsammes Hint Verhalten eines TButtons
Kannst du das in einem Beispiel reproduzieren?
|
AW: Seltsammes Hint Verhalten eines TButtons
Hallo TM
ich habe nicht in den Delphi Code geschaut; habe aber nun mit vier Buttons ziemlich lang geübt (je ein Hint - bei Klick auf einen Button enabled oder visible auf false gesetzt) und kann es nicht nachvollziehen. (Ausser: Wenn ich zwei Buttons übereinander lege und beim sichtbaren Bitton enabled=false setze, dann wird beim "Drüberwischen" der Hint des Buttons dahinter angezeigt.) Du hast geschrieben, dass alles im Designer gesetzt wird. Meinst du da nur die Hints oder auch alle Button Positionen? Ich frage weil: Wenn du ein Scaled = true Form aus einer älteren Anwendung übernimmst, dir in der IDE skalierte Forms skaliert anzeigen lässt und irgendwo im Code eine Buttonposition auf einen festen Wert (ein Skalar- zum Beispiel 300) gesetzt hast, dann ist dieser Button nicht mehr dort wo früher ;-). (Das könntest du auch testen ohne in deinen Code zu schauen: Unter Windows eine andere Skalierung wählen, App wieder laufen lassen - und wenn das Problem nun nicht mehr auftritt; dann ist dein "Hint gebender Button" gewandert.) Oder anders gefragt: Hast du dir die Positionen der beiden beteiligten Buttons mal zur Laufzeit anzeigen lassen? Gruss M |
AW: Seltsammes Hint Verhalten eines TButtons
DebugDCUs und TApplication.ActivateHint
oder einfach mal Application.OnShowHint und schon müsste man eigentlich sehen wo ein Hint her kommt. |
AW: Seltsammes Hint Verhalten eines TButtons
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
anbei mal das Projekt, etwaqs "heruntergestrippt". Anleitung: 1. In leeren ordner entpacken und öffnen 2. F9 3. Auf "New" clicken 4. Mit der Maus über "Next" Button fahren, angezeigten Hint merken 5. So lange auf "Next" klicken, bis dieser deaktiviert wird 6. Mit der Maus drüber fahren und Hint mit gemerktem vergleichen Grüße TurboMagic |
AW: Seltsammes Hint Verhalten eines TButtons
Noch nicht auf die Idee gekommen, nach dem Hint in der DFM zu suchen?
Gleich in der 4. Zeile, an der FORM, also überall wo ParentHint. Deaktivierte Controls reagieren nicht auf die Maus und auch WindowFromPoint und Co. guckt hindurch, welches auch für die Hints benutzt wird. oder einfach mal einen Timer mit z.B. Interval=100
Delphi-Quellcode:
procedure TFormMain.Timer1Timer(Sender: TObject);
var Pos: TPoint; Wnd: HWND; Ctl: TWinControl; Txt: array[0..100] of Char; S: string; begin GetCursorPos(Pos); Ctl := FindVCLWindow(Pos); if Assigned(Ctl) then S := S + ' [Ctl] ' + Ctl.ClassName + ' ' + Ctl.Name; while Assigned(Ctl) do begin if Ctl.Hint <> '' then begin S := S + ' [Hint] ' + Ctl.ClassName + ' ' + Ctl.Name; Break; end; Ctl := Ctl.Parent; end; Wnd := WindowFromPoint(Pos); RealGetWindowClass(Wnd, @Txt, Length(Txt)); S := S + ' [Wnd] ' + Txt; GetClassName(Wnd, @Txt, Length(Txt)); S := S + ' ' + Txt; GetWindowText(Wnd, @Txt, Length(Txt)); S := S + ' ' + Txt; Caption := S; end; Wir haben bei uns ein LogFenster, wo es auch einen Tabsheet gibt, in dem vom Mauszeiger, Screen.ActiveControl und .ActiveCustomForm all diese Dinge angezeigt werden. Bei gedrücktem Strg, sowie innerhalb (GetParentForm) des LogFensters, des TimerEvent deaktiviert ist, damit man sich diese Texte aus den Edits kopieren kann. Hilft einem ungemein, in einem Projekt mit bestimmt 100 Forms und hunderten dynamischen Forms (in der DB gespeicherte DFMs), einen Überblick zu bekommen. |
AW: Seltsammes Hint Verhalten eines TButtons
Da das ein Projekt ist, welches möglichst noch bis zur EKON nächste Woche fertig werden soll hab'
ich gerade nicht wirklich die Zeit dieses Problem in der Tiefe zu erforschen. |
AW: Seltsammes Hint Verhalten eines TButtons
Zitat:
|
AW: Seltsammes Hint Verhalten eines TButtons
Zitat:
|
AW: Seltsammes Hint Verhalten eines TButtons
jupp, den Controls unter den Deaktivierten
und auch den Aktivierten, ohne eigenen Hint. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 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