AGB  ·  Datenschutz  ·  Impressum  







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

HintPause in FireMonkey?

Ein Thema von schorsch666 · begonnen am 30. Okt 2023 · letzter Beitrag vom 6. Nov 2023
Antwort Antwort
Seite 1 von 2  1 2      
schorsch666

Registriert seit: 21. Apr 2011
81 Beiträge
 
#1

HintPause in FireMonkey?

  Alt 30. Okt 2023, 14:59
Moin @ALL,
hat jemand nen tipp, wie/wo ich in fmx festlegen kann, wie lange ein hint angezeigt werden soll? in der vcl ist dat ja kein problem, aber in fmx hab ich nix gefunden.

waere supi..

...de Schorsch
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: HintPause in FireMonkey?

  Alt 30. Okt 2023, 20:18
Leider gibt es da (meines Wissens nach) keine eingebaute Möglichkeit so etwas zu setzen.

Ich hätte mir so eine Möglichkeit auch gewünscht, ich selber hatte ja so etwas mal in einer Unit implementiert, als es noch keine Hints in FireMonkey gab.

Dir bliebe nur noch die Möglichkeit, eine Zuweisung für Application.onhint vorzunehmen und den Inhalt des Hints selber nach Deinen Wünschen anzuzeigen. Du müsstest dazu im Onhint-Event die normale Hintanzeige canceln und dann anhand des Hinttextes die passende Komponente dazu in Deiner Form finden, so dass Du dann den Hint an der richtigen Stelle anzeigen kannst.

Für den Fall, dass das für Dich in Betracht kommen sollte, als evtl. Inspiration für die Gestaltung des Hints ein (älteres) Video dazu: https://youtu.be/eWGbhOexrJk?si=S5CBKClRGL08mdRW

Geändert von Harry Stahl (30. Okt 2023 um 21:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 00:30
Na, noch der Hinweis, bevor Du Dir evtl. entsprechende Arbeit machst: Nachdem ich das gestern hier geschrieben hatte, kam mir der Gedanke, dass die Lösung die ich damals zur Anzeige von Hints etnwickelt hatte, mir sehr viel besser gefällt, also das nun in Delphi FMX integriert ist.

Habe daher selber die vorgeschlagene Lösung umgesetzt und hierzu auch ein kleines Video gemacht, dort findest Du auch den Downloadlink zu der Unit: https://youtu.be/n2H5Vji_wKE?si=b2qyTH4uVL2dYjNu
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 06:55
Einfach mal VCL.Forms einbinden und in dessen Application die HintPause setzen?

Mit etwas Glück wird, auch an dieser Stelle, etwas der VCL benutzt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 11:24
Einfach mal VCL.Forms einbinden und in dessen Application die HintPause setzen?

Mit etwas Glück wird, auch an dieser Stelle, etwas der VCL benutzt.
Meinst Du diesen Rat ernst? FMX und VCL zu mischen ist nie eine gute Idee. Im Zweifel wird sich das schon gar nicht kompilieren lassen auf Ebene von MacOS oder Linux sowieso schon nicht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 12:15
Nein, nicht direkt. (auch wenn es mehrere Leute gibt, welche VCL und FMX mischen, also beide Fenstertypen in einer Anwendungen verwenden)

Unter Windows greift das FMX ja auf Funktionen des Windows zu.
Der Einfachheit halber kann Emba dort dann auch Funktionen der VCL benutzt haben ... wenn dem so ist, würde man über den Zugriff auf die VCL dann eventuell die selbe Funktion steuern, welche über FMX nicht direkt zugreifbar ist.

Ähnlich wie bei den Windows-Services, wo es "Application" (TServiceApplication aus Vcl.SvcMg) gibt, welches in der DPR benutzt wird.
Intern verwendet Dieses aber das "Application" der VCL (TApplication aus Vcl.Forms).
Will man z.B. an die Fehlerbehandlung des Services ran, dann kann es über die VCL lösen.
(siehe TServiceApplication.Create, .Run und .Destroy)

Einfach nur ein Versuch:
* Unit Vcl.Forms ins Uses
* über dessen Application diese Eigenschaft ändern und schauen ob es im FMX eine Wirkung hat
Vcl.Forms.Application.HintHidePause := 666;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 1. Nov 2023 um 12:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 12:58
Nein, nicht direkt. (auch wenn es mehrere Leute gibt, welche VCL und FMX mischen, also beide Fenstertypen in einer Anwendungen verwenden)

Unter Windows greift das FMX ja auf Funktionen des Windows zu.
Der Einfachheit halber kann Emba dort dann auch Funktionen der VCL benutzt haben ... wenn dem so ist, würde man über den Zugriff auf die VCL dann eventuell die selbe Funktion steuern, welche über FMX nicht direkt zugreifbar ist.

Ähnlich wie bei den Windows-Services, wo es "Application" (TServiceApplication aus Vcl.SvcMg) gibt, welches in der DPR benutzt wird.
Intern verwendet Dieses aber das "Application" der VCL (TApplication aus Vcl.Forms).
Will man z.B. an die Fehlerbehandlung des Services ran, dann kann es über die VCL lösen.
(siehe TServiceApplication.Create, .Run und .Destroy)

Einfach nur ein Versuch:
* Unit Vcl.Forms ins Uses
* über dessen Application diese Eigenschaft ändern und schauen ob es im FMX eine Wirkung hat
Vcl.Forms.Application.HintHidePause := 666;
Wie gesagt, Dein Vorschlag lässt sich nicht kompilieren. Und ansonsten ist es so, dass unter Windows-FMX die Zugriffe auf die Windows-Api nur sehr gezielt stattfinden. Dafür gibt es aber spezielle units und die findest Du nicht in der VCL (sondern vor allem in RTL_units). Ein mischen ist zwar unter bestimmten Fällen möglich wird aber u.U. mit unstabilen Programmverhalten erkauft und einer erheblich größerer Exe-Datei (denn dann wird auch sehr viel Windows-VCL-Code eingebaut, den man nicht nutzt oder nicht nutzen kann).
  Mit Zitat antworten Zitat
schorsch666

Registriert seit: 21. Apr 2011
81 Beiträge
 
#8

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 14:16
tks, habe es mir mal angeschaut, doch dazu die frage:
du sagtest im video, dass texte umgebrochen werden - ich habe die aber alle muehsam in ner unit mittels slinebreak entspr. formatiert. koennte man das als option "abschalten", oder ist das vllt. schon drin?

...de Schorsch

Geändert von schorsch666 ( 1. Nov 2023 um 14:28 Uhr)
  Mit Zitat antworten Zitat
schorsch666

Registriert seit: 21. Apr 2011
81 Beiträge
 
#9

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 14:35
...hab mir das schon gedenkt. macht probs

(siehe anhang)
Miniaturansicht angehängter Grafiken
delphi_praxis.png  
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.534 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: HintPause in FireMonkey?

  Alt 1. Nov 2023, 15:00
Du könntest insofern eine Anpassung vornehmen, als dass Du bei der Zuweisung des Hints an den Label-Text die sLinebreaks entfernst und die Aufteilung der Zeilen ansonsten der Routine überlässt.

Ändere einfach die Zeile
Delphi-Quellcode:
Lab.text := Application.hint; // alt

// in
Lab.text := ReplaceStr (Application.hint, sLineBreak, ' '); // neu
Dafür musst Du auch die Unit "System.StrUtils" noch einbinden.
  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 10:27 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