| Autor |
Beitrag |
kiwicht
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Fr 21.02.03 12:58
Hallöchen,
ich hab im SwissDelphiCenter folgenden QuellCode gefunden, und mir gedacht, ich kopier den bei mir einfach in eine neue App rein, benutze einfach bei mir die gleichen Bezeichner, und ab geht die Luzi.
Denkste! Das Prog strotz nämlich nur so vor Fehlermeldungen.... kann mir einer n Tipp geben, was ich zu beachten hab?
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: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181:
|
unit TNA;
interface
uses Windows, Messages, SysUtils, Classes, Controls, Forms, ExtCtrls, ShellApi, Menus;
const k_WM_TASKMSG = WM_APP + 100; type TForm1 = class(TForm) TPopupMenu1: TPopupMenu; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDblClick(Sender: TObject); procedure PopupMenuClick(Sender: TObject); private tTNA: TNotifyIconData;
procedure WMTaskMsg(var Msg: TMessage); message k_WM_TASKMSG; procedure AppActive; procedure AppDeactivate; procedure ShowIcon; procedure ChangeIcon;
public end;
var Form1: TForm1;
implementation
{$R *.DFM} {$R TNA.RES}
procedure TForm1.FormCreate(Sender: TObject); begin Application.ShowMainForm := False;
Self.ShowIcon; end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Shell_NotifyIcon(NIM_DELETE, @tTNA); end;
procedure TForm1.FormDblClick(Sender: TObject); begin Self.AppDeactivate;
Self.ChangeIcon; end;
procedure TForm1.PopupMenuClick(Sender: TObject); begin case TPopupMenu(Sender).Tag of
end; end;
procedure TForm1.WMTaskMsg(var Msg: TMessage); var rCursor: TPoint; begin if Msg.wParam = tTNA.uID then begin case Msg.lParam of
WM_RBUTTONDOWN: begin GetCursorPos(rCursor);
SetForegroundWindow(Self.Handle);
TPopupMenu1.Popup(rCursor.x, rCursor.y); end;
WM_LBUTTONDBLCLK: Self.AppActive; end; end; end;
procedure TForm1.AppActive; var hOwner: THandle; begin SendMessage(Self.Handle, WM_SYSCOMMAND, SC_RESTORE, 0); ShowWindow(Self.Handle, SW_SHOW); SetForegroundWindow(Self.Handle);
hOwner := GetWindow(Self.Handle, GW_OWNER); SendMessage(hOwner, WM_SYSCOMMAND, SC_RESTORE, 0); ShowWindow(hOwner, SW_SHOW); end;
procedure TForm1.AppDeactivate; begin ShowWindow(Self.Handle, SW_HIDE);
ShowWindow(GetWindow(Self.Handle, GW_OWNER), SW_HIDE); end;
procedure TForm1.ShowIcon; begin tTNA.cbSize := SizeOf(tTNA); tTNA.Wnd := Self.Handle; tTNA.uID := 24112000; tTNA.uCallbackMessage := k_WM_TASKMSG; tTNA.hIcon := LoadIcon(hInstance, 'xxx'); StrCopy(tTNA.szTip, 'Hallo'); tTNA.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; Shell_NotifyIcon(NIM_ADD, @tTNA); end;
procedure TForm1.ChangeIcon; begin tTNA.cbSize := SizeOf(tTNA); tTNA.hIcon := LoadIcon(hInstance, 'yyy'); StrCopy(tTNA.szTip, 'Welt'); Shell_NotifyIcon(NIM_MODIFY, @tTNA); end;
end. |
mfg
kiwicht
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 21.02.03 13:11
Ob du es glaubst oder nicht. Aber es wäre wesentlich hilfreicher, wenn du uns sagen würdest, was bei dir nicht geht, was für Fehlermeldungen kommen und wenn du uns mal deinen fehlerhaften Code zeigen würdest.
Einen Automechaniker nützt es auch sehr wenig, wenn du mit dem Auto deiner Frau in die Werkstatt kommst und denen sagst: "Das ist jetzt das Auto meiner Frau, aber an meinem geht die Lichtmaschine nicht mehr. Könnten sie sich das mal bitte ankucken?".
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 21.02.03 13:23
In meiner Eigenschaft als normaler Benutzer dieses Forums, der keinerlei Admin- oder Moderatorenrechte hat, würde ich dich bitten, solche Fragen künftig bitte in dem jeweiligen Forum zu stellen. Was soll´s bringen, wenn wir z.B. hier die Fehler aus anderen Foren ausmerzen. Davon haben die Mitglieder dort nicht viel.
Ich schlage also vor, du wendest dich an die Betreiber des SwissDelphiCenter und verweist auf die Fehler in dem Beitrag, zu denen ich dir hiermit die Lösungen anbiete:
Quelltext 1:
| procedure TForm1.ShowIcon(ID: Integer); |
ersetzen durch
Quelltext 1:
| procedure TForm1.ShowIcon; |
da die "ID" nicht gebraucht wird. Das gilt auch für den Eintrag im private-Teil der Form.
Quelltext
Semikolon ergänzen!
Quelltext 1:
| TPopupMenu1.Popup(rCursor.x, rCursor.y); |
Kein echter Fehler! Beim Einfügen einer TPopupMenu-Komponente heißt diese allerdings standardmäßig nur "PopupMenu1". Falls dein Compiler hier meckert, dann nimm aus dem Quellcode das T am Anfang raus. Oder nenn deine Komponente entsprechend!
| Zitat: | | (Vorbemerkung zu "TNA": damit ist der "Task Notificytion Area" gemeint.) |
Eigentlich heißt es Taskbar Notification Area, aber egal ... ´s ist ja ohnehin nur ein Kommentar im Quellcode. 
|
|
kiwicht 
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Fr 21.02.03 13:42
asche auf mein haupt.
@Luckie:
Du hast natürlich recht, mein Fehler, weiß selber auch nicht warum ich mir diesmal die Fehlermeldungen ausgespart habe...
@MathiasSimmack
erstmal danke für die Hinweise. und auch du hast recht.
natürlich gehören fragen zu tutor´s und faq´s auf die dazugehörige seite. da ich aber in diesem forum ein sehr positive meinung von der kompetenz der mitglieder habe, und da meine fragen zu faq´s im swissdelphicenter so gut wie noch nie beantwortet wurden, dacht ich mir, frag ich halt hier mal nach.
Ich werd aber eure Kritik bezüglich meines PostingVerhaltens ernst nehmen, und versuchen solche FauxPas demnächst zu vermeiden...
in jedem Fall vielen Dank für die Lösungsansätze, ich teste die mal aus, und dann sehn wa weiter..
mfg
kiwICht
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 21.02.03 19:00
| Zitat: | | Ich werd aber eure Kritik bezüglich meines PostingVerhaltens ernst nehmen, ... |
Es geht doch nicht um dein Postingverhalten. Das ist (denke ich) okay. Es geht nur um den Sinn. Stell dir vor, fehlerhafte Lösungen aus dem DF werden im SwissDelphiCenter oder in der Delphi-Praxis korrigiert. Das wüssten dann auch nur die Leute, die sowohl hier als auch dort aktiv sind. Alle anderen haben nichts davon und ärgern sich mit einer fehlerhaften oder einem unvollständigen Posting herum.
Notfalls setze dich mit dem Autoren des o.g. Quellcodes in Verbindung. Vielleicht ändert der sein Posting ja.
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Fr 21.02.03 19:46
| MathiasSimmack hat folgendes geschrieben: |
| Zitat: | | (Vorbemerkung zu "TNA": damit ist der "Task Notificytion Area" gemeint.) |
Eigentlich heißt es Taskbar Notification Area, aber egal ...
|
Das dachte ich auch schon. Dieser Versuch sich unter seinen Programmiererkollegen mit Fremdwörtern zu profilieren, ging wohl mächtig in die Hose. Ich habe jedenfalls geschmunzelt, schon mit mittelmäßigen Englischkenntnissen wäre dieser Fehler nicht passiert.
Also Mathias, go for it  und zeig' ihm wo der Hammer hängt!
Gruß,
Markus
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 21.02.03 20:26
No, that's not my f.cking business.
Das soll kiwicht regeln. Ich bin kein Mitglied im SwissDelphiCenter. 3 Foren reichen ja auch.
|
|
toms
      
