Ir para conteúdo
Fórum Script Brasil

s3c

Membros
  • Total de itens

    817
  • Registro em

  • Última visita

Tudo que s3c postou

  1. O que ele disse foi que o primeiro AND deve estar junto ao perfil.id e o segundo AND deve estar junto ao #39.
  2. Olá Paulo, parece que 0 bytes ele não cria. você pode criar o arquivo pelo CreateFile: CreateFile(PChar(Caminho2), Generic_Write, 0, nil, Create_Always, 0, 0);
  3. Tente assim: var hIE:THandle; begin hIE := FindWindow('IEFrame', nil); While hIE > 0 do begin PostMessage(hIE, WM_Close, 0, 0); Application.ProcessMessages; hIE := FindWindow('IEFrame', nil); end; end;
  4. s3c

    Problema Sql

    Veja se seu Banco suporta esse SQL: Select id, valor, a.material, b.material, c.material From tbformula Left Join tbmaterial a on (codigo = codigo1) Left Join tbmaterial b on (codigo = codigo2) Left Join tbmaterial c on (codigo = codigo3)
  5. Tente colocar o uses unprofor na interface. Se o frmcadest enxergar o frmprofor deixe o uses na implementation.
  6. No post do erro você faz: frmcadest.edit6.text := ...;E isso está no evento onClick do Bitbtn do Form frmprofor. Esse frmprofor também é um MDIChild ? Como frmprofor enxerga frmcadest ? O uses está na interface ou implementation ?
  7. Seu frmcadest é um MDIChild ? Como você colocou os uses do MDI e MDIChild ? Estão na interface ou implementation ?
  8. Tente fazer: frmcadest.edit6.text := 'Teste';E veja se o erro persiste. Se não, veja se o objeto qrfor está instanciado, se a query está ativa e se o campo codigo é string no banco de dados.
  9. você está num loop infinito; por isso do Stack overflow. Quando você atribui ao FrmPesquisa.ValorRecebido, sua property é write em SetValorRecebido e SetValorRecebido executa BtnSelecionaClick que por sua vez executa novamente SetValorRecebido. Percebeu o lopping ?
  10. Bom, vamos por partes: 1-No Delphi 7 o TClientSocket existe, mas não é instalado automaticamente. Se você quiser instalá-lo veja em: http://bdn.borland.com/article/0,1410,29768,00.html 2-O TTcpClient também funciona; só que seu evento onError não possui a variável ErrorCode; então retire o evento onError que me parece que mesmo desconectado ele não lança a exceção. Veja suas propriedades: RemotHost = 'ftp.uol.com.br' RemotPort = 21 Veja também na guia Events se o evento onConnect aponta para TcpClient1Connect. 3-Fique conectado à rede, tecle F5 no begin de Timer1Timer, tecle F5 no begin de TcpClient1Connect; depois tecle F9 e veja se ele passa pelos dois break-points.
  11. É só tirar o Memo1.Clear que a função de callback vai adicionando no Memo. Quanto ao WebBrowser, acho melhor você utilizar um TClientSocket que no Delphi 6 está na paleta Internet. 1-Configure o TClientSocket: ClientSocket1.Active := false; ClientSocket1.Host := 'ftp.uol.com.br'; ClientSocket1.Port := 21; 2-No evento onConnect você chama a função EnumWindows. 3-No evento onError você deixa ErrorCode := 0; para que não seja lançada uma exceção. 4-Substitua o evento onTimer: procedure TForm1.Timer1Timer(Sender: TObject); begin if ClientSocket1.Active then ClientSocket1.Close; ClientSocket1.Active := true; end;Com isso, quando ocorrer o Timer, se estiver conectado, o Socket gerará o evento onConnect no ftp da UOL e aí a EnumWindows vai adicionando no Memo os endereços das páginas abertas do IE. Se não estiver conectado, não acontece nada.
  12. Olá Paulo, para saber a conexão e desconexão você pode utilizar um TWebBrower e tentar navegar dentro de um timer. Para saber as páginas acessadas, nesse timer você pode acessar o conteúdo da barra de endereços do I.E. pela função de callback do EnumWindows. implementation function Pega_URLs(Hnd:THandle; URLs:TStringList):Boolean; stdcall; // callback var hIE, hIEFilha:THandle; Nome: array[0..255] of Char; begin Result := false; SendMessage(Hnd, WM_GetText, 255, LParam(@Nome[0])); // Acessa o caption hIE := FindWindow('IEFrame', Nome); // Checa se é o IE if hIE = 0 then Exit; hIEFilha := FindWindowEx(hIE, 0, 'WorkerW', nil); // Acessa a barra de ferramentas if hIEFilha > 0 then begin hIEFilha := FindWindowEx(hIEFilha, 0, 'ReBarWindow32', nil); // Acessa a barra de endereços if hIEFilha > 0 then begin hIEFilha := FindWindowEx(hIEFilha, 0, 'ComboBoxEx32', nil); // Acessa o combobox if hIEFilha > 0 then begin SendMessage(hIEFilha, WM_GETTEXT, 255, LParam(@Nome)); // Acesso o texto do combo URLs.Add(Nome); // Adiciona no memo end; end; end; Result := true; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Memo1.Clear; EnumWindows(@Pega_URLs, LParam(Memo1.Lines)); // Dispara a callback Pega_URLs end;Coloque um TMemo no Form. A função de callback não pode ser uma função de objeto; coloque-a somente após a implementation.
  13. s3c

    Como Saber...

    Bom, você deve capturar as msgs do Clipboard através da WndProc e para isto você deve informar ao Windows que sua aplicação também visualizará a área de transferência. procedure WndProc(var Msg:TMessage); override; procedure TForm1.WndProc(var Msg:TMessage); begin inherited; if GetClipboardViewer <> Handle then SetClipboardViewer(Handle); // Informa ao Windows p/ enviar as msgs do Clipboard if (Msg.Msg <> WM_DRAWCLIPBOARD) or not Clipboard.HasFormat(CF_TEXT) then Exit; { Aqui o ClipBoard estará com algum texto copiado } end; Acho que assim deve funcionar.
  14. s3c

    Metodo Locate

    Tente colocar: [loPartialKey, loCaseInsensitive]
  15. Delphi 7 não posso precisar, mas no Delphi 6 está na paleta Additional
  16. No próprio Help que você postou, veja onde ele diz: "allocates ten rows for Ints but no columns" Aloca 10 fileiras para Ints mas sem nenhuma coluna. Então acho que você pode considerar a primeira dimensão como linhas e a segunda como colunas.
  17. Bom, um array of array é uma matriz bi-dimensional. Sempre trabalhei considerando a primeira dimensão como linhas e a segunda como colunas. Se você tiver a mesma quantidade de colunas para todas a linhas, então você pode dar um SetLength(r, 25, 30); então ele terá 25 linhas com 30 colunas em cada linha. Se a quantidade de colunas variar para as linhas, então você terá que fazer um for (ou usar outro código) para a alocar colunas como está no último exemplo onde ele faz um trìângulo alocando colunas conforme o número da linha.
  18. Bom, da forma como está definido, é o que se chama de array estático; ou seja; você está dizendo que seu array possui 30 linhas e cada linha possui 30 colunas. Se você quiser redimensionar seu array, você deve definí-lo como dinâmico: var r:array of array of integer; i:Integer; begin SetLength(r, 31); for i := 0 to 30 do SetLength(r[i], 32); end;O código acima aloca memória para um array de 31 linhas e cada linha possuirá 32 colunhas.
  19. s3c

    Orientado A Objeto

    No Delphi você já programa em OO naturalmente. Quando você diz que utiliza programação orientada a eventos, pelo menos em Delphi, um evento é uma procedure de um objeto; então você está programando em orientação a objetos. Tome como exemplo um evento onClick que é do tipo TNotifyEvent: type TNotifyEvent = procedure (Sender: TObject) of object; Isso quer dizer: 1-É uma procedure de um objeto 2-Sender é o objeto da classe que disparou o evento. Então na definição do evento:procedure TForm1.Button1Click(Sender: TObject);A procedure é da classe TForm1 e o Sender é o objeto que foi instanciado desta classe e disparou o evento.
  20. uses WinSvc; var HSC,HS:THandle; p:PChar; begin HSC := OpenSCManager(nil, nil, SC_Manager_Connect); HS := OpenService(HSC, 'Nome_do_Serviço', SC_Manager_All_Access); p := nil; StartService(HS, 0, p); // starta o serviço sem parâmetros CloseServiceHandle(HS); CloseServiceHandle(HSC); end; Se tiver parâmetros, você tem que colocar o número deles no segundo parâmetro de StartService e no PChar um array de strings terminando com #0 como última string.
  21. uses Printers; Printer.Printers // é um TStrings que contém as impressoras instaladas
  22. Se o Cobol estiver gravando em sua base de dados proprietária (ISAM), primeiro você terá que saber o layout do arquivo para depois poder lê-lo pelo Delphi. Quanto ao formato comp-5, o Delphi pode ler qualquer dado gravado em disco; agora para convertê-lo, você também consegue colocando esse dado num PChar e depois aplicar o(s) comando(s) necessário(s).
  23. s3c

    Comando Select

    você está fazendo: 'select clientes where codigo = :cod' Não seria: 'Select codigo From clientes where codigo = :cod' ? O que é querycodigo ?
×
×
  • Criar Novo...