Ir para conteúdo
Fórum Script Brasil

Eder Moraes

Membros
  • Total de itens

    98
  • Registro em

  • Última visita

Tudo que Eder Moraes postou

  1. Eder Moraes

    Renomear Units

    Primeiro não podes usar acentuação em nomes de units ou de outros arquivos necessarios. Segundo: problemas que podem existir são, com os arquivos de recursos e units compiladas .Res e .DCUs . Fora que você tem que abrir o arquivo de projeto em modo texto e alterar o nome da unit. A respeito do arquivos res e dcu você pode apagá-los e recompilá-los, se não pode ocasionar falhas de arquivos duplicados no projeto. >>>>>> Faça um backup dos arquivos antes de alterá-los. program MeuAPP; uses Forms, Ufuncoes_internas in 'Ufuncoes_internas.pas', //<<<<<<<< Usplash in 'Usplash.pas' {frm_splash}; //<<<<<<<<<<<< {$R *.res} //<<<< aqui ele carrega todos os arquivos de recursos no dir do .pas begin Application.Initialize; Application.Title := 'Sistema de Autogestão Comercial'; Application.CreateForm(Tfrm_splash, frm_splash); Application.Run; end. Para editar esse aquivo procure os arquivos .dpr ou .dproj se for Codeg... Ou de dentro do delphi precione CTRL+ALT+F11, clique com o botão direito do mouse no nome do projeto, clique em View Source e edite o arquivo citado.
  2. Leia o campo blob e use o canvas para escrever em um stream. Depois o salve com o formato JPG. Procure por "manipulação de imagens com o canvas". Existe materiais bem simples sobre isso, aqui mesmo no forum.
  3. Interessante! Armazene em campo blob.
  4. Sei que existem dúvidas sobre, Bruno Quintella. Mais o forum é sobre "Delphi e Kylix" não incluío-se o Lazarus. Gostei da participação de vocês, o Lazarus realmente deixa a desejar pela gama de componentes que o Delphi dispõe no mercado, mais se pensarmos no o outro lado, como a linguagem é a mesma e o projeto também pode ser compilado em outros sistemas operacionais, poderiamos muito bem desenvolver componentes para o lazarus, já existe alguns que foram convertidos de Delphi para Lazarus. Eu também trabalho com outras linguagens mais gosto muito de usar o pascal para minhas aplicações, principalmente comerciais. Além de ser mais rápida é bem fácil achar problemas em seu código. Valeu mesmo pela participação de vocês, espero que o projeto Lazarus vá pra frente e não deixe que a linguagem morra. O benefício de compilar seus projetos em outras plataformas é o fato de que o sistema operacional da Microsoft é muito atacado pelos hackers de forma viral, e outros sistema baseados em unix até agora não tem este problema, os meus clientes todos estão querendo adotar a ideia pelo simples fato de deixar os vírus para trás, eu inclusive na minha distro própria Linux tenho instalado o Firebird, MySQL e também o Lazarus 0.9.26 para distribuí-lo junto com a distro, já sairam novas vesões mais não estão funcionando bem, já vi relatos de que tem problemas. Aqui vai um repositórios onde são armazenados alguns componentes desenvolvidos e convertidos para lazarus. Componentes do Lazarus Até mais amigos.
  5. Para liberar o form da memória coloque isso no evento onClose: Action := caFree; FormCadVistoria := nil; A respeito do foco. Acho melhor fazer o seguinte mude a ordem de tabulação dos seus componentes, para que o DBEdit15 seja o primeiro a receber o foco, colocando-o no evento OnActive, sempre que o formulário for ativado o foco tornará ao campo. Você pode não perder o foco do form que está em modal na mesma aplicação, mais pense se tiver que alternar entre tarefas. Já aconteceu comigo, em algumas ocasiões, tanto no onShow quanto no onActive.
  6. Eder Moraes

    Pascal

    Bom muitas pessoas, já chegaram a me confrontar com a seguinte frase: "O pascal juntamente com o delphi são extintos (mortos).", eu pessoalmente discordo completamente disso, por isso me proponho a colocar este tópico como sugestão, pois tenho grande certeza de que vocês também irão discordar comigo, e eu gostaria de saber se não existe uma possibilidade de disponibilizar um forum sobre o Lazarus derivado do freepascal, seria muito interessante divulgarmos essa ferramente livre. O melhor, é que os projetos podem ser compilados em vários Sistemas Operacionais, já que o Kylix da antiga borland não foi muito pra frente, temos uma alternativa para linguagem. O java é muito bom, mais para quem já sabe programar em pascal não precisa aprender outra linguagem para migrar suas aplicações para outras plataformas. O lazarus funciona bem em Windows, Linux e MacOS, entre outros. Tem suporte a várias bases de dados e os componentes são basicamente iguais aos do Delphi, ou seja, seu código desenvolvido em Delphi pode ser migrado com cautela para lazarus, dependendo é claro dos componentes usados. Muitas pessoas usam componentes de terceiros em suas aplicações, isso dificulta um pouco na hora de migrar, mais tudo se resolve. O que acham da idéia? Poderia ser colocado juntamente ao da seção do Delphi, Kylix e Lazarus. :rolleyes: :blink:
  7. Eder Moraes

    Erro ao salvar

    Posso dar uma opnião? quando vou salvar algo em ExecQuery faço o seguinte: crio uma query para execução de sql's pode ser uma IBQuery, IBSQL ou outro. OBS(pode mudar as propriedades usadas de uma para outra); //use uma query instanciada e não a que está aberta. crie um novo objeto. Try Try with dm, nomequery_instanciada, SQL, ibtrans do begin //dm > datamodule, ibtrans > ibtransaction, SQL > propriedade da query, repare que componentes e propriedades são separados por " , " um componente que tenha as mesmas propriedades identicas não podem estar no mesmo with if active then close; //se usar uma que já está aberta, ele fecha; Text:='insert into tb (campos.....) values (:p1,:p2......)'; //text subpropriedade da query em SQL."text" que está no with ParamByName('p1').AsString := Edit1.Text; Para... ... ExecQuery; //depende do componente (IBQuery, IBSQL ou IBDataset...) a ser usado CommitRataining; //depois disso atualize o conteudo da que está aberta. para recuperar os valores postados em commitra... end; Except on Exception do showmessage('Houve um erro ao salvar o registro.'); end; Finally showmessage('O registro foi salvo com sucesso codigo: '+...); end; Bom! A respeito disso, acho que não funciona legal, por que você está abrindo a consulta com o active := true, lhe aconselho a usar um execute ao invés disso. Dmdados.Qaddobs.Active := true; Dmdados.Qaddobs.ApplyUpdates; //também já tentei o ApplyUpdates em baixo do Post Dmdados.Qaddobs.Post; O exemplo que citei eu uso para o FB/IB mais com certeza tem algo para ADOConn e outros ADOComponents. Agora a mensagem que ele retorna (Type mismatch in expression) pode ser em uma clausula sql usada erradamente. Se você for usar o ApplyUpdates não use o Post se for usar o Post não use o ApplyUpdates os dois tem a mesma função, depois de usar " um " dos dois comite os dados usando o CommitRataining "dados retidos" não fechando assim sua transação com a base. No exemplo acima não usei o applyupdate nem o post, executei direto para o banco a partir do objeto qry, não esqueça de que ao instanciar uma qry local de setar o database do mesmo. qry.database := dm.dbconn; //entendeu espero ter ajudado um pouco. té mais!!!
  8. Só corrigindo!!! Antes de cancelar o restante da execução do bloco com Exit; em if recordCount > 0 ... , libere a query da memoria. qtmp_.free; pois pode causar um problema na próxima vez que tentar executá-lo denovo.
  9. Você está rodando seu aplicativo através de emulação, ou compilado em kylx? Agora se por exemplo você usa o linux como servidor de dados, compartilhe a pasta onde se encontra o sistema pelo samba e a monte em uma unidade logica windows. Aconselho a você se quiser que suas aplicações também sejam compiladas em outros sistemas operacionais, como o linux MacOSX, Solaris e Windows, sugiro que migre seus codigos para Lazarus (a linguagem é a mesma, opensource gratuito) >>> é o Delphi 7 cuspido, com suporte a varios conectores a bases de dados existentes, como Oracle, Firebird/Interbase, MySQL, pgSQL, db2. Só tem um porem os seus componentes de terceiros, não vam funcionar corretamente a não ser que os converta para lazarus. O mesmo projeto desenvolvido na plataforma Windows também pode ser compilado em Outra bastando mudar algumas intruções. Há outro coisa! Eu tenho uma distro propria que já inclui o Lazarus e também emula apps Windows. Entre em http://linfor.org e faça sua requisição.
  10. O winrar tem seu SFX que converte seu arquivo compactado em executavel, podendo obrigá-lo a ser extraido em um certo diretório, mesmo sem a intervensão do usuário. Use o ExtractFilePath(Application.ExeName) para executa-lo no dir da sua aplicação que envia o comando. Pode usar também o winexec. WinExec(pchar(ExtractFilePath(Application.ExeName)+'nomedoexe.exe'),SW_NORMAL); {se for no Lazarus use} ExecuteProcess(pchar(ExtractFilePath(Application.ExeName)+'nomedoexe.exe','"parametros se necessarios"');
  11. Acho que você também pode usar os componentes ADODB, mais práticos de usar com o ODBC. Se você usa o psqlODBC funciona direitinho.
  12. Você está tentando selecionar as saidas dos itens ao invés de os itens da saída. Por isso ele retorna várias saidas de acordo com a quantidade de itens na consulta. Já tentou selecionar os itens da saida? Agora se você quer classificar as saídas que venderam um certo produto, você está quase lá. Pode utilizar também um select dentro de outro. (pesquise um pouco qual forma se aplica ao seu banco).
  13. Este exemplo funciona bem, mais ele conta todos os parametros da linha de comando. EX: c:\pasta\app.exe /s /f /m aqui tenho 4 parametros para o applicativo o proprio nome é um param para fazer a verificação do param para gerar o seu qrep use a chamada do parametro correspondente. if ParamStr(1) = '/s' then if ParamStr(2) = '/f' then if ParamStr(3) = '/m' then . . e assim por diante, os params pode ser lidos na criação do form principal. Voce pode usar a contagem do ex que voce pegou para armazenar os valores em uma array para posterior leitura. da forma que voce citou como o parametro usado é um inteiro voce pode usar o case. case strtoint(ParamStr(1)) of 0: executar...; 1: ...; . . . end;
  14. tem um porem //o AsString := ' '; deixa um campo ocupando espaço interno no banco. F_Dados.Q_Funcionario.FieldByName('actotal').Clear; //anula o conteudo do campo
  15. já que você está postando os registro isso quer dizer que os mesmos já podem ser consultados no banco então supondo que você esteja usando os componentes ado. procedure TF_NivelAcesso.BtnAtribuiClick(Sender: TObject); var qtmp_:tAdoQuery; begin qtmp_ := TADOQuery.create(self); qtmp_.Connection := F_Dados.Sua_conn; {tem que definir a conexao com o banco ou defina a connectionString} with qtmp_,SQL do begin Text := 'select * from sua_tabela where (modulo = '+Treeview1.Selected.Text+') and (codfunc = '+F_Dados.Q_Funcionario.FieldByName('CODIGO').AsString+')'; Open; if RecordCount > 0 then begin Showmessage('já existe um ...'); Exit; //sai do bloco e não adiciona um novo end; end;//com isso você faz uma consulta antes de adicionar outro item qtmp_.free; //libera a query da memoria. F_Dados.Q_NivelAcesso.Append; F_Dados.Q_NivelAcesso.FieldByName('MODULO').AsString := Treeview1.Selected.Text; F_Dados.Q_NivelAcesso.FieldByName('CODFUNC').AsString := F_Dados.Q_Funcionario.FieldByName('CODIGO').AsString; F_Dados.Q_NivelAcesso.FieldByName('CODMODULO').AsString := Copy(TreeView1.Selected.Text,1,2); F_Dados.Q_NivelAcesso.Post; end;
  16. Eder Moraes

    Odbc

    O TDatabase, TTable e TQuery usam um arquivo de paginação temporário, como se fosse uma memória virtual, onde esse arquivo faz o intercambio entre o cliente e o servidor, podem demorar um pouco mais na requisição de dados dos mesmos, mais são componentes ótimos também que usam o BDE (Borland Data Engine) para essa comunição, na maioria das vezes necessita da instalação do BDE nas maquinas clientes. Você também pode usar os comps. IB ele necessita apenas de uma dll a GDS32.dll para se comunicar com o servidor sem a necessidade de instalação no cliente, bastando coloca-la no path do aplicativo, esta dll só serve para clientes Interbase ou Firebird, em questão de uso de memória o próprio SGBD a gerencia, contanto você tem que ter uma boa maquina servidor, para um melhor desempenho. Realmente todos os SGBDs citados são ótimos para trabalhar e existem muitas diferenças entre eles na forma de uso das Instruções SQLs o Oracle é usado por Grandes (Empresas Muito GRANDES) pois o investimento é de alto custo, já eu prefiro usar ou o MySQL ou Firebird(Gratis)/Interbase(Pago), pra min são os melhores para pequenas e médias empresas. O único problema ao usar o firebird ou interbase é o limite de registro retornados em uma consulta, se sua rede tiver uma banda baixa, os mesmos retornam mensagens de erro ao executar algumas consultas que retornam uma quantidade de registros exceciva. No firebird tem uma instrução que não tem no Interbase que é a first, ela é usada da seguinte maneira para limitar o resultado das consultas. with ibquery, sql do begin if active then close; text := 'select first 15 * from clientes where nome like :pcli order by nome'; //o first vai limitar a qtde de reg no retorno paramByName('pcli').AsString := Edit1.text+'%'; open; end; no mysql é usado o limit para definir o limite de registro select * from clientes where nome like "Ed%" limit 15 order by nome
  17. Eder Moraes

    Odbc

    Muito boa dica, mais também aconselho você ver opções de uso do ODBC do windows pode ser que em breve você tenha que migrar para outro SGBD, o ODBC lhe dá mais recursos para isso e você também pode usar os componentes ADO..., caso queira utilizar o mysql ou pgsql por exemplo, que são bases mais robustas. Existem os conectores odbc para os respectivos. Os conectores que me refiro são drivers de acesso as bases atraves do ODBC. Inicialmente você também pode usá-lo para acessar o Access ou SQLServer, Valeu. MySQL ODBC Connector PSQL ODBC Você pode achá-los na internet, são de graça.
  18. Talvez a aplicação que você está tentando executar tenha instruções para procurar arquivos em um nível acima ou seja no path da sua aplicação principal ..\ , se você puder localizar essa instrução será possível reverter essa situação. Se não poderás fazer isso: Setar a pasta da aplicação que vai ser executada, ou seja mudar o path da aplicação. Para isso use a função: if SetCurrentDir('pasta\') then //esta funcao retorna um valor verdadeiro ou falso, para pasta setada ou não. shellex..... else showmessage('Pasta da aplicação não existe'); Esta função faz com que seu path seja alterado, não esqueça de retornar para o path principal pois seu sistema pode não funcionar corretamente por causa de seu path. Veja também outras funções e procedimento em: Delphi Basics
  19. Depende da linguagem que você vai trabalhar o excercio. se for em VB: Dim Nome,SobreNome,UltimoNome as String Dim n1,n2,n3 as Integer se for em Pascal, Lazarus ou Delphi:Var Nome,SobreNome,UltimoNome : String; n1,n2,n3 : Integer; se for em PHP:$Nome,$SobreNome,$UltimoNome = ''; $n1,$n2,$n3 = 2; // se for em C ou C++:String Nome,SobreNome,UltimoNome; Int N1,N2,N3; Isso significa que você deve declarar a variável para alocação temporária de um dado, seja ela local ou global. O sinal <-- significa que a variável que você declarou está recebendo um dado. EX: Nome = "Valor" 'em VB Nome := 'Valor' //em Delphi $Nome = 'Valor' //em PHP Nome = "Valor" //em C ou C++ Veja também sobre os operadores, eles podem variar de liguagem para linguagem. Escreva quer dizer que ele vai mostrar em tela algo de retorno para o usuario como um calculo ou uma frase. EX: Writeln('Valor de retorno'); //Pascal Delphi Lazarus Echo 'Valor de retorno'; // PHP ShelScript JavaScript entre outras linguagens Print ou PrintLn('Valor de retorno, pode se colocado um formato para o retorno'); //C PHP Java... Pascal entre outras. O exemplo acima citado por você pode ser refeito em varias linguagem dependendo do ponto de vista do programador, Veja também que algumas variaveis recebem um calculo de outras, Revise bem seu exercicio!
  20. O RealSpeak não tem problemas com acentuação, você pode testá-lo a vontade. Há outra coisa, O sotaque é português Brasileiro.
  21. Primeiramente instale um recurso para o Speech do Windows. Você pode baixa esta aplicação em: RealSpeak Ele tem o tamanho de ~39 MB, o pacote vem com duas aplicações o RealSpeak e o TextAloud, o real... que é o principal não precisa de ativação, já o text... é necessário um serial para ativá-lo pois se trata de uma apliação comercial para fala de textos longos. OBS: o TextAloud não é obrigatório. 1: Instale o RealSpeak. 2: Vá até o painel de controle do windows, se for wXP procure por fala no modo clássico, se for o WindowsVista procure por Speech Recognition Options, abra-o > no windows xp ele abre automaticamente a janela, já no vista no seu menu lateral esquerdo aparecerá um item chamado "text to speech" clique nele para abrir a janela. 3: No groupbox > Seleção de voz escolha o item ScanSoft Raquel_Full_22kHz. Faça um teste na caixa de texto abaixo, apague o texto, digite um novo e clique em demonstração de voz. Clique em OK e pronto. Agora vamos ao que nos interessa: Abra o delphi e seu projeto, e em uma das units que você implementa suas funções e/ou procedimentos, acrescente este procedimento: declare "ComObj" em uses. procedure fala(texto:String); var f: OLEVariant; begin if texto = '' then Exit; f := CreateOLEObject ('SAPI.SpVoice'); f.Volume := 100;//só é necessário caso queira reduzir ou aumentar o volume f.Speak(texto,0); end; Para que seu programa fale uma mensagem de erro por exemplo, basta chamar o procedimento acima desta maneira. msg := 'Erro! ao salvar alterações no registro.'; fala(msg); showmessage(msg); O dispositivo de fala irá detectar o que está escrito em msg e falar para o usuário. OK Só R$ 0,50 hehehe !
  22. Existem outros ainda melhores por exemplo: A VCLSkins e a AlphaControls, Ambas pagas mais você consegue algo para avaliação, ou outra coisa na rede. A AlphaControls é a melhor pois a versão 6.20 tem até efeitos especiais para formulários, botões e outros componentes. Sabe aqueles efeitos que você encontra também no windows vista nos botões, a AlphaControls 6.20 tem. Baixe-a Aqui Se tiver duvidas quanto aos efeitos baixe primeiramente uma demostração.
  23. Faça uma verificação por virus também amigo, Existe um virus novo que desabilita as diretivas de segurança de usuarios, inclusive do proprio administrador. Para reverter isso somente uma reparação manual em linux ou uma formatação e reinstalação do sistema. Eu até agora não tive problema algum com nenhuma versão do windows em minhas apliações, os meus programas rodam até em linux, tenho uma distribuição propria com o wine que emula perfeitamente apliações for windows, e todas as minhas aplicações também rodam nele com todos os recursos gráficos e impressão, compartilhamentos e acessos a diversos banco de dados.
  24. {vNomeProd:= InputBox('Pesquisa do Produto!','Digite Um Nome à ser Pesquisado',''); If (vNomeProd='') then Begin ShowMessage('Digite um Nome à Ser Procurado'); Exit; End;} //faça o seguinte: procedure TForm1.Button1Click(Sender: TObject); var aux : String; begin aux := ''; //voce pode colocar um valor padrão if not InputQuery('Consulta...','Informe o nome:',aux) and (aux <> '') then exit; if dm.tbPreco.locate('campo',aux,[]) then //procura pelo nome exato { dm.tbPreco.locate('campo',aux,[loPartialKey,loCaseSensitive]); procura por qualquer palavra iniciando por aux em maiuscula ou minuscula o FindNearest e o FindKey são usados para localizar registros indexados se você está usando o bde com o paradox desista, mude seu projeto para firebird, interbase ou mysql. Isso é apenas um conselho. } frmGradeListaPreco.Show else showmessage('Nome não encontrado'); end;
  25. procedure tform1.bitbtn(.... begin Memo1.Lines.SaveToFile(ExtractFilePath(Application.exeName)+'arquivo.txt'); Memo2.Lines.LoadFromFile(ExtractFilePath(Application.exeName)+'arquivo.txt'); //o extractfilepath retorna o diretorio da a aplicação, e o arquivo vai ser carregado nas linhas do memo end;
×
×
  • Criar Novo...