[GEFIXT] Bug? Hint muss explizit noch einmal aktiviert werden

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

[GEFIXT] Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Ich934 »

Hallo,

könnte das bitte jemand noch einmal prüfen. Bei mir ist das so unter Windows und Linux und imo ist das ein Bug.

Ich erstelle ein neues Projekt mit einem Form. Darauf plaziere ich eine beliebige Komponente (z.B. Button). Bei der Eigenschaft "Hint" dieser Komponente gebe ich einen Text ein und starte die Anwendung. Gehe ich mit der Maus über diese Komponente wird kein Hint angezeigt. Sowohl in der Form als auch bei der Komponente sind per Default "ShowHint" auf "True" gesetzt.

Gehe ich jetzt bei der Komponente in die Eigenschaften und deaktiviere "ShowHint" und aktiviere ich diese wieder bewusst, so wird der Hint angezeigt. Die Option "ParentShowHint" wird deaktiviert. Aktiviere ich diese wieder, dann ist der Hint wieder verschwunden.

Gehe ich in die Form und deaktiviere und aktiviere ich hier die Option "ShowHint" dann wird die Hint nach dem starten der Anwendung angezeigt.

Imo sollte doch die Hint per Default angezeigt werden, da ja alle Optionen auf True sind. Oder habe ich hier etwas übersehen?

Nachtrag: ich sehe gerade, dass wenn ich beim Form das ShowHint auf True setze, dieses Fett markiert wird. Scheinbar ist die Standardeinstellung also False, obwohl hier True angezeigt wird. Ist u.U. das das Problem?
Zuletzt geändert von Ich934 am Di 13. Jul 2021, 19:44, insgesamt 1-mal geändert.
Tipp für PostgreSQL: www.pg-forum.de

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von wp_xyz »

Seltsame Geschichte... Bei meinen Tests verhielten sich Trunk und v2.0.12 korrekt, und Form.ShowHint war per default false. Nur im neuen 2.2RC1/64bit konnte ich den Fehler sehen, genauso wie beschrieben. Ging ich zur 32-Bit Installation des 2.2.RC1 war der Fehler wieder weg. Da fiel mir auf, dass ich in der 64-Bit-Version den DockedFormEditor installiert hatte. Nachdem ich den deinstalliert hatte, liefen die Hints auch bei der 64-Bit Installation einwandfrei.

Wenn du das bestätigen kannst, dann solltest du einen Bug-Report schreiben.

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Ich934 »

Bei mir ist es die 2.0.12 r64642 mit FPC 3.2.2 (beides stable über FPCUPDeluxe). Ich teste das jetzt noch einmal mit einem nackigen Lazarus und wenn ich das reproduzieren kann, schreib ich einen Bug-Report. Danke für den Test.
Tipp für PostgreSQL: www.pg-forum.de

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Ich934 »

Hier noch ein paar Informationen die ich jetzt noch herausgefunden habe:
  • Frisches Lazraus 2.0.12 r64642 (stable): funktioniert, ShowHint ist False
  • AnchorDocking installiert: ShowHint ist auf True aber funktioniert nicht und zeigt das oben beschriebene Verhalten
Somit kommt das Problem scheinbar durch das AnchorDocking
Tipp für PostgreSQL: www.pg-forum.de

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Michl »

Mit AnchorDockingDsgn konnte ich das Problem nicht sehen. Allerdings beim DockedFormEditor.

Das Formular bekommt beim Einbetten in die IDE die Message CM_PARENTSHOWHINTCHANGED und stellt ShowHint entsprechend um. Das ist nun unterbunden.

Der Bugreport https://bugs.freepascal.org/view.php?id=39217 ist gefixt, bitte teste es. Wenn du keine Lazarus Trunk Version zum testen hast, kannst du in der Datei ..\Lazarus\components\dockedformeditor\source\dockeddesignform.pas folgende Zeilen ändern und testen:

Code: Alles auswählen

procedure TDesignForm.WndMethod(var Msg: TLMessage);
...
  case Msg.msg of
    {$IFDEF WINDOWS}
    // we need to correct ActiveEditor to right form
    // this code works correctly on Windows platform
    // (is necessery for selecting controls after form resizing).
    // in Linux platforms below code brings problems with QT (inactive form)
    LM_LBUTTONDOWN, LM_RBUTTONDOWN, LM_MBUTTONDOWN, LM_XBUTTONDOWN:
      if LastActiveSourceWindow <> nil then
      begin
        SourceEditorManagerIntf.ActiveSourceWindow := LastActiveSourceWindow;
        SourceEditorManagerIntf.ActiveEditor := LastActiveSourceWindow.ActiveEditor;
      end;
    {$ENDIF}
    // Prevent usage of parent hint (SourceEditorWindow), see issue #39217
    CM_PARENTSHOWHINTCHANGED:
      begin
        Msg.Result := 0;
        Exit;
      end; 
  end;

  FWndMethod(Msg);
end; 

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Ich934 »

Hallo Michl,

danke, aber den dockedformeditor gibt es bei mir unter components nicht... Es würde nur den sparta_DockedFormEditor geben.

Lazarus 2.0.12
FPC 3.2.2
erstellt mit FPCUPdeluxe
Dateianhänge
components-Verzeichnis (Ausschnitt)
components-Verzeichnis (Ausschnitt)
Bildschirmfoto zu 2021-07-13 17-24-24.png (72.34 KiB) 2427 mal betrachtet
Tipp für PostgreSQL: www.pg-forum.de

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Michl »

Ja, dort wäre die Datei sparta_mainide.pas zu ändern, speziell die Prozedur TDesignFormData.WndMethod(var Msg: TLMessage) mit dem gleichen Code.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Ich934
Lazarusforum e. V.
Beiträge: 316
Registriert: So 5. Mai 2019, 16:52
OS, Lazarus, FPC: ArchLinux und Windows mit FPCUPdeluxe (L: 2.0.X, FPC 3.2.0)
CPU-Target: x86_64, i386
Wohnort: Bayreuth

Re: Bug? Hint muss explizit noch einmal aktiviert werden

Beitrag von Ich934 »

Jetzt geht es. Super. Vielen Dank!
Tipp für PostgreSQL: www.pg-forum.de

Antworten