Autor |
Beitrag |
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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):
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 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; If not Shell_NotifyIcon (NIM_ADD, @fIconData) then 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
      
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
|
Verfasst: Di 07.08.07 13:39
Mmh wüsste momentan auch nichts. Als weitere Suchbegriff kannst du vielleicht noch "ampersand" benutzen.
|
|
Gausi 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: Di 07.08.07 16:39
Gausi 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 &.
Gausi 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?!?
Gausi 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... ) |
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 
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 07.08.07 17:01
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.
Dunkel 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.
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
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: 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 )
|
|
|