
Micheus
Veteranos-
Total de itens
3.189 -
Registro em
-
Última visita
Tudo que Micheus postou
-
Não estava certo se devia postar em Entretenimento, então, na dúvida, deixo aqui meus parabéns ao forum por seu prestígio junto a tantos visitantes que hoje (em plena madrugada de quarta para quinta), precisamente às 03:08h, registraram a incrível marca de 11.228 usuários on-line!!! :o Pelo jeito, tem mais português e africano acessando o forum do que os tupiniquins. ^_^ t+
-
Instrução Sql não mostra dados em condição
pergunta respondeu ao robinhocne de Micheus em Delphi, Kylix
robinhocne, tá meio estranho a parte do "while ( not QryAgenda.Eof) do". Se houver mais que uma linha retornada pela query, e em uma delas o tal Bloqueado é 0 e em outro é 1, o valor no seu componente edit será sobrescrito porque, dentro do loop, tanto y quanto z não são alterados a cada interação. Veja se não é por conta de uma situação como esta que você não está vendo a alteração (debug - ponha um break para quando for 0). Abraços p.s. você pode editar seu post e por o "]" que falta no primeiro "[code", assim fica melhor a visualização do seu código. -
SeveN, na semana passada já havia postado algo a respeito e também vai servir para você: "(...) acredito que você possa facilmente aproveitar a idéia que propus neste outro tópico:extrato bancario quickreport / clientdataset (ref. DevMedia)" Abraços
-
Procedimentos dentro do código do seu programa? Se for, é um comportamento bem estranho mesmo. A título de curiosidade (e porque você não citou), que componentes de acesso ao banco você está utilizando? Abraços
-
Alex Freitas, acho que este assunto já está sendo tratado no seu outro tópico, mas em todos os casos... Vejo que você mudou a parte que verifica o Corretor, em relação ao outro tópico. Afinal, qual o tipo de dados do campo Corretor? Que tipo de informação estará vindo do EdtCampo? Abraços
-
sllc, não uso dbexpress, mas você já deu uma conferida no seu componente TSQLConnection, com relação a propriedade DriverName. Se você estiver criando a conexão dinamicamente (em run-time), veja se não esqueceu de alguma propriedade. Dê também uma olhada neste post: Erros Apresentados No Projeto E No Delphi 7; talvez você possa averiguar algumas das sugestões. E tem este outro: Missing DriverName property, que possui alguns comentários que talvez você possa avaliar. É o tipo de coisa difícil de opinar sem que se tenha passado pela situação Boa sorte.
-
Paulo Feitosa, tendo apenas duas tabelas, parece pouco provável que haja algum problema na configuração do componente - se bem que você não informou como o fez. Então, seria interessante você abrir o MSAccess e verificar como ficaram os dados importados nas respectivas tabelas. Assim, você confere se por acaso não gerou itens duplicados na importação. De qualquer modo, seria interessante que você citasse como você configurou as propriedades ref. a source e a lookup. Abraços
-
Como calcular um campo Matricula no Delphi
pergunta respondeu ao fabiojcorreia de Micheus em Delphi, Kylix
fabiojcorreia, se a idéia é utilizar um código sequencial para a matrícula, talvez fique mais simples você utilizar a abordagem mais comum que é obter o maior valor cadastrado e somar 1 para gerar o próximo - não precisa de tabela auxiliar. Dê uma olhada neste post Abraços -
FFernando, isto ocorre porque você está usando WriteLN para cada coluna. Se você der uma espiada no help, deverá perceber que este LN a mais, significa que será gerado um avanço de linha. Logo, você deve usar apenas Write. Mas não pode esquecer de que tem que avançar a linha após gravado a última coluna. Veja sugestão: ... OracleDataSet1.First; // posiciona no início do seu dataset while not OracleDataSet1.EOF do // percorre enquanto não chegar aofim begin for coluna := 0 to OracleDataSet1.FieldCount -1 do begin valorcampo := OracleDataSet1.Fields[coluna].AsString; if Coluna < (OracleDataSet1.FieldCount -1) then Write(txtSAIDA, StrToCopy + ';') else // última coluna - avança linha e não põe o delimitador WriteLn(txtSAIDA, StrToCopy); end; OracleDataSet1.Next; // próximo registro end;
-
Como posso solucionar o "ERRO" EdatabaseError
pergunta respondeu ao Alex Freitas de Micheus em Delphi, Kylix
Alex Freitas, se você está utilizando parametrização e está passando as datas no tipo TDate ou TDateTime (já que usa a função StrToDate), fica difícil dizer. Possivelmente não irá alterar em nada a condição atual, mas é interessante que quando você filtrar um período de data, que use o between: Where DataCadastro between :PInicio and :PFinal and Clientes.Corretor = ... Entretanto, sugiro que você execute esta mesma consulta (com os valores no lugar do parâmetro) diretamente no MSAccess - assim, você fica sabendo se sua consulta está ou não correta e retornando algo. Abraços -
claudyo, o componente faz parte do pacote RxLib. Este lance de "copiar" de um DBGrid para outro, a princípio não envolve o uso do tal componente - é uma característica da aplicação implementada pelo colega robinhocne. A forma como você cita "copiar de um DBGrid para outro", não é muito apropriado no meu modo de ver - pode gerar confusão sobre o que realmente deverá ser feito. Dê uma olhada nestes outros tópicos, onde já fiz meus comentários a este respeito: - Selecionar Linhas no DBGrid, Através de seleção em outro DBGrid - Copiar Linhas de um DBgrid para outro Dbgrid simplesmente utilize o botão [Responder] ou [Resp. Rápida] bem no fim da página, logo após o último post que você está lendo. Quando você usa a opção [" Resp.], você estará utilizando a opção de resposta com quote da mensagem (uma opção interessante para deixar separar as perguntas e responder - como fiz agora). Abraços
-
duplicando um objeto em tempo de execução
pergunta respondeu ao Pablo Polícia de Micheus em Delphi, Kylix
Pablo Polícia, posso estar enganado, mas isto vai exigir um conhecimento que você não tem. Vai precisar pesquisar e estudar mais sobre a criação de componentes em tempo real. Eu poderia lhe dizer que você deveria mover cada propriedade, uma a uma. Mas, se pensar no fato de que você poderá executar este procedimento para diferentes classes, então eu lhe diria que você tem que pesquisar algo relacionado a RTTI e é o tipo de coisa que toma tempo para explicar e compreender. Coloque a palavra RTTI nesta página de busca no DevMedia e nesta do ActiveDelphi, que você achará bastante coisa sobre o assunto. Então, na verdade não deu certo!Voce tem que levar em conta que o que você quer é fazer instanciação dinâmica de classes de componentes. Voce não deveria utilizar o nome de um componente instanciado no seu form, como você fez - Edit1 não pode apontar para o objecto edit criado com o form e para o que você criou. Chegou a ler toto o tópico que citei? ... Meu auxílio fica por aqui. Espero que outro colega possa lhe ajudar mais nesta empreitada. Boa sorte. -
duplicando um objeto em tempo de execução
pergunta respondeu ao Pablo Polícia de Micheus em Delphi, Kylix
Um gerador de aplicativos? Algo como o X-Maker ou SpeedCase que geram aplicações cujo código é compilado com Delphi? Como assim objeto original?Por acaso você tem um componente com o nome Edit1 no form e então utilizou este código que você postou? Se foi, o procedimento está incorreto. Dê uma olhada neste tópico Comando Para Criar Componentes (pode lhe ser útil) e já quer começar com pedreira... :D Boa sorte! -
Como posso solucionar o "ERRO" EdatabaseError
pergunta respondeu ao Alex Freitas de Micheus em Delphi, Kylix
Alex Freitas, por acaso você adicionou os parâmetros em design-time ao seu componente QueryPesCorretor (click no botãozinho [...] da propriedade Parameters)? Se sim, remova eles, já que serão criados em run-time quando você adiciona a consulta SQL (via SQL.Add). É o tipo de erro difícil de ajudar a distância... Voce deve dar uma repassada geral no componente e procedimentos para ver se não há algo errado. Abraços -
Cristiano, é uma boa observação. Em teoria, mesmo com nomes contendo espaços, seria possível realizar o mapeamento delimitando o caminho com áspas duplas, tipo: '\\"servidor\nome da impressora"' - mas, sem dúvidas é mais garantido se for utilizado nomes sem espaços. Poderá haver, ainda, questões de segurança, caso o mapeamento da impressora esteja restrita à alguns usuários. Abraços
-
Como posso solucionar o "ERRO" EdatabaseError
pergunta respondeu ao Alex Freitas de Micheus em Delphi, Kylix
Alex Freitas, experimente definir o tipo do parâmetro que estará sendo passado: ... QueryPesCorretor.Parameters.ParamByName('PInicio').DataType := ftDateTime; // ou ftDate QueryPesCorretor.Parameters.ParamByName('PFinal').DataType := ftDateTime; // ou ftDate QueryPesCorretor.Parameters.ParamByName('PInicio').Value := StrToDate(Inicio); QueryPesCorretor.Parameters.ParamByName('PFinal').Value := StrToDate(Final); ... Abraços -
O Que retorna o método Socket.SendText?
pergunta respondeu ao Diego de Souza Silva de Micheus em Delphi, Kylix
é bom você olhar o Help, só para conferir.No Delphi 3, por exemplo, TCustomWinSocket.SendText é uma procedure - não retorna nada! Abraços -
FFernando, pelo seu códio, você está colocando os dados direto no Excel. Então, onde entra a questão do CSV? :blink: Obs: quando postar código, utilize a tag <código> [/ CODE] (sem este espaço que deixei após a "/"
-
não sei qual das dicas você pegou, mas no geral você estará gravando o valor do campo seguido por ";" (caso a dica cite ","). Quanto a extrapolar o número de linhas no excel, se é que é para ser aberto por ele, experimente criar novas worksheet antes de atingir o limite de linhas.
-
FFernando, tenha atenção. Tente entender o que está fazendo.Eu postei: "... (ex. Query1.Open; ou Query1.Active := True;)" Isto que você fez é redundância. ;) mas usar "," ou ";" iria mudar alguma coisa? O problema não é a quantidade de linhas? :huh:
-
como bom iniciante, parece que você não leu muito a respeito do uso dos componentes que lhe interessam. <_< Como é que as informações do banco de dados vão para um TDBGrid? - as informações do banco de dados são obtidas via dataset - como TTable ou TQuery (há outros); - a ligação entre o dataset e um dbgrid, é feitas através de um componente TDataSouce o qual tem a sua propriedade DataSet preenchida com o dataset em questão e seu nome selecionado na propriedade DataSource do TDBGrid. É uma ponte ou, como o nome diz, uma "fonte de dados". // isto foi como trazer os resultados para o DBGrid Com isto, ao abrir (Open ou Active) o dataset, os dados são mostrados no DBGrid - Isto é parte da solução do seu problema. (ex. Query1.Open; ou Query1.Active := True;) // isto foi como fazer com que o sistema execute a consulta Como ler o arquivo que contém o SQL? - um componente tipo query, possui a propriedade SQL que é do tipo TStrings. Esta classe tem métodos para ler e escrever em arquivos (veja help). No seu caso, você usaria o método LoadFromFile(<nome do arquivo>). (ex. Query1.SQL.LoadFromFile(Edit1.Text);) // isto foi como LER um SQL para ser executado Abraços
-
É bem simples. - você deve deixar a propriedade DataSet do QuickRep em branco (não seleciona nenhum); - Para cada dataset independente, adicione uma banda do tipo TQRSubDetail e configure a propriedade DataSet com o respectivo dataset. Em cada uma delas, você aciona os TQRLabel e TQRDBText que necessitar para mostrar os respectivos dados; - caso seja necessário utilizar algum tipo de header para cada dataset, utilize o componente TQRBand e defina sua propriedade BandType com rbGroupHeader (não utilize o componente TQRGroup) e selecione esta banda na propriedade HeaderBand da respectiva banda subdetail; Continua sendo necessário abrir os dataset's antes de chamar o método Preview. ;) Abraços
-
O Que retorna o método Socket.SendText?
pergunta respondeu ao Diego de Souza Silva de Micheus em Delphi, Kylix
Se mais alguém puder dar um parecer ou corrigir-me, por favor manifeste-se, porque não tenho domínio sobre esta classe. :blush: Diego de Souza Silva, a que versão do Delphi você está se referindo?No caso do Delphi 7, o que você cita não procede! Veja o que diz o help: "SendText returns the number of bytes sent. Note that this may be less than the length of the string S if the socket is nonblocking." ou seja, ele retorna a quantidade de bytes enviados - conforme modo de operação do socket. Na questão citada no help, sobre nonblocking, é conveniente observar o que é explicado para a propriedade ClientType (TClientWinSocket) e ServerType (TServerWinSocket) Voce fez referência a TCustomWinSocket, mas é interessante lembrar que esta é a classe base de outras duas classe as quais provavelmente você cria as instâncias: TClientWinSocket e TServerWinSocket. Se você observar no help, o parâmetro esperado é do tipo AnsiString e, também consultando o help, você deve observar que este tipo de dado está limitado a 2GB (bastante coisa).Quanto a enviar em pedaços ou fracionado, acredito que esteja associado a opção de operação do seu socket se houver algum problema ao enviar, o mesmo help sobre SendText diz:"If an error occurs while writing to the connection, SendText terminates the connection and raises an ESocketError exception." ou seja, ocorrerá um exception - não é um número que representará isto. Mas, supondo esta possibilidade citada, o correto é que você saiba disto antes de enviar e então faça o fracionamento da informação. Mesmo assim, isto pode ser visto de forma diferente se levarmos em conta como você definiu a propriedade ClientType/ServerType já citadas. Abraços -
ah!!! bão... tenta a opção "new vcl component"
-
José Luiz, você pode fazer uso da função da API - RegisterHotKey. Dê uma olhada neste tópico Abraços