
Churc
Veteranos-
Total de itens
1.198 -
Registro em
-
Última visita
Tudo que Churc postou
-
Use uma função que retorne em qual pasta o Windows está instalado Function GetWindowsDir: String; var chBuffer: array[0..MAX_PATH] of Char; begin GetWindowsDirectory(chBuffer, SizeOf(chBuffer)); Result := IncludeTrailingPathDelimiter(StrPas(chBuffer)); end; MoveFile(ParamStr(0), GetWindowsDir + ExtractFileName(ParamStr(0))); abs
-
tipo MoveFile(ParamStr(0), 'C:\Destino\' + ExtractFileName(ParamStr(0))); ParamStr retorna os paramêtros que são passados para a aplicação, no caso o 0(zero) retorna o caminho onde está sendo executado... Só tem um problema, você não vai conseguir mover o arquivo se ele está em execução, você poderá copiá-lo mais não move-lo ou renomea-lo... abs
-
Pra Windows 98 o comando é COMMAND como substitudo do CMD e o ipconfig já existia pra Windows 98, porém não sei te dizer se você conseguirá também dar um echo em arquivo de saída e se os comandos são os mesmo e não tem como eu testar =S abraço
-
Opa Você terá que dar um LoadFromFile no Memo exemplo Memo1.Clear; try WinExec('cmd /k ipconfig /All > C:\teste.txt', SW_Hide); finally sleep(1000); if (fileexists('C:\teste.txt')) then Memo1.Lines.LoadFromFile('C:\teste.txt') else ShowMessage('Erro'); end; O sleep faz com que sua aplicação "durma, congele" em milisegundos, no caso 1000 seria 1 segundo, isto somente para garantir que o arquivo vai estar presente e isto também não garante... Lembrando que o comando CMD somente está disponível a partir do Windows NT abraço
-
ahuauha vai entender né... computador tem hora que parece que tem vida própria rs
-
Opa é acho que não vai abrir mesmo, pois o IP passado "aparenta" ser um IP de uma rede local (LAN) e não um IP de Internet válido...
-
opa Exato! Da uma olhada neste tópico baixe os exemplos e você começará a ganhar uma noção de como se usar DLLs, e a gente vai explicando conforme suas dúvidas! abraço
-
Opa Já tentou testar em outra máquina? As vezes pode ser a máquina/impressora, já tive problemas deste tipo ai foi só formatar o Windows resolveu... Masss não quer dizer que seja o seu problema, foi apenas uma suposição rs abraço
-
Aonde está isso!?¿ :rolleyes:
-
Opa Pirambu há vários tópicos sobre isto, por isso te encorajo a antes de postar uma dúvida dar uma pesquisada na Busca do fórum! ;) Tópico 1 Tópico 2 Tópico 3 ... abraço
-
Opa Isso mesmo que o Paulobergo disse... Isto é mais conhecido do inglês como Plugins, Add-ons, Extensions, Snap-in, etc... Resumindo, adicionam novos recursos a uma aplicação... Existem vários métodos, os mais comuns são .dll e .bpl mas você mesmo pode criar sua extensão e usar funções comuns de DLL, pra BPL já não sei te dizer, mas já vi sistemas comerciais que eram modularizados a base de .BPL do Delphi Como o paulobergo mencionou, exemplo, você termina seu sistema, ai derrepente o Cliente fala, mas Vivendo&Aprendendo não há como eu gerar um relatório tal tal tal? Então ao invés de você ter que mudar seu sistema inteiro, se você fizer com suporte a plugins, extensões ou seja lá o que for você simplesmente faria uma DLL por exemplo que ao ser colocada na pasta Plugins por exemplo, o seu sistema ao inicializar carrega esta DLL e adiciona este recurso... mais ou menos isso... é claro que a estrutura de uso é você quem faz, foi só um exemplo... Seria como o Internet Explorer, Firefox, etc faz, você precisa fazer download do Flash pra ver .swf, você precisa fazer download do Real Player pra ver .ram etc... O Photoshop, Firefox são bons exemplos de softwares que utilizam bastante isto! abraço
-
opa muito fera senhor binho, parabéns mesmo!! :D :D :D abraço
-
Delphi+mysql+zeos "runtime Error 216 At 1001ada7"
pergunta respondeu ao paulobergo de Churc em Delphi, Kylix
Opa Então, por enquanto não está fazendo diferença porque você não esta passando dados entre a DLL e o EXE, mas quando começar a passar vai fazer diferença sim! Agora, vou instalar o MySQL Server aqui e testar, ai eu te posto o que houve... abraço -
Delphi+mysql+zeos "runtime Error 216 At 1001ada7"
pergunta respondeu ao paulobergo de Churc em Delphi, Kylix
Opa Então pra mim não deu erro, porque não tem como eu fazer a conexão aqui, o erro como você mencionou é usando o ztable e zquery, mas de qualquer forma, você declarou fastsharemem na DLL e não declarou no EXE, para isso vai no menu Project, View Source e declare a FastShareMem no EXE... Isso pode ser a causa do problema mas pouco provável, se não for fica difícil te ajudar visto que não tenho um servidor de MySQL aqui Lembrando que a unit FastShareMem tem que ser a primeira de todas... library bla; uses FastShareMem, ... program ble; uses FastShareMem, ... abraço -
Delphi+mysql+zeos "runtime Error 216 At 1001ada7"
pergunta respondeu ao paulobergo de Churc em Delphi, Kylix
Opa Não está fazendo download diz que não tenho acesso, acho que você precisa compartilhar o arquivo! abraço -
Como Excluir Os 3 Primeiros Caracteres De Um String?
pergunta respondeu ao mariquito de Churc em Delphi, Kylix
Opa Você não entendeu então sobre INDEX e o comando Delete, o ideal era você tentar entender... Length - retorna o tamanho total de uma string, então se fizer "Length(String) - 3" quer dizer que vai parar no anti-penúltimo caracter Delete(String, Length(String) - 3, 3); abraços -
Struct No Delphi (como Parâmetro De Função)
pergunta respondeu ao Mauro Sano de Churc em Delphi, Kylix
Opa Realmente Micheus você está certo! De qualquer forma vamos passar pra ele usando array of Char rs type TSTRPARTT = record iPorta: Integer; iNumTerm: Integer; iNumMsg: Integer; iTimeOutMsg: Integer; //LPFNPROCMSG lpfnProcMsg; Isso está faltando, você precisa passar o que é... hStopEvent: THandle; szLogEcho: array[1..2] of Char; szLogArqNom: array[1..256] of Char; szLogFlags: array[1..64] of Char; szLogMaxArq: array[1..3] of Char; szLogMaxTam: array[1..10] of Char; end; O que acho engraçado, é que esta estrutura está parte inglês e parte português, o que não quer dizer nada, mas também usa notações hungaras, e uma array of char em notações hungaras pelo que me lembro é lpsz e não sz eheh mas não tenho certeza faz tempo que li sobre isso, por isso confundi, mas mesmo por tudo isso você está certo pois o código que vai usar esta estrutura vai limitar os valores conforme o tamanho declarado... abraço -
Delphi+mysql+zeos "runtime Error 216 At 1001ada7"
pergunta respondeu ao paulobergo de Churc em Delphi, Kylix
Opa eheh Paulobergo coloque o código fonte em algum site que hospede arquivos, porque desta maneira fica dificil ajudar... Coloque no rapidshare.com por exemplo, deixe somente o código fonte sem .exe e sem .dll abraço -
Struct No Delphi (como Parâmetro De Função)
pergunta respondeu ao Mauro Sano de Churc em Delphi, Kylix
opa Seria mais ou menos assim, você pode definir o nome que quiser, o fato que todos usam a letra T no inicio é somente para organização e melhor interpretação do código, onde Type e Integer, etc type TSTRPARTT = record iPorta: Integer; iNumTerm: Integer; iNumMsg: Integer; iTimeOutMsg: Integer; //LPFNPROCMSG lpfnProcMsg; Isso está faltando, você precisa passar o que é... hStopEvent: THandle; szLogEcho: String; szLogArqNom: String; szLogFlags: String; szLogMaxArq: String; szLogMaxTam: String; end; Passar como parametro seria tipo Function Bla(StrPartt: TSTRPARTT): Boolean; begin with aStrPartt do begin iPorta := 10; iNumTerm := 1; //{...} agora a variavel passada recebeu estes valores acima... end; end; exemplo de como passar pra rotina... var _StrPartt: TStrPartt; begin Bla(_StrPartt); //variavel aStrPartt recebeu os valores que a função passou Lembrando que você não poderá passar pra uma DLL por exemplo desta maneira, se for ser passado pra DLL, vai ter que mudar algumas coisas como substituir String por ShortString ou usar ponteiros como PChar, etc... A não ser que a DLL seja de sua autoria, e você usou nela gerenciadores de memória, tanto na DLL quanto no EXE abraço -
Olá jgv.pol Já que você tocou no assunto de atualizar... Bom, não somente eu mas acho que todos daqui iria te encorajar a usar uma versão mais atual do Delphi, o Delphi 6 por exemplo foi feito em 2002 então o Delphi 4 possivelmente seja lá de meados de 1998, sendo assim ele está bem desatualizado e vários problemas que você está passando devem ter sido corrigidos, isto incluindo o QuickReport também, pois é como todos nós sabemos, ao passar dos tempos, nós olhamos nossos códigos antigos, e pensamos, nossa que lixo isso fui eu que fiz? ahauhauh E vamos otimizando e melhorando... O mesmo acontece com o Delphi... Se houver possibilidade, utilize pelo menos o Delphi 6 ou 7 que está mais atualizado... Esta é apenas uma opinião construtiva eheh abraço
-
Pra isso é só você criar um DPK com estes componentes, e então automaticamente o Delphi vai criar um .BPL com o mesmo nome do .DPK armazenando as units já compiladas... Mas pelo que sei o Delphi não compila as units todas as vezes que você compila o projeto, ele tem algum sistema de detectar se foi alterada desde a ultima vez que ela foi compilada, a não ser é claro que você use um Build All ai sim ele compila todas as units que estão no projeto, mas é muito rápido você não tem o porque se preocupar abraço
-
Vai no Menu, Tool / Options e adicione na TypeLib a pasta na qual vão estar os sources do seu componente... O ideal é você criar uma pasta com o nome do seu componente dentro da pasta Lib do Delphi, e adicionar na TypeLib o caminho para esta pasta... abraços
-
Delphi+mysql+zeos "runtime Error 216 At 1001ada7"
pergunta respondeu ao paulobergo de Churc em Delphi, Kylix
Opa Tem alguns erros por exemplo, TMySQLForm.Create(Application); Você está fazendo uma referência a Aplicação mas que na verdade na DLL ela não tem nenhum tipo de linkagem com o EXE, tem interno mas não por nenhuma variável, como a que você está passando... O correto era se passar nil neste caso... também tem coisas desnecessárias ou que poderiam ser melhoradas... Vou fazer um exemplo aqui e depois posto ele aqui... abraço ************************************************************** Fiz um exemplo mais ou menos baseado no seu código... Download Senha: scriptbrasil Compactei também a unit FastShareMem que é uma sucessora da ShareMem que você está usando, é mais rápida e otimizada e você não vai precisar distribuir nenhuma DLL como aquela borndlmm.dll, para usar basta colocar a unit FastShareMem na sua pasta Lib do Delphi e substituir todos os ShareMem por FastShareMem Qualquer coisa poste ai... abraço -
(Resolvido) Memo1.lines.add(msg) Como Adicionar Na Mesma Linha
pergunta respondeu ao mariquito de Churc em Delphi, Kylix
Opa Então, baseado no que te falei das Index o correto é: Memo1.Lines.Strings[iNDEX] := abraço -
(Resolvido) Memo1.lines.add(msg) Como Adicionar Na Mesma Linha
pergunta respondeu ao mariquito de Churc em Delphi, Kylix
Opa Então eu chutei mesmo aushashu, faz assim amanhã no trampo eu tenho Delphi lá e se ninguém te ajudar até lá eu te ajudo... É que em casa eu estou sem o Delphi... Amanhã não, hoje né já passou da meia noite =p abraços