16. maj 2006 - 22:49Der er
34 kommentarer og 1 løsning
SysTray.pas
Jeg har fundet tilføjet SysTray.pas til min program men problemet er jeg ikke kan få det til at virke hvad skal jeg skrive for at få den til at lægge sit ned i system bakken?
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
CoolTrayIcon er et komponent som du installerer i Delphi. Derefter tilføjer du bare CoolTrayIcon til dit program som enhvert andet komponent (Edit, Label osv.). Der er ikke noget der skal kopieres over i dit prjekt.
jamen hvis jeg gør sådan får jeg denne fejl "Cannot Find resource file: C:\Documents and Settings\nigo01\Dokumenter\Delphi\Componenter\CoolTrayIcon\CoolTrayIcon_D5.res. Recreated" når jeg prøver at installere
Man bhøver kun sende RES-filen/filer med hvis man selv har data gemt deri (ikoner, lydfiler eller lignende) som skal med i ... er det BPL-filen?
Den advarsel (det er ikke en fejl) betyder ikke meget. Måske er det faktisk en bekræftelse på, at installationen er forløbet korrekt. Udviklere undlader tit at sende RES-filerne med og så laver Delphi dem efter behov. Det kunne tyde på at komponenten er installeret.
Den er klart bedre end de tidligere versioner, D2006'eren, også selvom D7 sandsynligvis er mere stabil. Den er pakket med mange "sjove" funktioner. At den kan ASP.NET, C#, C++ og Delphi under et, er ret imponerende.
En fuldt funktionsbar studenterversion koster 1000 og de penge er godt givet ud. Man får programmet på en skive og man kan hente opdateringe fra Borland (hvorfra der tankevækkende nok allerede er 2). Det er sikkert muligt at man kan hente en tidsbegrænset trial.
Tilbage til dit spørgsmål. Er du sikker på, at komponenten ikke er blevet installeret i din D7'er? Hvis den er, så er der ikke grund til at overveje D2006 - andet end at det er en god version (modsat D2005).
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_F1 : Form1.ClientHeight := 95; VK_ADD : if Form1.AlphaBlendValue < 255 then Form1.AlphaBlendValue := Form1.AlphaBlendValue +1; VK_SUBTRACT : if Form1.AlphaBlendValue > 0 then Form1.AlphaBlendValue := Form1.AlphaBlendValue -1; else Form1.ClientHeight := 60; end; SkrivIni; end;
function TForm1.AntalInstanser: Integer; // Denne rutine behøver 'TlHelp32' medtaget i USES. var exeName: string; proc: PROCESSENTRY32; hSnap: HWND; Looper: BOOL; Antal: Integer; exe: String; begin exe := LowerCase(ExtractFileName(Application.ExeName)); Antal := 0; // Antal gange dette program er startet. proc.dwSize := SizeOf(Proc); hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPALL,0); Looper := Process32First(hSnap,proc); while Integer(Looper) <> 0 do begin exeName := LowerCase(ExtractFileName(proc.szExeFile)); if (exeName = copy(exe, 1, length(exeName))) then Antal := Antal + 1; // Bemærk at w2k klipper derfor dette Looper := Process32Next(hSnap,proc); end; CloseHandle(hSnap); AntalInstanser := Antal; end;
procedure TForm1.FormCreate(Sender: TObject); begin if AntalInstanser > 1 then // Det er ikke tilladt at starte mere end 1 begin // instans af programmet på den samme pc. Application.Terminate; end; with TrayIconData do begin cbSize := SizeOf(TrayIconData); Wnd := Handle; uID := 0; uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; uCallbackMessage := WM_ICONTRAY; hIcon := Application.Icon.Handle; StrPCopy(szTip, Application.Title); end; Shell_NotifyIcon(NIM_ADD, @TrayIconData); Form1.Show; end;
procedure TForm1.FormDestroy(Sender: TObject); begin Shell_NotifyIcon(NIM_DELETE, @TrayIconData); end;
procedure TForm1.TrayMessage(var Msg: TMessage); begin case Msg.lParam of WM_LBUTTONDOWN : Form1.Show; WM_RBUTTONDOWN : Form1.Hide; end; end;
procedure TForm1.FormShow(Sender: TObject); begin // Fjern program ikon fra process linien. ShowWindow(Application.Handle, SW_Hide); end;
procedure TForm1.FormPaint(Sender: TObject); begin SkrivIni; end;
Det ville være lidt lettere at få CoolTrayIcon til at virke (prøv evt. at læse installationsvejledningen grundigt igen), for så det så let som nedenstående:
Så længe komponentet ikke er installeret korrekt, så vil demoerne naturligvis heller ikke virke :)
Men du må da få en anden fejl en den med .res filen, for det er jo som sagt ikke nogen decideret fejl. I hvert fald ikke en der gør at komponentet ikke vil virke!
Nu har jeg installeret den (i delphi7) og det gik lige efter bogen:
Hentede filen og pakkede den ud i c:\programmer\borland\delphi7\CoolTray Via project fandt jeg CoolTrayIcon_D6plus.dpk som også virker til D7 Trykkede ok til at oprette den manglende res-fil Først compilerede jeg og dernæst trykkede jeg på install Sidst gik jeg ind i "Tools/Environment options/Library" og indsatte ovenstående sti i "Library Path"
Oprettede nyt projekt og smækkede komponenten på. En af de mindst problematiske komponentinstallationer jeg har lavet (Prøv med en Quick Report opdatering så skal dit hår nok blive gråt!)
Jeg håber der er noget i min beskrivelse som du har overset - for der er næsten ikke anden forklaring.
Jeg åbner delphi7 og vælger åben Her finder jeg så ind til filen 'CoolTrayIcon_D6plus.dpk' i 'C:\Programmer\Borland\Delphi7\CoolTray' når jeg så vælger åben kommer denne fejl "Cannot find resource file: C:\Programmer\Borland\Delpgi7\CoolTray\CoolTray\CollTrayIcon_D6plus.res.", her trykker jeg så 'OK'
Jeg får så mulighed for at compile, og derefter trykker jeg på 'Install', og så kommer denne fejl "Cannot load package 'CoolTrayIcon_D6plus.' It contains unit 'RegisterTrayIcons,'which is also contained in package 'CoolTrayIcon_D5'"
Det forklarer jo en del. Du har taget den dpk-fil til Delphi 5. Nu skal den afinstalleres før du kan komme videre. I Delphi vælger du File/Close all. Dernæst Project/Options. Under packages finder du komponenten (hvis den er der - jeg vil ikke ødelægge min D7'er for at teste det :-)) og vælger remove. Så tror jeg den er væk.
Desuden: Luk D7 og søg efter CoolTrayIcon_D5plus.bpl og CoolTrayIcon_D5plus.dcp. Hos mig er stieen "C:\Programmer\Borland\Delphi7\Projects\Bpl". Slet dem og start Delphi igen. Nu prøver den (måske) at hente pakken, kan ikke finde den og spørger om den skal søge efter pakken for eftertiden. Svar nej.
Unva: Det er D6'eren der skal installeres. I dit indlæg kl. 8.31.44 beskrev du en fejlmeddelelse der betyder, at du har installeret den forkerte version - og så virker det jo ikke. Jeg savner ikke pointsene, men er nærmest lidt irriteret over, at du ikke retter fejlen men vælger en anden løsning, nu hvor du får det serveret.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.