AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Größe von szTip des TNotifyIconData ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Größe von szTip des TNotifyIconData ändern

Ein Thema von phlux · begonnen am 17. Jan 2003 · letzter Beitrag vom 19. Jan 2003
Antwort Antwort
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#1

Größe von szTip des TNotifyIconData ändern

  Alt 17. Jan 2003, 20:33
Hi!
Also mein Progrämmchen hat eine TrayIcon Kompo, nur das Problem ist, der String der angezeigt wird wenn man mit der Maus über das Icon gleitet ist zu kurz(?!). Also ich möchte z.B. folgenden String unterbringen
Zitat:
DMX - X Gonna Give It To Ya: 02:32 (3:52)
Playing - Right Click Pauses Player
Das ganze wird jede Sekunde einmal upgedatet, jedoch poppt sofort der Debugger auf, wenn der Timer startet
Ist es jetzt möglich durch das Überschreiben der TNotifyIconData die Größe zu verändern, wenn ja wie, oder bin ich da aufm falschen Dampfer, was die Fehlersuche betrifft?
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#2
  Alt 17. Jan 2003, 21:43
Hi phlux,

dein Text ist (inklusive eines #13#10) 78 Zeichen lang, in TNotifyIconData ist aber nur ein Array von 64 Zeichen für den Text vorgesehen. Da dies von Microsoft so festgelegt ist, ist es nicht möglich, einen längeren Text als 64 Zeichen als Hint anzuzeigen (es wäre zwar theoretisch mit einer Pointerübergabe auf einen nullterminierten String möglich, aber wahrscheinlich hat Microsoft das nicht implementiert, damit die Programme nicht den ganzen Desktop mit ihren Hints zupflastern ).

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#3
  Alt 17. Jan 2003, 21:49
Schade dann muss ich mir was andres einfallen lassen!!
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#4
  Alt 17. Jan 2003, 22:15
Hallo phlux,
Probiers doch mal mit scrollendem Titel.
Damit könntest du dann den gesamten Text unterbringen.
Gruss
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#5
  Alt 17. Jan 2003, 22:21
Jan, das ist eine Prima Idee
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6
  Alt 17. Jan 2003, 22:34
Moin d3g,

unter ME/2000 ff darf szTip 128 Zeichen umfassen, ausserdem kann man auch eine erweiterte NOTIFYICONDATA Struktur verwenden, die man sich dann aber wohl auch selber deklarieren müsste.

Ich glaube wir haben hier im Forum auch schon Beispiele dafür.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von d3g
d3g

Registriert seit: 21. Jun 2002
602 Beiträge
 
#7
  Alt 18. Jan 2003, 13:49
Hi phlux,

gut, in diesem Fall müsstest du mit dieser Struktur arbeiten können. Wichtig ist, dass dein Programm dann erst ab Windows ME/2000 funktioniert.
Delphi-Quellcode:
type
  TNotifyIconDataEx = record
    cbSize: DWORD;
    hWnd: THandle;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: THandle;
    szTip: array[0..127] of Char;
    dwState: DWORD;
    dwStateMask: DWORD;
    szInfo: array[0..255] of Char;
    uTimeout: UINT;
    szInfoTitle: array[0..63] of Char;
    dwInfoFlags: DWORD;
    guidItem: TGUID;
  end;
  PNotifyIconDataEx: ^TNotifyIconDataEx;

function Shell_NotifyIcon(dwMessage: DWORD; lpdata: PNotifyIconDataEx); external 'shell32.dll';
Ich kann es nicht ausprobieren, da ich kein Windows zur Verfügung habe (ich müsste erst wieder meinen Bootloaer umkonfigurieren etc.), aber wenn es keine Probleme mit dem union in der C-Struktur gibt, dann sollte es funktionieren.

MfG,
d3g
-- Crucifixion?
-- Yes.
-- Good. Out of the door, line on the left, one cross each.
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#8
  Alt 18. Jan 2003, 13:56
Danke für den Tipp, aber wenn das Programm dann nur noch unter Me und aufwärts läuft ist das ein bisschen sch..lecht, es gibt noch genug Benutzer die auf Win98 schwören (mein Cousin zb) und da wäre es doch irgendwie blöd wenn ich diese User-Gruppe ausschließen würde
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 18. Jan 2003, 17:44
Hallo phlux,
da gibt es dann 2 Möglichkeiten, oder nein, sogar 3:
1.: Du bringst dein Programm in mehreren versionen heraus, so wie das allgemein üblich ist, z.b. eine win98 and below und eine für ME and above oder so.
2.:du lässt dein Programm das jeweilige OS auslesen und machst dann davon abhängig was das programm so alles macht. Auf me würde dann zum Beispiel ein langeer tip erscheinen und unter 98 würde er der Text vielleicht scrollen.
3.: Du suchst dir von Anfang an nur eine Lösung (abgekürzter Text oder scrollen) Wobei diese Lösung natürlich die einfachste, langweiligste und am wenigsten mit lernen verbundendste ist.

Jetzt liegt es an dir.
gutes Gelingen!
bb
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#10
  Alt 19. Jan 2003, 11:34
Ich werd das ersma jetzt aufschieben und später realisieren, werde mich aber wohl so entscheiden dass ich das Programm so schreib das es zwischen Win9x und Me/2k unterscheidet, das hab ich ja erst vor kurzem ausm Code rausgelöscht
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:17 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