-
Total de itens
864 -
Registro em
-
Última visita
Tudo que Douglas Soares postou
-
Algumas vezes não compila e dá a mensagem Undeclared Identifier xxxxxx, se der essa mensagem passa aqui pra mim ver qual Unit eu esqueci de te falar pra adicionar ai....
-
Boa tarde, to tento outro problema com IDFtp, to ficando doidão dnv :rolleyes: :blink: :wacko: , me ajudem!!!! Eu preencho umas linhas no dbgrid, e ativo uma JvThread, no OnExecute da JvThread eu coloco o comando IDFTP.PUT(origem, destino, false); e então no evento OnFinish eu faço um for e tento iniciar a thread novamente com o proximo arquivo a ser enviado! procedure TfrmPrincipal.threadEnvioFinish(Sender: TObject); var i, a : integer; begin for i := 0 to cdsUpload.RecordCount - 1 do begin if cdsUpload.FieldByName('ESTADO').Value = 1 then begin cdsUpload.Edit; cdsUpload.FieldByName('ESTADO').Value := 2; cdsUpload.Post; end; cdsUpload.Next; end; for a := 0 to cdsUpload.RecordCount - 1 do begin if cdsUpload.FieldByName('ESTADO').Value = 0 then begin cdsUpload.Edit; cdsUpload.FieldByName('ESTADO').Value := 1; cdsUpload.Post; Break; end; cdsUpload.Next; end; origem := cdsUpload.FieldByName('NOMELOCAL').Text; destino := cdsUpload.FieldByName('NOMEREMOTO').Text; threadEnvio.Execute(Self); end; Porém quando ele envia o 1º arquivo e vai começar enviar o segundo ele dá erro de ReadTimeOut sendo que eu coloquei a propriedade ReadTimeOut em 30000, mesmo assim o erro me persegue e não consigo enviar mais de um arquivo sem ter que reiniciar a aplicação :( O que pode estar acontecendo?
-
Besteira minha :P , o IdFTP.Put que eu coloco na thread! ehehe deu certinho o que eu queria, Vlw pela atenção Jhonas Abraços
-
[Dúvida] Inversor de link no delphi
pergunta respondeu ao Coca Cola de Douglas Soares em Delphi, Kylix
Vou dar um exemplo com meu site :P www.mestrerunescape.com.br/protetordelink=p8tD3/em.ergim//:ptth você vai extrair esse migre.me e ao acessar vai redirecionar pra outra url de meu site com protetor de link com outro migre.me, dai você teria q extrair dnv!, é só um exemplo, pois já vi varios sites assim! Obs: não poe esse dominio do meu site no seu programa pois ele não é de filme e n quero sujar ele rssrsr Abraços -
Consegui fazer minhas gambis ^^, agora seguinte, tá travando tudo mesmo com IDAntiFreeze fica dando uns laags, to com preguiça de fazer thread para o IDFtp, tem algum jeito de eu colocar o IDFTPOnWork em um JvThread do JediVcl???
-
[Dúvida] Inversor de link no delphi
pergunta respondeu ao Coca Cola de Douglas Soares em Delphi, Kylix
Porque as vezes essa url do migre.me quando é redireciona ela vai pra outro maldito protetor de link, dai tem q esperar dnv, os caras tão ficando espertos... hehehehe Abraços -
Seu exemplo não funciona comigo pois tenho 2 opções no DbGrid que optei em ativa-las: dgRowSelect e dgAlwaysShowSelection, e essas 2 desativam a opção dgEditing.... daí não acontece nada, o gauge não aparece nem o panel, ehehhe
-
Sim eu li, estou + ou - isso, eu crio um panel em tempo de execução e adiciono um gauge nele em execução também, até aí beleza to conseguindo adicionar até 2 linhas no dbgrid q ele cria gauge... na terceira ele já começa dar acess violation :( Olha o código: procedure TfrmPrincipal.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var DrawState: Integer; DrawRect: TRect; mypanel : TPanel; myprogress : TGauge; i : integer; jaexiste : boolean; begin jaexiste := false; if not cdsUpload.IsEmpty then begin if cdsUpload.FieldByName('PROGRESSO').Value >= 0 then begin if Column.FieldName = 'PROGRESSO' then begin for i := 0 to frmPrincipal.ComponentCount - 1 do begin if TPanel(frmPrincipal.Components[i]).Name = 'mypanel' + cdsUpload.FieldByName('ID').AsString then begin jaexiste := true; Break; end; end; if jaexiste = false then begin ShowMessage('aff'); mypanel := TPanel.Create(frmPrincipal); mypanel.Parent := TabSheet4; mypanel.Name := 'mypanel' + cdsUpload.FieldByName('ID').AsString; mypanel.Left := Rect.Left + DBGrid2.Left + 2; mypanel.Top := Rect.Top + DBGrid2.top + 2; mypanel.Width := Rect.Right - Rect.Left; mypanel.Height := Rect.Bottom - Rect.Top; mypanel.Visible := True; myprogress := TGauge.Create(frmPrincipal); myprogress.Parent := mypanel; myprogress.Name := 'myprogress' + cdsUpload.FieldByName('ID').AsString; myprogress.Align := alClient; end; TGauge('myprogress' + cdsUpload.FieldByName('ID').AsString).Progress := cdsUpload.FieldByName('PROGRESSO').Value; end; end; end; end; Abraços
-
[Dúvida] Inversor de link no delphi
pergunta respondeu ao Coca Cola de Douglas Soares em Delphi, Kylix
Deu certinho, é que tipo, o migre.me é um site redirecionador, qd você acessar essa url ele vai para hotfile, megaupload, rapidshare, etc.... dai você poderia acessar essa url por tras e dps q ele redirecionar você pega a url e poe no edit :D Abraços -
Obs: eu posso ter até 2 IdFTP's no form, e queria que a gauge aparece no registro que estão sendo enviados :) Abraços
-
[Dúvida] Inversor de link no delphi
pergunta respondeu ao Coca Cola de Douglas Soares em Delphi, Kylix
Opa muito bom mas vou dar uma sugestão: Repara esse link: http://teste.info/download/?url=SMqJ2/em.ergim//:ptth Você poderia inverter esse link, extrair somente a URL do migre.me e então acessa-la e extrair a URL que ele converteu ao acessar, e jogar no edit :) Abraços -
Essas 3 funções podem te ajudar: Function ExtractWindowsDir : String; Var Buffer : Array[0..144] of Char; Begin GetWindowsDirectory(Buffer,144); Result := FormatPath(StrPas(Buffer)); End; Function ExtractSystemDir : String; Var Buffer : Array[0..144] of Char; Begin GetSystemDirectory(Buffer,144); Result := FormatPath(StrPas(Buffer)); End; Function ExtractTempDir : String; Var Buffer : Array[0..144] of Char; Begin GetTempPath(144,Buffer); Result := FormatPath(StrPas(Buffer)); End; Para usar é simples: PathToSave := ExtractWindowsDir + '\Hack.dll'; Obs: Faça um teste pra ver se não tem uma barra a mais ali perto do Hack.dll, dê um showmessage e veja: ShowMessage(PathToSave); Abraços
-
Como Faço para aguardar um processo para rodar uma função
pergunta respondeu ao Read de Douglas Soares em Delphi, Kylix
Tenta assim: begin if not FindProcess('game.exe') then begin DeleteFile('hack.dll'); end; end; Abraços -
Boa tarde, estou fazer um sistema de ftp e preciso colocar um gauge em cada campo PROGRESSO que está no DBGrid, nesse campo vou atualizar o valor do progresso de 0 a 100 e o gauge vai pegar esse valor pra si, no entanto gostaria de saber como adicionar os Gauges em tempo de execução nesse dbgrid e como atribuir valor a eles! P.S: se o nome de cada gauge criado fosse "Progresso" + Campo ID do meu CDS (o campo ID é do tipo AutoInc), dai ficava facil pra eu colocar o progress dele! Obrigado!
-
[Dúvida] Inversor de link no delphi
pergunta respondeu ao Coca Cola de Douglas Soares em Delphi, Kylix
Manda o link do programa aí pra gente :P -
Como Faço para aguardar um processo para rodar uma função
pergunta respondeu ao Read de Douglas Soares em Delphi, Kylix
Você pode fazer isso através do componente Timer que fica na paleta System, Adicione ele e deixe enabled como True e vá no events OnTimer e deixe mais ou menos assim: procedure TfrmPrincipal.Timer1Timer(Sender: TObject); var pid: HWND; begin if FindProcess('game.exe') then begin pid:=FindProcess('game.exe'); InjectLibrary(pid, 'hack.dll'); Timer1.Enabled := false; end; end; Abraços -
(Resolvido) Pegar ExitCode do processo
pergunta respondeu ao Douglas Soares de Douglas Soares em Delphi, Kylix
Ahhh consegui! Declarei uma variavel na função chamada ExitCode : DWORD; e então setei um valor nela assim: GetExitCodeProcess(piProcess.hProcess, ExitCode); Daí peguei o exit code e joguei no result :P Vlw pela ajuda Jhonas Abraços -
(Resolvido) Pegar ExitCode do processo
pergunta respondeu ao Douglas Soares de Douglas Soares em Delphi, Kylix
Opa! Transformei em função porem só retorna true, mesmo o erro aparecendo na tela que alguém está usando o processo... ele deveria jogar no dbgrid que deu erro porém ele joga que deu certo pois a função retorna true de qualquer jeito... o que será que tá acontecendo? function TfrmPrincipal.CaptureConsoleOutput(const ACommand, AParameters: String; AMemo: TRichEdit) : Boolean; const CReadBuffer = 2400; var saSecurity: TSecurityAttributes; hRead: THandle; hWrite: THandle; suiStartup: TStartupInfo; piProcess: TProcessInformation; pBuffer: array[0..CReadBuffer] of Char; dRead: DWord; dRunning: DWord; begin saSecurity.nLength := SizeOf(TSecurityAttributes); saSecurity.bInheritHandle := True; saSecurity.lpSecurityDescriptor := nil; if CreatePipe(hRead, hWrite, @saSecurity, 0) then begin FillChar(suiStartup, SizeOf(TStartupInfo), #0); suiStartup.cb := SizeOf(TStartupInfo); suiStartup.hStdInput := hRead; suiStartup.hStdOutput := hWrite; suiStartup.hStdError := hWrite; suiStartup.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; suiStartup.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(ACommand + ' ' + AParameters), @saSecurity, @saSecurity, True, NORMAL_PRIORITY_CLASS, nil, nil, suiStartup, piProcess) then begin repeat dRunning := WaitForSingleObject(piProcess.hProcess, 100); Application.ProcessMessages(); repeat dRead := 0; ReadFile(hRead, pBuffer[0], CReadBuffer, dRead, nil); pBuffer[dRead] := #0; AMemo.Lines.Add(String(pBuffer)); until (dRead < CReadBuffer); until (dRunning <> WAIT_TIMEOUT); CloseHandle(piProcess.hProcess); CloseHandle(piProcess.hThread); if (dRunning <> WAIT_TIMEOUT) and (dRunning = 0) then result := true else result := false; end; CloseHandle(hRead); CloseHandle(hWrite); end; end; -
(Resolvido) Pegar ExitCode do processo
pergunta respondeu ao Douglas Soares de Douglas Soares em Delphi, Kylix
CaptureConsoleOutput('iscc "C:\Script.iss"', ''; RichEdit1); ISCC é o o compilador do inno setup. http://www.downloadatoz.com/utility_direct...ilercmdline.htm Pra testar é só abrir um script e colocar pra compilar e em seguida colocar pra compilar no delphi pra simular o erro, queria dar uma mensagem no delphi quando ele der erro, o erro seria que o processo já está sendo usado, porém não consigo saber isso através dessa função. Abraços -
Get FTP com atualização de Gauge congela a aplicação
pergunta respondeu ao Luciano Umbelino de Douglas Soares em Delphi, Kylix
Sofri com o mesmo problema, veja esse post: http://scriptbrasil.com.br/forum/index.php...thread+travando Abraços -
Bom dia pessoal, utilizo essa procedure para executar comandos de MS-DOS e joga-los num RichEdit, porém eu preciso gravar um log num dbgrid dizendo se a função foi executada corretamente ou não... gostaria de obter tipo um código 0 pra falso ou 1 pra true, como faço isso? procedure TfrmPrincipal.CaptureConsoleOutput(const ACommand, AParameters: String; AMemo: TRichEdit); const CReadBuffer = 2400; var saSecurity: TSecurityAttributes; hRead: THandle; hWrite: THandle; suiStartup: TStartupInfo; piProcess: TProcessInformation; pBuffer: array[0..CReadBuffer] of Char; dRead: DWord; dRunning: DWord; begin saSecurity.nLength := SizeOf(TSecurityAttributes); saSecurity.bInheritHandle := True; saSecurity.lpSecurityDescriptor := nil; if CreatePipe(hRead, hWrite, @saSecurity, 0) then begin FillChar(suiStartup, SizeOf(TStartupInfo), #0); suiStartup.cb := SizeOf(TStartupInfo); suiStartup.hStdInput := hRead; suiStartup.hStdOutput := hWrite; suiStartup.hStdError := hWrite; suiStartup.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; suiStartup.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(ACommand + ' ' + AParameters), @saSecurity, @saSecurity, True, NORMAL_PRIORITY_CLASS, nil, nil, suiStartup, piProcess) then begin repeat dRunning := WaitForSingleObject(piProcess.hProcess, 100) ; Application.ProcessMessages(); repeat dRead := 0; ReadFile(hRead, pBuffer[0], CReadBuffer, dRead, nil); pBuffer[dRead] := #0; AMemo.Lines.Add(String(pBuffer)); until (dRead < CReadBuffer); until (dRunning <> WAIT_TIMEOUT); CloseHandle(piProcess.hProcess); CloseHandle(piProcess.hThread); end; ShowMessage(); CloseHandle(hRead); CloseHandle(hWrite); end; end; Abraços
-
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Douglas Soares em Delphi, Kylix
Me informei e o progress bar só aceita valores do tamanho de um campo integer, ou seja de -2147483648 até 2147483647, no entanto se estiver usando um while recomendo que sete o min para 0 e 100 e vá incrementando o progress bar até terminar a query.... Abraços -
Erro com o componente ZipMaster
pergunta respondeu ao Antonio Pasqualli de Douglas Soares em Delphi, Kylix
Veja se algum desses posts te ajuda: http://scriptbrasil.com.br/forum/index.php...hlite=zipmaster Abraços -
[Dúvida] TProgressBar Property out of range
pergunta respondeu ao Rmpjunior de Douglas Soares em Delphi, Kylix
A ProgressBar aceita números grandes desde que o Max dele esteja com um número maior que o que está passando! Abraços -
Tente com Exit... procedure TOrca.Edit1Exit(Sender: TObject); begin if RadioGroup1.Focused then Exit; edit1.text := dm.sqlclientenome.asstring; end; Abraços