Thema: Delphi Balloonhints

Einzelnen Beitrag anzeigen

Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#5

Re: Balloonhints

  Alt 26. Jul 2003, 11:32
Oki, habe ich gemacht, aber auch mit seinem Code bekomme ich es nicht hin.

Ich habe ganz genau seinen Code genommen, nur das ich ihn wieder in VCL umgeschrieben haben:

Delphi-Quellcode:
const
  WM_TRAYMSG = WM_USER + 10;
  szClassname = 'TaskbarIcon-Demo';

var
  Form1: TForm1;
  dll : DWORD = 0;
  ver : TDllVersionInfo;
  shell32_ver : dword = 400; // Standardversion 4.0 der "shell32.dll"
var
  NID : TNotifyIconData = (
    uID : 1052002;
    uFlags : NIF_MESSAGE or NIF_ICON or NIF_TIP;
    uCallbackMessage : WM_TRAYMSG;
    hIcon : 0;
    szTip : szClassname;
  );
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
        dll := LoadLibrary('shell32.dll');
        if(dll <> 0) then
          begin
            DllGetVersion := GetProcAddress(dll,'DllGetVersion');
            if(@DllGetVersion <> nil) then
              begin
                fillchar(ver,sizeof(TDllVersionInfo),0);
                ver.cbSize := sizeof(TDllVersionInfo);
                if(DllGetVersion(@ver) = NOERROR) then
                  shell32_ver := (ver.dwMajorVersion * 100) + ver.dwMinorVersion;
              end;
            FreeLibrary(dll);
          end;

        // abhängig von der "shell32.dll" die Strukturgröße setzen!
        if(shell32_ver = 600) then NID.cbSize := sizeof(TNotifyIconData)
          else if(shell32_ver >= 500) then NID.cbSize := NOTIFYICONDATA_V2_SIZE
            else NID.cbSize := NOTIFYICONDATA_V1_SIZE;

        NID.wnd := form1.Handle;
        NID.hIcon := LoadIcon(0,IDI_INFORMATION);

        if(shell32_ver >= 500) then
          begin
            NID.uFlags := NID.uFlags or NIF_INFO;
            NID.szInfo := 'Ein Beispiel für einen neuen Balloon-Tipp,' +
              #13#10 + 'der auch mehrzeilig sein kann.';
            NID.szInfoTitle := szClassname;
            NID.dwInfoFlags := NIIF_INFO;
          end;
        Shell_NotifyIcon(NIM_ADD,@NID);
        DestroyIcon(NID.hIcon);
end;
Ich hänge mal den Code an, wer will kann ja mal compilen und testen ob es bei ihm funzt.
Angehängte Dateien
Dateityp: zip bubble.zip (12,2 KB, 84x aufgerufen)
  Mit Zitat antworten Zitat