Beiträge: 1099
Erhaltene Danke: 2
|
Verfasst: Fr 21.02.03 20:29
| Zitat: | | Das dachte ich auch schon. Dieser Versuch sich unter seinen Programmiererkollegen mit Fremdwörtern zu profilieren, ging wohl mächtig in die Hose. |
War wohl nur ein Tippfehler. Sag ja auch nichts, wenn du ein Komma vergisst...*g*
|
|
DaFox
      
Beiträge: 189
|
Verfasst: Sa 22.02.03 06:08
| MathiasSimmack hat folgendes geschrieben: |
No, that's not my f.cking business.
|
Hehe, überredet!
| MathiasSimmack hat folgendes geschrieben: |
3 Foren reichen ja auch.
|
A propos 3 Foren, du hast mir immernoch nicht meine (Nachtrag-)Frage beantwortet ( www.delphi-forum.de/viewtopic.php?t=6900)
Gruß,
Markus
PS: Was? Ich? Ein Komma vergessen?
PPS: Deshalb gebe ich ja auch mit meinem Englisch an, dort brauchst Du nie ein Komma setzen und trotzdem ist alles richtig! 
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 22.02.03 09:42
| DaFox hat folgendes geschrieben: | | A propos 3 Foren, du hast mir immernoch nicht meine (Nachtrag-)Frage beantwortet: |
| Zitat: | Nachtrag: @Mathias: EE?  |
Yo! - wenn du damit "experts-exchange" meinst (oder wie die heißen). Da bin ich zwar kein Mitglied, aber Google hilft weiter. 
|
|
kiwicht 
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Mo 24.02.03 10:01
bezüglich des TNA-Tippfehlers:
Ich möchte meinen, der Autor hat diesen Fehler ausgemerzt? Jedenfalls steht da jetzt, linguistisch so gut wie perfekt: Notification... soviel dazu.
Ich für meinen Teilen werde mich dann erstmal reuevoll an den Autor direkt wenden, bedanke mich aber trotzdem für eure Aufmerksamkeit..
mfg idS
kiwicht
|
|
|