26. august 2002 - 23:18Der er
13 kommentarer og 1 løsning
opdag en ændring i .txt fil
er det muligt at få en program til at opdage at en .txt fil er blevent opdateret.
eks. jeg ændre bla.txt med notepad og med det samme jeg gemmer den så fortæller mit program mig (som køre i baggrunden) og filen er blevent ændret og loader den nye version af filen ind i sig igen.
Den rigtige løsning er at scanne efter directory ændringer i en tråd vha. findFirstNotify (tror jeg nok den hedder) any way. på Borrisholt.com er der et færdigt eksempel ...
hmm, du kunne også, i stedet for timeren, tjekke hver gang programmet blive aktiveret for filændringen er som regelsket efter brugeren har været i forbindelse med et andet program! og får alligevel først beskeden efter han har aktiveret dit program igen!!
Oki! :) Du skrev dog altid som i... øhhh, altid... :)
Nå, du har alligevel mere styr på det end mig, så jeg tror da på dig, og vil også give dig helt ret!!! Timere er ofte (ikke altid) forkerte!
Hvis man f.eks. skal lave en ClipBoard holder, så bør man ikke køre en OnTimer der tjekker om sidste indholdet af clipboardet er det samme som før... Her ville en WM være bedre... Dog er det for n00b'en (og forløbig også for mig der ikke forstår mig så meget på API-kald og Windows Messages) lettere og mere overskueligt at bruge en timer! :)
procedure TForm1.WMCHANGECBCHAIN(var Message: TMessage); begin if Message.WParam = NextHandle then begin NextHandle := Message.LParam; end else begin SendMessage(NextHandle, WM_CHANGECBCHAIN, Message.WParam, // handle of window to remove Message.LParam); // handle of next window end; end;
procedure TForm1.WMDRAWCLIPBOARD(var Message: TMessage); var Data: THandle; Size: Integer; NewData : Pchar; begin Data := ClipBoard.GetAsHandle(CF_TEXT); if Data = 0 then Exit;
try Size := GlobalSize(Data); getMem(NewData, Size ); ClipBoard.GetTextBuf(NewData, Size ) finally // Free the pointer to the memory block. GlobalUnlock(Data); end;
>>borrisholt Det er tydeligt at se hvorfor du ligger øverst i Delphi-kategorien! 100% respekt! :)
Som sagt, jeg har ikke meget forstand på Windows Messages, men så kan jeg jo heldigvis søge hjælp her!!! ;)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.