Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi IconData.szTip < Variabel wie ? (https://www.delphipraxis.net/39364-icondata-sztip-variabel-wie.html)

Gast 1. Feb 2005 15:54


IconData.szTip < Variabel wie ?
 
Hey, habe mir nun das Tutorial angeguckt. Jetzt habe ich eine Variabel .. diese heißt "X" (string) und möchte diese integrieren. Wenn man übers Icon geht, dass sie ausgelsen wird. Aber irgendwie geht folgendes nicht:

Code:
IconData.szTip := X
aber das Komische, wenn ich folgendes mache gehts:

Code:
Label1.Caption := X

Also mit der Variabel ist alles Okay. Kann mir jemand helfen ? Danke im Vorraus !!

Gr33tZ!
Tigerhead

Luckie 1. Feb 2005 15:56

Re: IconData.szTip < Variabel wie ?
 
Zitat:

Zitat von Tigerhead
Aber irgendwie geht folgendes nicht:

Was heißt das: "Geht nicht."? :roll:

Gast 1. Feb 2005 15:58

Re: IconData.szTip < Variabel wie ?
 
Wenn man über das Icon rechts unten geht, dann kommt nicht die Schrift aus der Variabel X ... sorry, bin ein ganz schlechter Erklärer :( Hoffe du verstehst was ich mein ;)

Luckie 1. Feb 2005 16:07

Re: IconData.szTip < Variabel wie ?
 
Caste den String mal nach PChar.

Shaman 1. Feb 2005 16:09

Re: IconData.szTip < Variabel wie ?
 
Hoi

Ich habe das einmal so hingewürgt:

Delphi-Quellcode:
var
  S: string
begin
  S:= X + #0;
  Move(S[1], IconData.szTip, Length(S));
end;
Gruss
Shaman

Gast 1. Feb 2005 16:28

Re: IconData.szTip < Variabel wie ?
 
@ Lucke: Wie kann ich das machen ? Meinste anstatt "X:string" schreiben "X:PChar" oder "X:Char" oder ? oder irgendwas mit "inttochar(X)" oder so ? Sorry aber hatte eine größere Delphipause und programmiere noch nicht so wirklich gut !

@ Shaman: Deine Methode weist zwar keinen Fehler bei mir auf doch leider zeigt er auch die Schrift nicht an.

jfheins 1. Feb 2005 16:30

Re: IconData.szTip < Variabel wie ?
 
Wahrscheinlich meint Luckie
Delphi-Quellcode:
IconData.szTip := PChar (X);

Sprint 1. Feb 2005 16:51

Re: IconData.szTip < Variabel wie ?
 
@Tigerhead: Und die Flags hast du auch richtig gesetzt?
Delphi-Quellcode:
NIF_MESSAGE or NIF_ICON or NIF_TIP

Gast 1. Feb 2005 16:54

Re: IconData.szTip < Variabel wie ?
 
Hier mal der Code vom ganzen, habe viel probiert aber bis jetzt keine Lösung .. :(

Code:
unit mUptime;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ShellAPI, Menus, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    IconData: TNotifyIconData;
  public
    { Public declarations }
    procedure WndProc(var Msg: TMessage); override;
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function UpTime: string; // Uptime
const
  ticksperday: Integer   = 1000 * 60 * 60 * 24;
  ticksperhour: Integer  = 1000 * 60 * 60;
  ticksperminute: Integer = 1000 * 60;
  tickspersecond: Integer = 1000;
var
  t:         Longword;
  d, h, m, s: Integer;
begin
  t := GetTickCount;

  d := t div ticksperday;
  Dec(t, d * ticksperday);

  h := t div ticksperhour;
  Dec(t, h * ticksperhour);

  m := t div ticksperminute;
  Dec(t, m * ticksperminute);

  s := t div tickspersecond;

  Result := 'Läuft seit: ' + IntToStr(d) + ' Tag(e) ' + IntToStr(h) + ' Stunden ' + IntToStr(m) +
    ' Minuten ' + IntToStr(s) + ' Sekunden';
end;

procedure TForm1.WndProc(var Msg: TMessage);
var
  Point: TPoint;
begin
  if Msg.Msg = WM_USER + 20 then
  begin
    case Msg.lParam of
      WM_RBUTTONDOWN:
        begin
          SetForegroundWindow(Handle);
          GetCursorPos(Point);
          PopUpMenu1.PopUp(Point.X, Point.Y);
        end;
      WM_LBUTTONDOWN:
        begin
          //ShowMessage('links runter');
        end;
      WM_LBUTTONDBLCLK:
        begin
          Form1.Show;
          // Icon nur anzeigen wenn Fenster minimiert
          Shell_NotifyIcon(NIM_DELETE, @IconData);
        end;
    end;
  end;
  inherited;
end;

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  if Message.CmdType and $FFF0 = SC_MINIMIZE then
  begin
    Hide;
    // Icon nur anzeigen wenn Fenster minimiert
    Shell_NotifyIcon(NIM_ADD, @IconData);
  end
  else
    inherited;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.ShowMainForm := False; //Programm gar nicht erst anzeigen
  IconData.cbSize := SizeOf(IconData);
  IconData.Wnd := Handle;
  IconData.uID := 100;
  IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
  IconData.uCallBackMessage := WM_USER + 20;
  IconData.hIcon := Application.Icon.Handle;
  IconData.szTip := PChar(UpTime); //Geht nicht
  label1.caption := PChar(UpTime); //Funktioniert Wunderbar
  Shell_NotifyIcon(NIM_ADD, @IconData); // fügt das Icon ein end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Shell_NotifyIcon(NIM_DELETE, @IconData);
end;

end.
Grüße!
Tigerhead

Luckie 1. Feb 2005 16:57

Re: IconData.szTip < Variabel wie ?
 
Verknüpf die Flags mal besser mit or.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr.
Seite 1 von 2  1 2      

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