Autor Beitrag
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 07.08.07 13:36 
Ich leite den letzten Bugreport zu meinem Player einfach mal weiter. Keine Ahnung, wie man das elegant lösen kann, aber irgendein Winapi-Spezialist kann das bestimmt. Bei Nemp sieht das zwar etwas anders aus, aber so gibts den Fehler auch schon (Code aus der Lib):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var   fIconData: TNOTIFYICONDATA;

procedure TForm1.FormCreate(Sender: TObject);
begin
// NotifyIconData-Struktur mit Werten füllen
  with fIconData do
    begin
      cbSize := SizeOf (TNOTIFYICONDATA);
      Wnd := Handle;
      uID := 1;
      uFlags := NIF_ICON + NIF_TIP;
      hIcon := LoadIcon (0, IDI_INFORMATION);
      szTip := 'Ernie & Bert';
    end;
  // Icon in die TNA hinzufügen
  If not Shell_NotifyIcon (NIM_ADD, @fIconData) then { Fehler! }
end;
ergibt als Hint ein "Ernie Bert". Zwei & ergeben ein "Ernie _Bert", drei ein "Ernie & Bert". Das Verhalten ist also so ähnlich wie bei den Captions bei Menuitems, aber wie stelle ich das im Tray ab? Bei MSDN hab ich nichts finden können, und ne Suche nach & ist etwas knifflig. Auch Begriffe wie accelerator (so heißen die Dinger doch, oder?) bringen mich nicht weiter.

Ich habe nämlich keine Lust, meine Tooltips nach Stringofchar('&', x) abzusuchen, und diese durch Stringofchar('&', 2*x+1) zu ersetzen. Oder muss ich da durch? (Das wird dann aber wieder so ne frimmelige Funktion... :?)

_________________
We are, we were and will not be.
arj
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 378

Win XP/Vista, Debian, (K)Ubuntu
Delphi 5 Prof, Delphi 7 Prof, C# (#Develop, VS 2005), Java (Eclipse), C++, QT, PHP, Python
BeitragVerfasst: Di 07.08.07 13:39 
Mmh wüsste momentan auch nichts. Als weitere Suchbegriff kannst du vielleicht noch "ampersand" benutzen.
Gausi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 07.08.07 14:14 
Naja, der Begriff hat mich nur insofern weitergebracht, dass XMPlay (der Player vom Entwickler der bass.dll), dasselbe Problem auch mal hatte, und dass das dort wohl durch ne Verdopplung der &'s gelöst hat...Mist. Warum ich allerdings scheinbar ne Verdopplung+1 brauche, hab ich noch nicht raus...

_________________
We are, we were and will not be.
Dunkel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: Di 07.08.07 16:39 
user profile iconGausi hat folgendes geschrieben:
{ ... }ergibt als Hint ein "Ernie Bert". Zwei & ergeben ein "Ernie _Bert", drei ein "Ernie & Bert".

Dass Du 3 & brauchst um ein & anzuzeigen, ist sehr komisch, normalerweise reichen 2 &.


user profile iconGausi hat folgendes geschrieben:
Auch Begriffe wie accelerator (so heißen die Dinger doch, oder?) bringen mich nicht weiter.

Ich spiele gerade ein wenig mit DrawText und DrawTextW rum, die Hilfe sagt dazu folgendes:
Zitat:
DT_HIDEPREFIX
Windows 2000/XP: Ignores the ampersand (&) prefix character in the text. The letter that follows will not be underlined, but other mnemonic-prefix characters are still processed. For example:
input string: "A&bc&&d"
normal: "Abc&d"
DT_HIDEPREFIX: "Abc&d"

Vielleicht geht es ja ähnlich mit dem Trayicon-Hint?!?


user profile iconGausi hat folgendes geschrieben:
Ich habe nämlich keine Lust, meine Tooltips nach Stringofchar('&', x) abzusuchen, und diese durch Stringofchar('&', 2*x+1) zu ersetzen. Oder muss ich da durch? (Das wird dann aber wieder so ne frimmelige Funktion... :?)

ausblenden Delphi-Quelltext
1:
StringReplace(str,'&','&&',[rfReplaceAll]);					

Was ist daran frimmelig? (wenn es sonst nicht anders geht...)

_________________
Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
Gausi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 07.08.07 17:01 
ausblenden Delphi-Quelltext
1:
StringReplace(str,'&','&&',[rfReplaceAll]);					

Das reicht leider nicht, weil ich &&&&& brauche, um ein && darzustellen, und kein &&&&. Ich brauche also 2n+1 viele &'s, wenn ich n aufeinanderfolgende &'s ausgegeben haben möchte.


user profile iconDunkel hat folgendes geschrieben:
Dass Du 3 & brauchst um ein & anzuzeigen, ist sehr komisch, normalerweise reichen 2 &.
Das finde ich auch, aber zwei && ergeben ein unterstrichenes Leerzeichen. :nixweiss:

Wäre aber nett, wenn du (oder jemand anders) das auf deinem System mit obigem Code verifizieren könntest, oder ob das ne Eigenheit meines Systems ist.

_________________
We are, we were and will not be.
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Di 07.08.07 17:44 
Hallo,

das liegt nicht an Deinem System.

Eventuell hilft das weiter:
...Ballon-Tips in der eigenen Delphi Anwednung anzeigen?
Noch ein Stichwort: TTS_NOPREFIX

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )