AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Compilerschalter/logik: Vista oder höher
Thema durchsuchen
Ansicht
Themen-Optionen

Compilerschalter/logik: Vista oder höher

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

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

AW: Compilerschalter/logik: Vista oder höher

  Alt 16. Sep 2011, 13:09
Hallo,

also zwei Versionen möcht ich nicht bauen, da es sich um eine Komponente handelt.

Was ich mir vorstelle, wären zwei Records. Eins für XP und eins für Vista und höher.

Jetzt hab ich zwei Records erstellt:
Delphi-Quellcode:
  TVistaNotifyIconData = record
    cbSize : DWORD;
    Wnd : HWND;
    uID : UINT;
    uFlags : UINT;
    uCallbackMessage: UINT;
    hIcon : HICON;
    szTip : array [0..max_Tip] of Char;
    dwState : DWORD; //Version 5.0
    dwStateMask : DWORD; //Version 5.0
    szInfo : array [0..max_Info] of Char; //Version 5.0
    DUMMYUNIONNAME : TDUMMYUNIONNAME;
    szInfoTitle : array [0..max_Title] of Char; //Version 5.0
    dwInfoFlags : DWORD; //Version 5.0
    guidItem : TGUID;
    hBalloonIcon : HICON;
  end;

  TXPNotifyIconData = record
    cbSize : DWORD;
    Wnd : HWND;
    uID : UINT;
    uFlags : UINT;
    uCallbackMessage: UINT;
    hIcon : HICON;
    szTip : array [0..max_Tip] of Char;
    dwState : DWORD; //Version 5.0
    dwStateMask : DWORD; //Version 5.0
    szInfo : array [0..max_Info] of Char; //Version 5.0
    DUMMYUNIONNAME : TDUMMYUNIONNAME;
    szInfoTitle : array [0..max_Title] of Char; //Version 5.0
    dwInfoFlags : DWORD; //Version 5.0
  end;
Nur leider brauch ich jetzt auch zwei Variablen. Einmal vom Typ "TXPNotifyIconData" und eines vom Typ "TVistaNotifyIconData"
Delphi-Quellcode:
  private
    { Private-Deklarationen }

    //Komponenten-Variablen
    IconData_XP : TXPNotifyIconData;
    IconData_Vista : TVistaNotifyIconData;
Was natürlich auch den Nachteil hat, dass ich jetzt eigentlich jeden Code, auch wenn er identisch ist, doppelt führen muss. Nur wegen der anderen Variablen.

Gib es denn die Möglichkeit das einfach umzuswitschen (vielleicht mittels einer 3. NotifyIconData-Variablen) um nur einmal den Code zu haben?

Ich hätte dann gerne so was gebaut:
Delphi-Quellcode:
      //BalloonTip-Titel setzen
      strPLCopy(IconData.szInfoTitle, FBalloonTipTitle, Pred(SizeOf(IconData.szInfoTitle)));

      //BalloonTip-Info setzen
      strPLCopy(IconData.szInfo, FBalloonTipInfo, Pred(SizeOf(IconData.szInfo)));

      //BalloonTip-TimeOut setzen
      IconData.DUMMYUNIONNAME.uTimeout := FBalloonTipTimeOut;

      //BalloonTip-Flag setzen
      IconData.dwInfoFlags := FBalloonTipSelectedFlag;

      //
      If OS_Vista then //<<== OS-Prüfung
        IconData.hBalloonIcon := FBalloonTipIcon.Handle;

      //
      IconData.DUMMYUNIONNAME.uVersion := NOTIFYICON_VERSION;
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 05:19 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-2025 by Thomas Breitkreuz