[delphi-br] Re: PressObjects, Sure (OOP: MVP, OPF, BO)
Silvio, meu nobre amigo, mais uma vez quero lhe agradecer pelo apoio e lhe parabenizar pela iniciativa! Um forte abraço. Espero que nossos projetos possam ajudar os muitos desenvolvedores Delphi a ir além de desenhar formulários e programar eventos. Mas entender como funciona e fazer uso da maravilhosa linguagem que tem em mãos. Claro que, sem esquecer, em momento nenhum, a possibilidade de ver seus projetos rodando em outras plataformas, através do Free Pascal.
[delphi-br] Re: [OFF] Pretensão Salarial
--- Em delphi-br@yahoogrupos.com.br, Iran Lima i...@... escreveu (...) vão dar preferência aos que pedirem menos e com isso fica a duvida. A empresa não pode trabalhar simplesmente assim. Precisa saber o que espera do profissional e se basear mais em sua experiência que no valor da pretensão salarial. Mas sei que a realidade nem sempre é essa. Para ajudar aos que estão com esta duvida e aos que estão por fora do valor de seu trabalho, peço que informem se possível o quanto ganham e sua função na empresa. Bem, aqui temos um outro problema. Eu não divulgaria meu salário numa lista. Temo o preconceito / discriminação. Você passa a valer o quanto lhe pagam, na cabeça de muitas pessoas. Tente dar uma procurada na internet, se existe algum site com médias salariais por região e função. Você também pode criar uma planilha no Google Docs e um formulário com os campos, não sei como fazer isso, mas sei que é possível. Verifique se há como tornar a planilha pública e divulgue o endereço aqui na lista. Protegido pelo anonimato, fica mais fácil divulgar este tipo de informação, porém, terá o problema da baixa confiabilidade no conteúdo.
[delphi-br] Re: Dbgrid diferente
Já está mais do que na hora da Embarcadero renovar o visual ultrapassado dos Grids. Veja se isto resolve o seu problema: http://andy.jgknet.de/blog/?page_id=206 Não é um componente, é apenas uma unit que faz uma mágica nos seus TBGrid. Sendo seu problema apenas visual, recomendo que pare por aí. Seja sempre moderado no uso de componentes de terceiros. Abraços.
[delphi-br] Re: Logica do CheckListBox?
Embarcadelphi (eu gostei deste nick), que tal usar duas listboxes? Acho que ficará mais fácil de implementar e mais compreensível ao usuário. Entende a minha sugestão? Caso negativo, faça mais perguntas. Abraços.
[delphi-br] Re: Alguém sabe o que aconteceu com o driver IBExpertDBXFirebird?
Muito bem observado. Vamos aguardar por uma palavra do próprio Thiago...
Re: RES: RES: [delphi-br] OFF TOPIC: Mega Projeto
Li, ontem mesmo, no sítio do Detran-SP que é proibido consultar dados de um veículo através do número de sua placa. Logo, se você fornecer um meio para que isso aconteça, estará fazendo algo ilegal. Se me disser que a consulta está lá e é aberta bastando para isso o número do RENAVAM. Lhe respondo que este número é confidencial e, geralmente, de conhecimento apenas do proprietário do veículo, a quem a consulta é pertinente. Vejam, neste trecho extraído da página (http://www.detran.sp.gov.br/faq/faq.asp): 2 - Como faço para obter informações de determinado veículo por meio da placa? Por questão de segurança, não é possível nenhum tipo de consulta por meio da placa do veículo. Essa informação é confidencial e de uso exclusivo do Detran. Somente o proprietário do veículo pode solicitar um extrato do veículo pessoalmente no órgão onde o mesmo está registrado. O Detran só fornece os dados mediante autorização judicial.
[delphi-br] Re: agenda médica
Alex, acho que a maneira mais rápida de cumprir sua meta é usar um TClientDataset como uma tabela em memória. Certamente você terá na interface do programa, um filtro por dia, monte então no dataset todos os horários possíveis, carregando da tabela do banco, apenas os horários marcados. Neste ClientDataset você poderá aplicar filtros e emitir relatórios. Esta é minha visão mais simplista. Agora... pense em ter uma classe, sua TCompromisso, dentro de uma lista: TCompromissoLista você poderia gerar compromissos à vontade, então, salvar os horários preenchidos no banco de dados e liberar a memória dos compromissos que não fossem utilizados... Algo como Compromisso.Save e Compromisso.Free. Mas essa é outra história... pense em estudar Programação Orientada a Objetos. Abraços;
[delphi-br] Re: Delphi + código
--- Em delphi-br@yahoogrupos.com.br, Rafael Augusto Ferrereira arca...@... escreveu (...) Pascal, mas, o FreePASCAL é bem diferente do Delphi. No FreePASCAL eu rodei o programa demo Hello, e, o estou estudando para entender melhor. O FreePascal não é apenas um compilador avulso pra Object Pascal? Acho que você não vai encontrar muitas semelhanças entre o complexo ambiente de desenvolvimento do Delphi e um simples compilador de Object Pascal.
[delphi-br] Re: Dbgrid com Checkbox
Caro amigo, dando uma breve procurada no google, encontrei este artigo: http://delphi.about.com/od/usedbvcl/l/aa082003a.htm Deve lhe ser útil. Abraços;
[delphi-br] Re: instalar componente delphi7 preeciso de ajuda
Alessandra, que erro a tentativa de instalação está causando? Abraços;
[delphi-br] Re: [OFFTOPIC] Velharias
Rapaz, a camada de poeira tá grosssa aqui. Eu não tenho história com ferramentas tão antigas, mas me interessa muito ouvir sobre as experiências do pessoal. Afinal, muito do domínio que vocês tem hoje, vem da vasta experiência, que só é adquirida com o tempo. Em 1993/1994 (entre 12 e 13 anos de idade) fiz um cursinho de informática, forçado pelos meus pais. rs rs Aprendi D-Base (alguma coisa) acho que era o 3 na época. Mas não gostava daquilo e todo dinheiro investido foi praticamente jogado fora. Também aprendi Windows 3.11... daí a coisa ficou legal (típico pensamento de programador orientado a botão). Quando vi todos aqueles ícones e o paintbrush, meus olhos brilharam rs rs Ainda no curso, aprendi a mexer no word e no excel. Fiz fórmulas cabulosas e me achava o máximo (que grande m). Apenas do windows pra frente o curso foi proveitoso. Depois, fui (mais uma vez e graças a Deus) forçado a fazer o colegial técnico em informática. Havia um professor, considerado terrível por todos, chamado Claudio Alberto Ferrari (talvez mais alguém da lista o conheça), pois ele ensinava a complicadíssima línguagem Delphi. Se eu contar que todos achavam o Obj. Pascal difícil, pois necessitava de ponto e vírgula no final das sentenças, alguém aqui acredita? Todo mundo queria aprender Visual Basic, pasmem!! Eu acabei desenvolvendo uma grande amizade com o terrível professor, a ponto de ser chamado de filho do Claudio e peguei gosto pelo tal de Delphi. Aprendi na versão 1, enquanto a 3 era lançada no mercado. E de lá pra cá, já fiz muita m digo, maravilha com o Delphi. Abraços;
[delphi-br] Re: OOP - Quais as vantagens?
--- Em delphi-br@yahoogrupos.com.br, Alexandre alexandresoare...@... escreveu Pessoal estou cansado de ouvir que oop é melhor que procedural, gostaria que porfavor me explicassem qual a vantagem de ser usar OOP, não estou conseguindo entender os beneficios para o meu programa usar oop ao invés de procedures. Fazendo um aplicativo que opera num banco de dados, você pode criar classes que operam sobre os dados. Baseado nestas classes que operam sobre os dados, você pode criar classes que testam os métodos. Então, em seus formulários você apenas chama métodos destas classes, fazendo o mais simples possível. O código das regras de negócio fica separado do código da interface. Existem muitas técnicas de programação orientada a objetos. Recomendo que estude o assunto. Vale a pena.
[delphi-br] Re: Vaga em São Carlos - SP (Delphi)
Boa, Rodinei! :-) Mande seu currículo que eu converso com o responsável pelo pagamento. Sabendo muito talvez dê pra ganhar muito. Abraços;
[delphi-br] Vaga em São Carlos - SP (Delphi)
Olá amigos. A empresa onde trabalho está buscando um programador adicional. Para conhecer mais sobre a empresa: www.mhouse.com.br Os requisitos são: - Experiência em Delphi, tanto da IDE quanto dos recursos da linguagem. Ajuda bastante se tiver noções de programação orientada a objetos. Ter experiência com IBO também é um diferencial. - Experiência com Firebird, ou bons conhecimentos de SGDBs. -- O esquema de trabalho é CLT e o salário é à combinar. Apenas uma vaga. Interessados, favor enviar currículo para mim: joaolevada [at] gmail.com Abraços;
[delphi-br] Re: Borland é vendida
Eu não entendo sobre questões de mercado. Nem sei, o que isso representa para a Borland, hoje. Mas já fui motivo de piada, com um ou outro desenvolvedor me perguntando: De quem é o Delphi mesmo? Bem, prefiro deixar este assunto pra lá. Porém, vejam o caso da Sun, que foi comprada pela Oracle. Será que alguém ficou penalizado, ou apenas pensaram nas soluções que essa integração pode trazer ao mercado? Abraços;
[delphi-br] Programação Orientada a aspectos em Delphi
Caros colegas, nosso companheiro Janderson de Almeida é o autor deste tópico. Porém, certamente por engano, ele o abriu como resposta de outro. Como vejo este tema como fonte de um bom debate, resolvi corrigir o engano de Janderson e abrir um tópico, para que possamos abordar melhor o tema. Aqui está a postagem original: Olá, caros colegas! Hoje sabemos que a Programação Orientada a Objetos está evoluindo para a programação orientada a aspectos. Porém eu sóvi algo na prática usando Java. Existe algo que contemple essa evolução da POO para Delphi? Obrigado! [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: ComboBox de 2 colunas
Meu caro, você pode armazenar um valor em cada item do combo: iNumero := 1981; {valor inteiro para armazenar} ComboBox1.Items.AddObject('meu nome', TObject(iNumero)); {usa a propriedade Objects para armazenar o integer} iIndice := Combobox1.ItemIndex;//iIndice é variável explicativa iValor := Integer(ComboBox1.Items.Objects[iIndice]); {recuperando o valor armazenado}
[delphi-br] Re: firebird - acessar campo auto incremento
--- Em delphi-br@yahoogrupos.com.br, JB josebened...@... escreveu Rretire da trigger e busque o valor do generator no momento do post, se não se importar com sequencia pode ja trazer o valor do generator na inclusao, eu utilizo desta maneira. Rubem, caso ele tenha programado o trigger pra só preencher o valor do ID, se for nulo, nem precisa retirar da trigger. Exemplo de trigger que só preenche quando é nulo: if (new.ID is null) then new.ID = next value for GERADOR; bem, é algo assim... :-) Eu recomendo que ele trabalhe como você está sugerindo. Pegando o valor do gerador, antes da inclusão, e então fornecendo este valor ao dataset. Abraços;
Re: Res: Res: [delphi-br] delforexp
Grande Silvio! Maravilha de dica. Pra quem continua preso à versão 7 do Delphi, eu diria que é uma BAITA ajuda. Muito obrigado.
Re: Res: Res: [delphi-br] delforexp
Ah! E tem mais uma coisa importantíssima! Notem que o grid do form designer não some dentro dos componentes que abrigam outros componentes visuais. Como o TPanel, TGroupBox e TRadioGroup. Isto faz falta até no Delphi 2007 (se é que implementaram no Delphi 2009...) Taí pessoal da Embarcadero, que acompanha a lista, esta idéia é excelente. Bom, eu nem vou comentar a colorização dos blocos de comando... Abraços a todos.
Re: Res: [delphi-br] delforexp
Sirvão, sua IDE é bem dahora! Você mesmo montou as janelas para simular este esquema ancorado, ou elas estão mesmo ancoradas, como ficam no Delphi 2007? Notei uns add-ons bem bacanas, creio que são fruto do CnPack... Estou tentado a instalar aqui. O problema é que o patrão está querendo que deixemos de usar o Delphi 7. Porém, eu acredito que o projeto está tão amarrado (componentes de terceiros) à versão 7 que será impossível avançar. Abraços.
[delphi-br] Re: pouco por um sistema!!!
Parece caso de empresa pequena que perdeu o programador.
[delphi-br] Re: Ajuda - Listview como DbGrid
Olá Raphael. Você não explicou muito sobre a estrutura de seus controles visuais, então não posso dar uma dica mais pontual. Supondo que esteja usando DBEdits para alterar os campos do banco de dados, você pode armazenar junto com o Item da ListView o valor da chave primária do registro. Creio que há um loop para ler os registros da tabela e transformá-los em items, certo? Assim fica minha dica: lmeuItem.Data := TObject(MinhaDataset.FieldByName('campo_chave').AsInteger; depois, você pode recuperar este valor e fazer um FindKey no Dataset ichavePrimaria := Integer(lmeuItem.Data); MinhaDataset.SetKey; MinhaDataset.FieldByName('campo_chave').AsInteger := ichavePrimaria; MinhaDataset.FindKey; É evidente que meu código não vai funcionar, é apenas uma dica de um caminho que você pode seguir. Abraços;
[delphi-br] Re: Delphi3000 - Malware
Este problema mostra que o Delphi3000 está jogado às traças. Muito infelizmente.
Re: RES: [delphi-br] Interromper o sleep(Duracao);
Amigos, me digam aí. Sem maldade. Qual o sentido de fazer seu aplicativo congelar por alguns segundos?
[delphi-br] Re: Trabalhar com Muitos Labels
Meu caro, um TLabel, comum, não tem uma lista de labels dentro dele. Ele é único e deve ser acessado pelo seu nome: Label1.Caption... Se tiver outros 35 labels... terá de fazer Label2.Caption, Label3.Caption... e assim por diante.
Re: Res: [delphi-br] Abri frm em um panel
--- Em delphi-br@yahoogrupos.com.br, Andresa Ferreira andresa_del...@... escreveu Oi Alisson... Deu o mesmo erro. Cannot create form. No MDI forms are currently active. Andresa, peguei o bonde andando... ... deixe os FormStyle dos forms como fsNormal. Aqui vai a minha dica: Form2.BorderStyle := bsNone; Form2.Parent := PanelForm2; Form2.Align := alClient; Form2.Show; Entendeu? Abraços.
[delphi-br] Re: Delphi / Banco de Dados - Ajunda em SQL
Olá Emanuel. Estou aqui pensando... se as views não são as tabelas dinâmicas o que estaria lhe faltando? Bem, como e não entendo muito de access (pra não dizer que não entendo nada) acho que você deveria dar uma olhada nas STORED PROCEDURES do Firebird. Aqui há bastante conteúdo sobre Firebird: http://www.ibphoenix.com/main.nfs?a=ibphoenixpage=ibp_60_sqlref Mas é um tanto desatualizado. Recomendo que verifique as release notes da versão que estiver usando. Perca um tempo com isso. Sempre vale a pena. Você pode fazer um laço FOR numa stored procedure, que compute valores de registros e lhe retorne uma tabela. Pode até consultar posteriormente esta SP (stored procedure) usando where. Claro que perderá desempenho, mas dependendo do volume de dados, não será um problema. Ou pode mesmo bolar sua SP, já com parâmetros de entrada que filtrem os dados. Mas... nem sei se é disso mesmo que precisa... Será que é? Abraços.
[delphi-br] Re: Commit não insere todos os registros
Além da importante dica do Evandro, verifique se o seu objeto responsável pela transação, não está dando Commit sozinho. Pode existir a propriedade AutoCommit (ou alguma que o valha) e esta propriedade estar configurada como True.
[delphi-br] Re: Conectar Firebird+Delphi
Para conexão com o Firebird, eu recomendo este pacote: http://www.ibobjects.com/ É comercial, mas é muito bem feito. A versão que será compatível com o Delphi 2009 está a caminho.
[delphi-br] Re: Chave da tabela string, perca de performance?
Me regrei a entender que toda tabela precisa de uma chave primária numérica. Se seu sistema não for operar numa quantidade GIGANTESCA de dados, pode usar o tipo correspondente ao INTEIRO do banco de dados. Essa será a impressão digital de cada registro, dentro da tabela. Outros campos são apenas os dados. E nestes você tem liberdade de aplicar regras. Inclusive um índice (ou constraint) que não permita valores repetidos.
[delphi-br] Re: Carregar dados do DBGrid no ClientDataSet
Como está o select do ClientDataset do seu formulário de cadastro? Creio, pois faz tempo que não trabalho com ClientDataset, que deve estar como neste exemplo: SELECT CAMPO1, CAMPO2, CAMPOX FROM TABELA WHERE CAMPO_CHAVE = :CAMPO_CHAVE
[delphi-br] Re: Debugador
Será que não está faltando dar uma conferida nas configurações do projeto? Dá uma olhada nas abas Compiler e Linker. Abraço.
[delphi-br] Re: Distinct (SQL)
--- Em delphi-br@yahoogrupos.com.br, Bruno Lepesqueur brunolbra...@... escreveu Boa noite a todos! Estou tentando exibir os registros da tabela CodigosTributacao, mas preciso usar um distinct para que não sejam exibidos registros repeditos para o campo codigoTrib, ou seja, quero que mostre todos os registros da tabela, mas que não repita o CodigoTrib. Acho q tem como fazer isso usando o distinct, mas não ta dando certo! Eu achei um exemplo válido, mas ele só me mostra o campo codigoTrib. Aqui está: select distinct codigoTrib from CodigosTributação Gostaria de algo assim: selecione codigoTrib, NomeTrib, DescricaoTrib from codigosTributação e não repita o codigoTrib Obrigado! [As partes desta mensagem que não continham texto foram removidas] Fiz um teste aqui, apenas colocando a palavra DISTINCT após o select e funcionou. Usei a tabela CUSTOMER do MASTSQL. Que problema tem aí? Está usando que banco de dados? [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Programação Delphi 7 com MySQL
--- Em delphi-br@yahoogrupos.com.br, Marcos Ferreira m.abreuferre...@... escreveu Pessoal, Sempre trabalhei com o Delphi 7 em aplicações sem banco de dados. Agora me surgiu uma oportunidade de desenvolver um aplicativo relativamente simples com banco de dados para um cliente. Vou utilizar o MySQL, inclusive com acesso remoto. Gostaria de tirar algumas dúvidas com vocês. a.. Qual a melhor forma de acesso ao banco de dados? Sistema Multi-camadas? b.. Vocês usam os componentes que dão acesso direto ao banco de dados, tipo dbedit, dbgrid, etc... ou usam componentes edit, grid? Alguém teria um exemplo de sistema multi-camadas ou um manual de como construi as 3 camadas? Marcos, existem muitos caminhos para seguir. O ideal, é pensar num desenvolvimento em 3 camadas. Porém, até hoje eu não consegui colocar isso em prática. Visto que o tempo exigido para este tipo de implementação é muito maior e só deve ser aplicado em softwares que devem ter longo período de vida. Já que são estes que exigem maior manutenção, o tempo gasto no desenvolvimento é recuperado aí. Quem são, então, as 3 camadas? Primeiro é a camada de acesso aos dados. Essa camada tem apenas de realizar a conexão com o banco de dados e receber comandos para salvar alterações e encerrar a conexão. Eu acho que deve manter o mínimo de código possível nisso. Caso resolva mudar o servidor do banco de dados, (para Firebird, por exemplo) terá de se dedicar apenas a alterar o código desta camada. Em segundo as regras de negócio. Aqui vai a programação mais importante. São os métodos que vão operar sobre os dados resgatados pela primeira camada. Há muito a se discutir sobre isso. Eu, particularmente, acho muito difícil tornar essa camada independente da primeira. Em terceiro, a parte visual. Outra batelada de código, pra colocar tudo na tela. Grids e afins... Aqui vem a maior cacetada. Usar os controles DB? Nunca me pareceu que os controles DB fossem bons pra isso. Eu ainda acho que este tipo de controle é ideal para desenvolvimento rápido de aplicações menores. Mas há os ClientDatasets, que podem ajudar, caso trabalhe no esquema de separar a primeira camada em outra aplicação. Bom, há muito a se discutir... como eu ainda não realizei nada nessa área, vou parando por aqui. Vamos seguindo com suas dúvidas, ajudarei sempre que for capaz. Um abraço e boa sorte.
Res: [delphi-br] Re: Programação Delphi 7 com MySQL
--- Em delphi-br@yahoogrupos.com.br, Berdam berdamzi...@... escreveu em java se preza muito isso, mas cá entre nós, os states visuais que existem em delphi e faltam em java, ajudam em muito a retirar erros bobos que o usuário pode causar. Como disse, eu ainda não desenvolvi um projeto que justificasse uma implementação tão complexa, não tenho então experiência a fundo neste assunto. Porém, em meu projeto mais recente, criei minhas classes de persistência, partindo da TComponent. Pra quem não conhece, é mais ou menos isso: (Espero que toda minha formatação não desapareça!!) TComponent TMinhaClasseBase TCliente ...CarregarDados begin //aqui eu uso uma query que retorna os dados do cliente, pelo ID //e os coloca nas propriedades end Quem já trabalhou com persistência, talvez venha a sugerir que eu use um FrameWork pronto (uma batelada de units com classes). E essa idéia é muito tentadora. Pensei em usar tiOPF, mas fiquei um tanto reticente sobre a curva de aprendizagem e o que poderia acontecer com meu projeto se esbarrasse em algum bug, ou limitação. (Hoje, sendo realista, a comunidade Delphi não é tão promissora) Então botei a mão na massa e não me arrependo. Minhas classes fazem exatamente o que eu preciso. Falta ainda implementar as classes de Testes, ainda não aprendi a fazer isso. Mas sinto enorme falta, pois quando mudo um campo no banco de dados... meu código tem de ser alterado e se eu esqueço... POW! uma hora o sistema dá um belo erro. Todo o trabalho, deu um resultado empolgante. Pois em alguns lugares, onde eu teria de ficar repetindo SQLs, eu crio uma instância de minha classe, passo o ID do registro e tenho os dados disponíveis. Vale lembrar que estes SQLs estão tão sujeitos a erros, quanto minhas classes e, ainda pior, espalhados pelo sistema. [As partes desta mensagem que não continham texto foram removidas]