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
Antwort Antwort
Benutzerbild von Helmi
Helmi

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

NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 09: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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 10:05
http://docwiki.embarcadero.com/VCL/de/System.TGUID
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 10:07
Danke für den Link!
Ich habs aber befürchtet. Mein nostalgisches Delphi 7 erlaubt keine class-Aufrufe im Record. Deswegen kann ich es leider nicht nutzen
mfg
Helmi

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

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 10:12
Gab es denn unter Delphi 7 noch keinen entsprechenden Datentyp? Falls nicht, lass die Methoden doch weg, das müsste auch passen, wenn ich mich nicht irre.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

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

AW: NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 10:15
Gab es denn unter Delphi 7 noch keinen entsprechenden Datentyp? Falls nicht, lass die Methoden doch weg, das müsste auch passen, wenn ich mich nicht irre.
Du irrst dich nicht
Ohne den Methoden funktioniert es - und auch der BalloonTip wird richtig dargstellt!
Danke für die Hilfe
mfg
Helmi

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

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: NotifyIconData: Problem beim Erweitern vom Record

  Alt 15. Sep 2011, 10:22
Keine Ursache, obwohl ich das schon recht kompliziert finde, dass man für das Anzeigen eines BalloonHints zuerst die OS-Version ermitteln soll. Die spinnen, die Redmonder
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 07:44 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