Autor Beitrag
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: So 15.06.03 12:23 
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:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
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, 000then
      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...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 15.06.03 13:06 
Gast
Gast
Erhaltene Danke: 1



BeitragVerfasst: Mo 23.06.03 23:40 
Es ist übrigens nicht korrekt, daß Windows Nachrichten nur an Fenster schickt (eine solche Nachrichtenschleife würde funktionieren!), es stimmt aber, daß in diesem Fall nur ein Fenster als Nachrichten-Dispatcher registriert werden kann. Deshalb brauchst du eines.