Einzelnen Beitrag anzeigen

Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#1

NonVCL, Nachrichtenschleife und TrayIcon

  Alt 15. Jun 2003, 12:22
Ich habe mich jetzt mal endlich drangesetzt, um mir mal ein bisschen die NonVCL-Programmierung einzutrichtern. Dazu wollte ich ein kleines Programm schreiben, dass sich nur im TNA befindet. Schwierigkeiten macht mir aber bissher noch die Nachrichtenauswertung und noch ein Problem: Wenn ich das Programm starte, erscheinz zwar das TrayIcon, jedoch verschwindet es wieder, sobald man mit der Maus darüber fährt. Das Programm läuft allerdings noch weiter. Hier der Code:
Delphi-Quellcode:
program FirstStep;
uses
  Windows,Messages,ShellAPI;

var
  msg: TMsg;

function AddTrayIcon: boolean;
var
  IconData: TNOTIFYICONDATA;
begin
  with IconData do
    begin
      cbSize := SizeOf(TNOTIFYICONDATA);
      Wnd := hInstance;
      uID := 1;
      uFlags := NIF_ICON + NIF_TIP;
      hIcon := LoadIcon (0, IDI_APPLICATION);
      szTip := 'Tooltip';
    end;

  Result := Shell_NotifyIcon (NIM_ADD, @IconData);
end;

begin
  if not AddTrayIcon then
    exit;
  while true do
  begin
    if not GetMessage(msg, 0, 0, 0) then
      break;
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
  ExitCode := msg.wParam;
end.
Und wie schon gefragt: Wie kann ich jetzt eigentlich die Nachrichten, die mir die Nachrichtenschleife so fleißig abfängt auswerten bzw. darauf reagieren? Beim den Tuts, in denen ein Fenster erzeugt wurde, gab es eine Prozedur (oftmals names WndProc) deren Addresse beim Erzeugen der Form übegeben wurde.
Kurzum: Ich weiß nicht wie es geht und bitte um Hilfe.
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat