Aee pessoal de plantão, to precisando usar Threads no Delphi... o que tá acontecendo é o seguinte...
na aba Samples dp Delphi tem um componente que se chama ShellChangeNotifier, com ele é possível monitorar alterações em arquivos do diretório configurado na propriedade Root do objeto. Bom, eu tenho uma lista de diretórios que eu preciso monitorar(isso é um cadastro, intão a qtd de diretórios pode variar), como essa quantidade de diretórios é variável eu preciso criar em run-time... tipo assim, fazer um loop até o fim da tabela e ir criando vários ShellChangerNotifier pra cada registro. até ai susu, eu consigo criar tranquilamente, crio tantos objetos ShellChangerNotifier quanto precisar. o problema é que eu também preciso identificar em qual diretório houve a alteração do arquivo, pra isso eu precisaria criar no evento 'onChange' de cada objeto um função que me retornasse em qual diretório houve alteração. ai eu pensei, bom, é so acessar o evento onChange de cada objeto que eu estiver criando em run-time e assossiar uma procedure ou function,maravilha acho que é por ai mesmo. só que o feladaputa pede que a function retorne um tipo TThreadMethod, eu até criei uma function com esse retorno(como vc´s podem ver no código abaixo só que ele só executa uma vez depois não faz mais nada) segue o código abaixo... unit ShellChangeNotify; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ComCtrls, ImgList, ShellCtrls, Mask, DBCtrls, DB, ADODB, Func,ThreadShellChangeNotify,Buttons, Menus, ToolWin; type TShell = class of TShellChangeNotifier; function CreateControl(ControlClass: TShell; const Machine,PathRoot: string): TShellChangeNotifier; function PushTheButton(ControlClass: TShellChangeNotifier):TThreadMethod; {Private Declarations} implementation uses fEditor, fReadablesFiles, fUnreadablesFiles, DbConfigure,fDatabase; function CreateControl(ControlClass: TShell; const Machine,PathRoot: string): TShellChangeNotifier; begin Result := ControlClass.Create(Database); with Result do begin //nomeando objeto Name := 'Shell' + Machine; //Atribuindo caminho Root := PathRoot; //Ativação dos Filtros NotifyFilters:=[ nfFileNameChange, nfDirNameChange, nfAttributeChange, nfSizeChange, nfWriteChange, nfSecurityChange ]; WatchSubTree:=false; //definindo ação padrão para todos os objetos criados Result.OnChange:=PushTheButton(Result); end; end; function PushTheButton(ControlClass: TShellChangeNotifier):TThreadMethod; begin ShowMessage('Nome Controle :' + ControlClass.Name); ShowMessage('Alteração em :' + ControlClass.Root); end; end. Anderson Rio Claro-SP [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html