AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi NotifyIconData: Problem beim Erweitern vom Record
Thema durchsuchen
Ansicht
Themen-Optionen

NotifyIconData: Problem beim Erweitern vom Record

Ein Thema von Helmi · begonnen am 15. Sep 2011 · letzter Beitrag vom 15. Sep 2011
 
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 10:55
Hallo,

ich nutze diesen Code zum Erstellen eines TrayIcons mit einem BalloonTip.
Dies funktioniert soweit auch ganz gut.

Bei MSDN gibt es für Vista und höher eine neue Variable hBalloonIcon.

Dazu wollte ich folgendes Record um hBalloonIcon erweitern:

Delphi-Quellcode:
  TNewNotifyIconData = record
    cbSize: DWORD;
    Wnd: HWND;
    uID: UINT;
    uFlags: UINT;
    uCallbackMessage: UINT;
    hIcon: HICON;
   //Version 5.0 is 128 chars, old ver is 64 chars
    szTip: array [0..127] of Char;
    dwState: DWORD; //Version 5.0
    dwStateMask: DWORD; //Version 5.0
    szInfo: array [0..255] of Char; //Version 5.0
    DUMMYUNIONNAME: TDUMMYUNIONNAME;
    szInfoTitle: array [0..63] of Char; //Version 5.0
    dwInfoFlags: DWORD; //Version 5.0
    hBalloonIcon : HICON;
  end;
Aber sobald ich die Zeile hBalloonIcon : HICON; hinzufüge, wird der BalloonTip nicht mehr dargestellt (Das Icon schon).
Blende ich diese Zeile aus, so funktioniert wieder alles wie gewünscht.

Auch wenn ich das Record anders aufbaue (sortiere) so hab ich das gleiche Phänomen.

Mein Verdacht ist, dass sich irgendwas im Speicher verschiebt. Deswegen hab ich es auch schon mit packed record versucht. Aber das ergibt das gleiche Ergebnis.

Das Einzige was ich mir wegen hBalloonIcon vorstellen könnte ist, dass man entweder hIcon oder hBalloonIcon haben darf. Das könnte man mit einem Compilerschalter abdecken.

[Edit]
Was ich jetzt gesehen habe auf der MSDN-Seite ist, dass das Record fest vorgegeben ist.

Delphi-Quellcode:
  TNewNotifyIconData = record
    cbSize : DWORD;
    Wnd : HWND;
    uID : UINT;
    uFlags : UINT;
    uCallbackMessage: UINT;
    hIcon : HICON;
    szTip : array [0..127] of Char;
    dwState : DWORD; //Version 5.0
    dwStateMask : DWORD; //Version 5.0
    szInfo : array [0..255] of Char; //Version 5.0
    DUMMYUNIONNAME : TDUMMYUNIONNAME;
    szInfoTitle : array [0..63] of Char; //Version 5.0
    dwInfoFlags : DWORD; //Version 5.0
    guidItem : GUID;
    hBalloonIcon : HICON;
  end;
Das heisst: Vor hBalloonIcon muss guidItem definiert werden. Bei MSDN steht: GUID guidItem; - Nur was ist GUID für ein Typ?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
 


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 12:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz