Autor Beitrag
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 20.08.04 17:51 
Moin Leute,
ich habe folgenden Code zum Erzeugen des TrayIcons:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
with trayicon do begin
  //Application.ShowMainForm := False; //Programm gar nicht erst anzeigen
  cbSize := SizeOf(trayIcon);
  Wnd := Handle;
  uID := 100;
  uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
  uCallBackMessage := cWM_TRAYICONCALLBACK;
  hIcon := Application.Icon.Handle;
  szTip := 'Etikettendrucker';
  //Shell_NotifyIcon(NIM_ADD, @trayicon); // fügt das Icon ein end;
  end;

Das TrayIcon wird erst beim Minimieren erzeugt, funktioniert auch (mit dem Auskommmentierten Befehl). Nur, wenn ich jetzt über das TrayIcon fahre, verschwindet es auf einmal. Das ist aber nur der Fall, wenn ich für trayicon.wnd Handle setze, wenn ich Application.Handle setze, funktioniert das.
Das wiederum bringt aber das Problem, dass dann die Klicks nicht mehr korrekt abgefangen werden, da die Message ja an die Applikation geht und nicht mehr an das MainForm.
Wer hat eine Idee? Diesen Code habe ich genau so an mehreren Stellen gefunden :(

P.S.: Das Problem ist sowohl mit, als auch ohne ServicePack 2 vorhanden ;-)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 20.08.04 18:03 
Zu mindest den teil den du hier zeigst ist wohl mein Code aus meinen Code-Snippet / Demo. Und bei mir funktioniert es einwandfrei auch mit dem Handle der Form wie es im Demo steht.
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 20.08.04 18:12 
Ohje.... das kommt davon, wenn man sich an Samples orientiert, die eh nicht richtig sind.

Ich habe eine Anwendung, die einen Optokoppler auslesen soll und da gabs Beispiel-Code dabei. Naja und dort wurde die Variable Handle als LongInt deklariert. Und so kann das natürlich gar nicht funktionieren :(

P.S.: Ja, der Teil kommt von Dir ;-)
MasterT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: Fr 20.08.04 21:43 
Hallo, wenn es nur darum geht das du ein TrayIcon brauchst, empfehle ich dir die LMD Tools. Davon gibts eine Freeware version, die du einsetzen darfst. Schau mal hier nach: www.ceberus.com/lmd/download/index.php3

Die haben eine Komponente mit der du ein TrayIcon machen kannst, und es läuft bei mir bis jetzt super.

Gruß

MasterT
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Sa 21.08.04 12:33 
Das ist eine Auftragsarbeit mit SourceCode-Übergabe. Ich sollte also vermeiden irgendwelche Fremdkomponenten zu verwenden. Es funktioniert ja jetzt auch und für so ein paar Code-Zeilen will ich nicht gleich ne Komponente verwenden ;-)

Trotzdem danke
MasterT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: Sa 21.08.04 13:19 
Die Sachen darf man mit ausliefern...
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 21.08.04 13:21 
Das ist aber schlecht fürs eigene Image, wenn man schon dafür 'ne Komponente braucht. ;-)
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Sa 21.08.04 13:22 
Ja, ich arbeite selbst mit den LMD-Tools. Und daher weiß ich auch, dass man die mitliefern darf. Aber das Programm soll nicht überdimenstioniert werden, das ist der Punkt. Und ich will dem Auftraggeber nicht zumuten, dass er erstmal wieder Komponenten installieren musst, bevor er das Teil kompilieren kann. Nicht wegen den paar Zeilen. ....
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 21.08.04 14:44 
.Chef hat folgendes geschrieben:
Das ist aber schlecht fürs eigene Image, wenn man schon dafür 'ne Komponente braucht. ;-)

So ein Quatsch. Wenn es eine gut gemachte Komponente ist, einfach zu bedienen, alle möglichen Funktionen vorhanden, usw., warum dann selbst die Arbeit machen? Das Image würde eher geschädigt werden, wenn du fehlerhafte Komponenten benutzt oder grottenschlechten Code schreibst (selbst wenn du nur 10 eigene Programmzeilen hast), der irgendwelche Abstürze o.ä. produziert.

Ich weiß, dass du das ironisch gemeint hast. Aber hier musste ich dir einfach mal widersprechen. :)
MasterT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: Sa 21.08.04 14:55 
Ich glaube ich brauche keinem zu beweisen wie toll ich programmieren kann, indem ich mir ein eigenes TrayIcon bastel :) Bei uns ist das so, das wir nicht die Zeit haben uns um solche Sachen zu kümmern. Wenn es für sowas schon fertige Komponenten gibt, dann immer her damit. Dem Anwender ist doch im endeffekt egal was drin steckt, hauptsache es läuft ohne Probleme. Der Anwender kann nicht sehen was du selber gemacht hast und was nicht ;)
Natürlich ist das im Fall von UGrohne etwas anders, wenn man den Quellcode mit ausliefert.
Aber ein Imageverlust ist das mit Sicherheit nicht.
So das musste ich jetzt auch loswerden...

Gruß

MasterT
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 21.08.04 15:01 
Naja, es war so "halbironisch" gemeint. Es stimmt schon, eine gute Komponente hat ihre Vorteile. Ich kenne auch die LMD-Tools nicht, aber für ein TrayIcon würde ich schon aus persönlichem Stolz keine Komponente nehmen. Aber ich bin da manchmal etwas eigen. :D Und wie jeder Programmierer denke ich, dass ich GUTEN Code schreibe. :cool:
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Sa 21.08.04 15:10 
Ich bezweifle, dass ich meistens guten Code schreibe ;-)

Komponenten nehme ich natürlich auch, wo es angebracht ist. Aber was mich dann halt nervt, wenn ich mein WIndows mal wieder neu draufmache, dann brauche ich wieder Ewigkeiten, um die ganzen Komponenten wieder zum Laufen zu bringen, darauf habe ich irgendwie nie LUst ;-)

Irgendwie driftet das Thema ab *g*
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 21.08.04 18:57 
.Chef hat folgendes geschrieben:
Ich kenne auch die LMD-Tools nicht, aber für ein TrayIcon würde ich schon aus persönlichem Stolz keine Komponente nehmen.

Ich würde den TNA-Code zwar auch selbst schreiben, aber das hat weniger mit Stolz zu tun. Mehr mit meinem persönlichen Interesse. Und zugegeben, so umfangreich ist der Code in dem Fall ja auch nicht. Es geht nur ganz einfach ums Prinzip. Mit dem gleichen Argument von wg. Stolz usw. könnte man dann auch jede Komponente selbst nachprogrammieren. Allerdings würde die Produktivität doch enorm darunter leiden.

Zitat:
Aber ich bin da manchmal etwas eigen. :D

Ja, ich auch.

Zitat:
Und wie jeder Programmierer denke ich, dass ich GUTEN Code schreibe. :cool:

Und spätestens bis zum ersten Bug darfst du das auch zurecht denken. ;)
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Sa 21.08.04 19:05 
Auch wenn wir doch sehr OT laufen, aber mir fällt dazu ein suuuper Spruch ein (Quelle weiß ich jetzt nicht, könnte aber Microsoft sein):

MathiasSimmack hat folgendes geschrieben:
Und spätestens bis zum ersten Bug darfst du das auch zurecht denken. ;)

It isn't a bug, it is a feature! :lol:
MasterT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67

Win XP x64, Win 98, Win 2000, Win ME
D6 Prof., Delphi 2006
BeitragVerfasst: So 22.08.04 13:19 
UGrohne hat folgendes geschrieben:
Ich bezweifle, dass ich meistens guten Code schreibe ;-)

Komponenten nehme ich natürlich auch, wo es angebracht ist. Aber was mich dann halt nervt, wenn ich mein WIndows mal wieder neu draufmache, dann brauche ich wieder Ewigkeiten, um die ganzen Komponenten wieder zum Laufen zu bringen, darauf habe ich irgendwie nie LUst ;-)

Irgendwie driftet das Thema ab *g*


Da muss ich dir vollkommen Recht geben.
Es gibt nix schlimmeres als das installieren von allen Komponenten nach einer Neuinstallation :).

Gruß

MasterT
GSE
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 740

Win 2k, Win XP Pro
D5 Prof, D6 Ent, D2k5 PE
BeitragVerfasst: So 22.08.04 16:04 
Zitat:
Auch wenn wir doch sehr OT laufen, aber mir fällt dazu ein suuuper Spruch ein (Quelle weiß ich jetzt nicht, könnte aber Microsoft sein):

MathiasSimmack hat folgendes geschrieben:
Und spätestens bis zum ersten Bug darfst du das auch zurecht denken.

It isn't a bug, it is a feature!
und
Zitat:
If you can't make it good, at least make it look good
(Bill Gates)

mfg
GSE

_________________
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs
and the universe trying to produce bigger and better idiots. So far, the universe is winning. (Richard Cook)
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 22.08.04 16:32 
Diese Binsenweisheit gilt aber auch für viele andere Programme. Oder wie sonst soll ich mir die Fragen nach Skins, XP-Menu, usw. erklären? :mrgreen: Nicht falsch verstehen. Ich habe nichts gegen gut aussehende Programme. Aber manchmal zeigt sich, dass der Fragesteller mit den einfachsten (Achtung, subjektiv!) Problemen schwer zu tun hat - dafür ist aber die Oberfläche schon fertig und total verspielt.
UGrohne Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: So 22.08.04 17:34 
OK, Leute, wenn Ihr darüber weiterdiskutieren wollt, dann trenne ich den Thread ins OT ab, weil jetzt driftet er doch zuuu stark ab ;-)