Ir para conteúdo
Fórum Script Brasil

jaumDoDelphi

Membros
  • Total de itens

    119
  • Registro em

  • Última visita

Tudo que jaumDoDelphi postou

  1. Boa dia Jhonas, obrigado pela ajuda. Mas desculpe minha ignorância onde eu coloco este codigo? seria na propriedade ModifySQL do componente TIBUpdateSQL??? ;) ou no botão GRAVAR?
  2. Olá galera beleza! Primeiramente gostaria de pedir desculpas porque a duvida e curta, mas resolvi postar o problema bem detalhada! Estou com problemas para salvar um item Editado/Alterado. Segue os componentes, OS e etc... W7PRO 64bits notebook HP-DV6500 Delphi 2010 + FireBird 2.5.0 (64x) Componente de conexão aba "InterBase" TIBDatabase, TIBTransaction, TIBQuery, TIBUpdateSQL. O banco é simples, como estou utilizando para aprendizado tenho apenas 3 campos COD/NOME/TEL Consigo linkar na minha maquina "servidor do db" e em outras maquinas clientes com o FireBird Instalado. as funções Incluir, Excluir esta tudo ok. a imagem a baixo esta as configurações básicas. IMAGE SHACKS acompanhei o video deste camarada no youtube http://www.youtube.com/watch?v=q9vnuhYV9Hs Com a video aula dele funcionou bem, mas no video ele n edita as entradas. apenas inclui e deleta. abaixo o codigo do form {$R *.dfm} procedure TfCLI.btnCANCELClick(Sender: TObject); begin DM.IBQuery1.Cancel; DBGrid1.SetFocus; end; procedure TfCLI.btnDELClick(Sender: TObject); begin DM.IBQuery1.Delete; end; procedure TfCLI.btnEDITClick(Sender: TObject); begin DM.IBQuery1.Edit; DBEdit2.SetFocus; end; procedure TfCLI.btnNEWClick(Sender: TObject); //NEW begin DM.IBQuery1.Append; DBEdit2.SetFocus; btnSAVE.Default := true; end; procedure TfCLI.btnSAVEClick(Sender: TObject); begin DM.IBQuery1.Post; //DM.IBQuery1.Close; //DM.IBQuery1.Open; DBGrid1.SetFocus; btnSAVE.Default := false; end; procedure TfCLI.FormClose(Sender: TObject; var Action: TCloseAction); begin DM.IBQuery1.Active := false; DM.IBDataBase1.Connected := false; DM.IBTransaction1.Active := false; Action := caFree; end; procedure TfCLI.FormShow(Sender: TObject); begin DM.IBDataBase1.Connected := true; DM.IBTransaction1.Active := true; DM.IBQuery1.Active := true; end; O Problema acho que esta no componente TIBUpdateSQL. // Propriedade delete delete from "CLIENT" where "CLIENT"."COD" = :"OLD_COD" and "CLIENT"."NOME" = :"OLD_NOME" and "CLIENT"."TEL" = :"OLD_TEL" // Propriedade Insert insert into "CLIENT" ("CLIENT"."COD", "CLIENT"."NOME", "CLIENT"."TEL") values (:"COD", :"NOME", :"TEL") // Propriedade Modify update "CLIENT" set "CLIENT"."COD" = :"COD", "CLIENT"."NOME" = :"NOME", "CLIENT"."TEL" = :"TEL" where "CLIENT"."COD" = :"OLD_COD" and "CLIENT"."NOME" = :"OLD_NOME" and "CLIENT"."TEL" = :"OLD_TEL" abaixo todo o codigo e o banco! "se alguém tiver tempo peço que porfavor analize" EASY SHARE Então voltando ao form quando Aperto para editar OK, você edita os campos e quando mando salvar ele me retorna a seguinte mensagem "Update Failed." já cansei de procurar no google, e no próprio forum vi que quase ninguém aqui utiliza o InterBase. :( Um grande abraço a todos e agradeço desde já! :D
  3. [RESOLVIDO] Testei HJ o codigo para compactar/limpar DB MSACCESS! Funcionou perfeitamente ;) uma grande abraço!
  4. Boa tarde Jhonas RESOLVIDO! obrigado pela dica do site, nele tem mta explicação consegui preencher o campo de BUSCA de filmes. Mas dai vem outro problemas, Para clicar no OK "SUBMIT" tentei varias formas mas, nada funciona só da erro de ACCESS VIOLATION, foi dai que li no site que como hj em dia algumas pessoas agem de má-fe, isso fez com que acaba-se prejudicando mtas pessoas do mundo da programação. Simplificando como tem uns :angry: Topeiras :angry: que fazem BOT para lagar os sites alheios. Quase nenhum site mais permite tal comando para dar o OK em formularios na WEB. Mas beleza, Pelomenos agora o meu programa já manda o nome do filme no campo de procura e so vou ter que apertar o OK mesmo! vlwz e um abraço a todos! :P
  5. Acho que achei uma solução, mas por algum motivo o delphi XE não compila. segue abaixo o codigo: uses SHDocVw, ActiveX, MSHTML; function GetFormByNumber(document: IHTMLDocument2; formNumber: integer): IHTMLFormElement; var forms: IHTMLElementCollection; begin forms := document.Forms as IHTMLElementCollection; if formNumber < forms.Length then result := forms.Item(formNumber,'') as IHTMLFormElement else result := nil; end; procedure SetFieldValue(theForm: IHTMLFormElement; const fieldName: string; const newValue: string; const instance: integer=0); var field: IHTMLElement; inputField: IHTMLInputElement; selectField: IHTMLSelectElement; textField: IHTMLTextAreaElement; begin field := theForm.Item(fieldName,instance) as IHTMLElement; if Assigned(field) then begin if field.tagName = 'INPUT' then begin inputField := field as IHTMLInputElement; if (inputField.type_ <> 'radio') and (inputField.type_ <> 'checkbox') then inputField.value := newValue else inputField.checked := (newValue = 'checked'); end else if field.tagName = 'SELECT' then begin selectField := field as IHTMLSelectElement; selectField.value := newValue; end else if field.tagName = 'TEXTAREA' then begin textField := field as IHTMLTextAreaElement; textField.value := newValue; end; end; end; procedure TForm1.Button1Click(Sender: TObject); var document: IHTMLDocument2; theForm: IHTMLFormElement; index: integer; begin document := TWebBrowser.Document as IHTMLDocument2; theForm := GetFormByNumber(WebBrowser.Document as IHTMLDocument2,0); SetFieldValue(theForm,'title','Back to the Future'); end; a parte que exibe o erro e não compila o projeto e justamente nesta linha document := TWebBrowser.Document as IHTMLDocument2; [DCC Error] Unit1.pas(83): E2233 Property 'Document' inaccessible here [DCC Error] Unit1.pas(83): E2015 Operator not applicable to this operand type Como o codigo acima diz, DOCUMENT inacessível aqui e Operador não aplicavel para este tipo de operação. alguém sabe como resolver ou alguma luz? agradeço desde já! ^_^
  6. Ola a todos, primeira mente quero pedir desculpas por Reabrir um POST meio antigo! Estou começando a utilizar este componente TWebBrowser na minha aplicacao em delphi2010. O que mais tenho no momento são duvidas. Consegui fazer um navegador baseado no IE8 e funciona bem, com funções basicas. Ate ai beleza. Passei a utiliza o TWebBrowser no meu programa de cadastro de filmes para localizar os Posters mais facilmente diretamente no google. segue o codigo, abaixo // url variavel global url := 'http://www.google.com.br/search?também=isch&hl=pt-BR&source=hp&biw=' + '1280&bih=675&q='+DBEdit1.Text+'&gbv='; frWEB := TfrWEB.Create(Self); frWEB.Show; // antes de utilizar o TwebBro... utilizava o navegador padrão. //ShellExecute(self.WindowHandle,'open',(PWideChar(url)),'','',1); Mas me deparei com um site de cadastros de filmes que não utiliza a mesmo tecnica da GOOGLE.COM.BR para search ele só me volta isso aqui "http://nomedosite.com/lookup.cfm" Dai pesquisando no forum encontrei este post relacionado com o TWebBrowser. Continuando nesta pagina eu exibi o codigo fonte em HTML que é: <table CELLPADDING="0" CELLSPACING="0" WIDTH="100%"> <tr CLASS="bgDB"> <td ALIGN="center"> <table CELLPADDING="0" CELLSPACING="0"> <FORM METHOD="post" ACTION="/lookup.cfm" NAME="MainSearchForm" ONSUBMIT="return CheckValue();"> <tr> <td STYLE="padding-right:5px;"> <img SRC="/Graphics/Search.gif" width="61" height="15"> </td> <td> <input type="text" name="find" STYLE="font-size:9pt;" SIZE="45"> <input TYPE="Hidden" NAME="Action" VALUE="Lookup"> </td> <td STYLE="padding-left:10px;"><input TYPE="Image" SRC="/Graphics/Search_Button.gif"></td> <td STYLE="color:#FFFFFF;padding-left:10px;font-size:12px;"><a HREF="/Features/index.cfm?content=advsearch" Reparando no HTML acima tem um campo/ou sei la como definir ela de "input" no exemplo abaixo postado pelo Douglas com Tags etc... tb consta o tal input ShowMessage(WebBrowser1.OleObject.Document.All.Tags('input').item('meucampo').text); Simplificando como seria possível no campo Search deste site de filmes ele escrever o titulo do filme que esta em um DBEdit e depois apertar OK para procurar o filme? agradeço desde já!
  7. Opa Jhonas obrigado pelo codigo. Então eu já tinha feito a pesquisa no forum e no google. Estou começando a achar que n é possível mostrar a barra "CARREGANDO A QUERY" :unsure: Passei o codigo que você postou para meu programa e a barra só começa a contar apos ter carregado o banco de dados na memoria. o problema é exatamente este, gostaria de exibir a barra carregando o DB, e n ele contando o DB depois de aberto. Ficou assim. 1 - Button1, Ele faz o Query1.Open.... 2 - trava tudo, paralisa por (4seg) 3 - depois de carregado que a GAUGE começa a contar! Sobre o BMP, acabei cedendo para este formato porque o banco access é muito limitado. No firebird, mysql funcionou bem com JPEG, já no access ele ate passa o JPEG mas quando esta dentro do banco ele converte para BMP. Mas, muito obrigado pela sua atenção, vou continuar procurando no mundaum da internet! um abraço! :)
  8. Ola amigos do Script Brasil! Estou desenvolvendo meu programa de cadastro de filmes a mais de 1 anos! e toda hora acho uma ideia melhor e outra não, para implementar este programinha. Agora estou com problemas para adaptar o uso do TProgressBar ao me programa. 1 - Como utilizei BMP para o banco access BLOB - no tamanho de 190x260 = 145kb 2 - hj com mais de 260 filmes cadastrados o banco já tem 37MB 3 - quando inicio ele no pendrive demora uns 4 segundos para abrir o banco 4 - dai já pensando no futuro por exemplo 500filmes vai dar uns 70MB do DB 5 - percebi que demora quando ele vai Abrir a QueryMovies que estao cadastradas os filmes e posters quando eu execulto o comando ADOQMovies.Active := true; que demora os 4seg. Gostaria de saber se é possível mostrar o progresso do carregamento do banco ACCESS com TADOConnection, TADOQuery? desde já agradeço! ;)
  9. ola, William - TI! estou começando a mexer este componente TWebBrowser e notei que este erro ao exibir paginas como da UOL apresenta esta mensagem. obrigado pela diaca do: WebBrowser1.Silent := True; vlwz
  10. mais uma vez muito obrigado pelo codigo Jhonas, vou testa-lo amanha de manha!
  11. muito obrigado Jhonas, n conhecia este comando DoubleBuffered, que nosso colega vms tinha citado logo acima. sobre os componentes Tlabel, Tshape etc... realmente agora n pisca mais! ficou otimo! Mas mudando de assunto só p galera que esta com problemas com o WINCONTROLL sobre a forma que Timage sempre fica abaixo dos componentes. Resolvi da seguinte forma. Eu tinha um campo de POSTER que armazenava imagens dos filmes. quando o filme estivesse em VHS, eu queria que exibisse um icone correspondente a midia relacionada logo no canto inferior do POSTER. Mas como todos nos sabemos, o componente TIMAGE sempre fica abaixo dos demais componenetes. Foi dai que tive a ideia utilizar um TImage ao TDBImage, Toda vez que eu mudasse o item ele ia passar a imagem do TDBImage para um TImage dai quando o filme estiver em DVD, aparecere um icone abaixo em PNG sobre o poster. espero ter ajudado! :)
  12. tenho este mesmo problema quando movo um componente no DELPHI! Por exemplo. Tenho 1-TTimer e 1-TLabel, Faço o seguinte: Label1.Left := Label1.Left +5; com interval do timer em 50ms na hora que o TLabel se move ele fica piscando, e este problema tem desde que comecei a mexer no delphi em 2000 com delphi5. Lembro que na epoca estava tentando criar joguinhos no delphi e utilizei um TSHAPE em forma de circulo e quando ele movia ficava uma verdadeira piscadela. Por este motivo coloquei o nome do jogo como "The Ball that Blink" foi uma satira as pisqueiras do delphi kkk. porque na mesmo epoca em 1999 brinquei um pouco com o VB6 e me lembro que ele era mais amistoso na parte visual como em cores de botões animações etc... Mas por causa do Delphi n ter tanta frescura ser mais rústico preferi fazer um curso nesta grade linguagem! ;)
  13. ola Gustavo_Sid beleza? Então eu trabalho com o banco ACCESS (mdb) padrão access 2003 já faz algum tempo. Utilizo ele n comercialmente, mas sim como cadastros simples de filmes, de hora, agenda de contatos e outras coisas pessoais. tb utilizo ADO e Query. Mas eu n sei como limpar este tipo de banco via programação em delphi. Exemplo no meu banco de dados eu deleto os itens e eles apenas ficam ocultos no banco. Na verdade eu utilizo o proprio MS access para limpar o banco. 1 - você abre o banco em modo exclusivo 2 - va em opções 3 - dai vai ter um opção para reparar o banco. ou Para que o novo campo INDICE inicie com o valor 1, selecione no menu do ACCESS: Ferramentas/Utilitários de banco de dados/Compactar e corrigir banco de dados quando você manda repara o banco ele realmente deleta os itens "anteriormente deletados em seu programa". Eu sei que n vai ser uma ajuda, mas sim uma dica! porque se tiver alguma maneira de limpar o banco ACCESS via delphi seria otimo! um abraço e boa sorte!
  14. Problema de Atualizar a lista em tempo real, ainda n consegui resolver. Mas vamos a outro problema antigo do componente "TDBGrid" quando você utiliza 2 DBGrids como MASTER x DETAILS. você pode ver que quando você seleciona um "ITEM MESTRE" sem detalhes SIMPLESMENTE a SCROLLBAR da DBGrid DETALHES desaparece, como em um toque de magias kkkk! E mesmo você voltando a selecionar um Item MESTRE com varios detalhes a bendita SCROLLBAR não volta. resolvi este problema com uma velha tecnica muito conhecida que é: DBGrid2.BorderStyle := bsNone; DBGrid2.BorderStyle := bsSingle; Sem duvidas acho que o componente mais BUGADO do Delphi é o TDBGrid! :(
  15. opa raphael beleza? RESOLVIDO!!! o problema de intrusos!!! fiz como você disse, peguei todas as MAC id e adicionei nos dispositivos permitidos. Agora sim a rede esta segura, somente MAC ID devida mente cadastradas tem acesso a rede local! muito obrigado e um grande abraço!
  16. Jhonas novamente muito Obrigado! :) Agora sim esta [RESOLVIDO] este meu problema com os cálculos de horas. Parece simples somar horas mas vi que isso não mudou muito desde a década passada como na época do CLIPPER. Ultimas vez que fiz um aplicativo para soma de hora me lembro que foi na época que estudei um pouco de clipper nos anos 90. Mas ao passar dos anos sempre utilizei o MS EXCELL e tinha me esquecido que 1Hora não é 100 kkkk! A sua ajuda foi Extremamente util principalmente na Function esta função me ajudou muito mesmo, e vai ajudar mta gente nova que esta começando a mergulhar no mundo do Delphi, vale nota 10! abaixo o código final, funcionando perfeitamente com a sua Função "Seg_hora" procedure TfHORA.btnTMPCALCClick(Sender: TObject); var h1,h2 : TTime; seg : integer; begin seg := 0; lblHT.Caption := '00:00:00'; DM.ADOQhora.First; while not DM.ADOQhora.Eof do begin h1 := STRtoTIME(DM.ADOQhoraHORA_TT.Text); h2 := STRtoTIME(lblHT.Caption); seg := seg + SecondsBetween(0,h1); seg := seg + SecondsBetween(0,h2); DM.ADOQhora.Next; end; lblHT.Caption := Seg_Hora(seg); end; muito obrigado e um grande abraço! :D
  17. Jhonas obrigado meu amigo. Alterei as variaveis para "TTime" Mas ainda ele não esta somando as horas corretamente. Ou melhor somando corretamente ele esta sim, mas na hora de exibir o resultado TOTAL de HORAS ele exibe da seguinte forma. HORAS TOTAIS 11:00 + 10:00 + 12:00 + 14:30 + 15:50 = 15:20 Mas como assim??? o total somando de horas na verdade seria 63:20 (sessenta e tres horas e vinte minutos) e não 15:20 (quinze horas e vinte minutos) dai fiquei vendo e percebi uma coisa muito peculiar, a soma esta correta mas ao invez dele me retornar as horas somadas ele esta retornando como "2 dias 15 horas e 20 minutos" dai sempre me retorna só as horas no meu LABEL total de horas. Segue o codigo abaixo: var h1, h2, tot : TTime; begin h1 := STRtoTIME(DM.ADOQhoraHORA_TT.Text); h2 := STRtoTIME(lblHT.Caption); //DM.ADOQhora.First; //while not DM.ADOQhora.Eof do // begin tot := h1 + h2; // DM.ADOQhora.Next; // end; lblHT.Caption := TimeToSTR(tot) O maior problema estaria no final para ser exibida o total de horas! alguém ai sabe o comando para me voltar o total de horas sem contar 24h = 1 dia???
  18. Ola amigos do ScriptBrasil, boa tarde! Estou com um problema simples mais ao mesmo tempo complicado "FALTA de LOGICA" :( Tenho um programa bem simples de controle de horas, estou fazendo ele com: - Delphi 2010 - DBAccess - ADOQuery A Tabela é simples tem hora de chegada e saida e total com uma tabela mestre com o MÊS atual. "segue a imagem abaixo" O calculo de hora de entrada/saida é diariamente. Mas no final do mês eu gostaria que somassem todas as horas do campo "HORA_T" dai eu tentei desta forma eu sei que estou errado mais acho que quase isso: procedure TfHORA.btnCALCTClick(Sender: TObject); var h1, h2, h3 : TDateTime; begin //j h1 := STRtoTIME(DM.ADOQhoraHORA_TT.Text); h2 := STRtoTIME('00:00:00'); DM.ADOQhora.First; while not DM.ADOQhora.Eof do begin h3 := h1 + h1; DM.ADOQhora.Next; lblHT.Caption := TimeToSTR(H3) end; end; Com este código atual não soma nada, Sim é um problema lógico heheeh :lol: ! sexta-feira é difícil de utilizar o lado lógico de cérebro kkkk Profavor se alguém poder dar uma luz? Agradeço desde já!
  19. Opa galera da Scriptbrasil, primeiramente quero me apresentar. Sou João Clemente e participo a quase 1 ano deste grande forum na area destinada a programação em Delphi. Este é meu primeiro POST na area de redes e estou com um problema de invasão na minha rede interna. E gostaria da ajuda de voces. Então vamos lá: 1 - Tenho uma rede com os IP padrão "192.168.1.1 ate 192.168.1.255" O IP 1 = Servidor "Router" 2 = servidor de arquivos 3 ~ 20 são Ips configurados para ter acesso a Internet. O Restante só tem acesso local. 2 - Semana passada coloquei um ponto de acesso protegido com senha WEP 64bits. 3 - Percebi que IPS não utilizados na empresa como 15,16,17,18 estão com conexões abertas Quando Digito o comando do Windows no pronpt de comando como "ping -t 192.168.1.15" Ele responde como uma taxa de 10 a 30ms. 4 - Dai eu entro com outro comando "netstat -A 192.168.1.15" ele me volta assim Endereço-Ip nó: [192.168.1.15] Identificador de escopo: [] Host não encontrado. sem o nome da rede/host Quero saber como eu faço para ver o nome do dispositivo invasor conectado a esta rede? Como posso bloquear este invasor? Existe algums programa para monitorar os IPS? quem controla os IP e Internet eo router da D-LINK! muito obrigado e agradeço desde já!
  20. Então Jhonas, eu já tinha procurado algo sobre isso na pesquisa do forum! E n encontrei um tema sobre este problema, Será que existe algum componente compativel com o DBGrid que parece mais com a Interface do Windows. porque você já pensou se você for navegar no IE, CHROME, FFox etc... e quando você selecionar o SCROLLBAR com o Mouse e for descendo ele n aparece nada fica apenas PARALISADO e quando você SOLTA o MOUSE ele vai para lá em baixo sem ser gradual seria impossível navegar de forma rápida e dinâmica. Mas beleza, se não tiver solução, continuarei procurando na internet. obrigado
  21. kkkk Killer isso ai tem cara de Keyloger heheeheh! Utilizei isso faz tempo na epoca do delphi7 com o jogo GunBoud. Naquela epoca era possivel porque ninguém tinha um sistema bom de Firewall Mas hj fica dificil todo mundo tem antivirus/firewall e windows VISTA/7 tem um sistema BOM que seria impossivel você Enviar algo para seu email sem que o cliente saiba.
  22. Olá Amigos do Scriptbrasil! Tenho uma Duvida muito antiga, desde o Delphi 6. Utilizo o componente TDBGrid e quando tenho varios cadastros Umas 500linhas por exemplo. E Utilizo o ScrollBar ao Lado para Rolar a lista dai que surge o problema: quando agente rola a Lista utilizando o MOUSE no Scrollbar ela apenas fica parada como se estivesse PAUSADA. quando eu solto a Scrollbar ele atualiza a tela e Mostra os cadastros. Gostaria de saber se tem como Atualizar a lista em tempo real como no Windows Explorer. Se você utilizar o teclado CIMA/BAIXO ou as setas CIMA/BAIXO aparece atualizadas em tempo real. Caso n haja uma solução era bom os Engenheiros da EMBARCADEIRO arrumarem isso. agradeço desde já!
  23. ola malereis tudo bem cara? Vejo que você esta utilizando ADOTable / ADOQuery Se caso você estiver utilizando o BANCO DE DADOS MS ACCESS com JET4. é impossivel salvar JPEG neste tipo de banco. Somente BMP! mesmo utilizando o mais novo banco de dados o Access 2007/2010 n é possivel salvar JPEG! Um otimo banco de dados que se pode salvar JPEG é o MySQL ou FireBird! entre outros. Para você ter uma ideia Eu tentei cololar os JPEG no MDB já a muito tempo desde 2002 e ate hj nunca achei uma solução! PS. Se eu estiver errado alguém poste uma solução!
  24. Opa Jhonas vlw mesmo funcionou! Mas procurando bem no forum achei algo que n faz parte do Evento FilterRecord! mas sim um comando Utilizando SQL! como o Query funciona como SQL dai resolvi modificar o lance da Consulta para: var Consulta: String; begin Consulta:= Edit1.Text; with ADOQ do begin Close; SQL.Clear; SQL.Add('SELECT * FROM MOVIE WHERE TITLE LIKE' + QuotedStr('%' + Consulta + '%')); Open; end; Tb funcionou muito bem sem problemas com case-sensitivety! vlwz!
  25. Opa Galera beleza? Desculpe-me REEINVOCAR este POST hehehe! Mas estou com 1 Pequeno problema com este Evento "FilterRecord" - Componentes TADOQuery, TEdit1, TButton - Estou utilizando o seguinte comando no evendo "OnFilterRecord" do componente ADOQuery procedure TForm1.ADOQFilterRecord(DataSet: TDataSet; var Accept: Boolean); // FILTER MODE begin if (pos(Edit1.Text, ADOQTITLE.Value)<> 0) then Accept := true else Accept := false; end; E um Edit + Button - neles eu adiciono o Nome do filmes que desejo filtrar Exemplo. matrix Ai vem o problema com o codigo acima n consigo Discriminar Maiúsculas de Minúsculas A Filtragem só vai me Retornar "matrix" pulando Matrix e MATRIX! O Que eu quero saber é como eu Ignoro o CASE-SENSITIVET do comando acima??? no aguardo e muito brigado pela atenção! :) PS. Os links acima já não se encontram mais!
×
×
  • Criar Novo...