AGB  ·  Datenschutz  ·  Impressum  







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

Seltsammes Hint Verhalten eines TButtons

Ein Thema von TurboMagic · begonnen am 28. Okt 2022 · letzter Beitrag vom 30. Okt 2022
Antwort Antwort
Seite 1 von 2  1 2      
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#1

Seltsammes Hint Verhalten eines TButtons

  Alt 28. Okt 2022, 22:16
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?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#2

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 28. Okt 2022, 22:56
Kannst du das in einem Beispiel reproduzieren?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
719 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 29. Okt 2022, 00:17
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
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 29. Okt 2022, 01:35
DebugDCUs und TApplication.ActivateHint
oder einfach mal Application.OnShowHint
und schon müsste man eigentlich sehen wo ein Hint her kommt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#5

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 30. Okt 2022, 08:41
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
Angehängte Dateien
Dateityp: zip Hint.zip (379,9 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 30. Okt 2022, 09:20
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (30. Okt 2022 um 09:28 Uhr)
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#7

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 30. Okt 2022, 09:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 30. Okt 2022, 09:59
Zitat:
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#9

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 30. Okt 2022, 10:05
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.
Übersetzt bedeutet Frank's Kommentar, dass du den gleichen Hint auch beim Form selbst eingetragen hast und der somit bei allen deaktivierten Controls zum Tragen kommt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Seltsammes Hint Verhalten eines TButtons

  Alt 30. Okt 2022, 10:19
jupp, den Controls unter den Deaktivierten
und auch den Aktivierten, ohne eigenen Hint.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 21:21 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