
José Luiz
Membros-
Total de itens
98 -
Registro em
-
Última visita
Tudo que José Luiz postou
-
Jhonas, Este tópico já tinha sido dado como resolvido. Não sabia se devia reabrí-lo ou iniciar um novo tópico, por isso estou iniciando um novo. Aproveitei o fim de semana para fazer um primeiro programa de teste, porém não consegui utilizar o FindKey utilizando o SortedFields. Fazendo verificações, notei que o Table1.SortedFields faz somente uma ordenação no DBGrid, como se eu fizesse um select order by, visto que posso colocar botões para qualquer um dos campos, mesmo que não estejam indexados. ( por isso o tempo de resposta é superior ao do Paradox ) Mesmo utilizando simultaneamente o Table1.IndexFieldNames , não consigo localizar um registro rapidamente, como faz o FindKey. Acredito que neste caso deva utilizar o Locate, e mesmo neste caso não consegui a forma de utilizá-lo. Mais uma vez obrigado José Luiz. Procurei localizar livros, e até mesmo cursos em Curitiba que contivessem Delphi e MySQL, mas não consegui. ( principalmente MySQL com Table). Desculpe se eu insisto na utilização de Tables, porém tenho muitos programas utilizando Tables, e nestes casos a migração para o MySQL ficaria muito mais rápida. Você tem alguma indicação de livros ou apostilas que discorram sobre este assunto ? Obrigado.
-
Perfeito. Muito Obrigado, Valeu mesmo. Não é tão rápido como no Paradox que é instantâneo, mas resolveu a minha maior dificuldade para começar com o MySQL. Abraços, José Luiz.
-
Jhonas, mais uma vez obrigado por seu interesse em ajudar. O texto realmente esclareceu algumas dúvidas que eu tinha com relação aos índices, e confirmaram o que eu imaginava que ocorria com os índices utilizando a ZQuery. Desde que o componente Zeus permite a utilização de ZTable, não deveria também utlilizar os índices nesta forma ? É essa a resposta que eu gostaria. Quando Clico no Componente ZTable, nas propriedades do Object Inspector aparece a Propriedade IndexFieldNames, mas não adianta colocar o índice, que no DBGrid, os dados não aparecem ordenados. Desculpe se eu insisto, mas não gosto de trabalhar com comandos SQL. Só vou passar a utilizá-los, se realmente não houver outra opção disponível. Novamente Obrigado, José Luiz.
-
Coloquei 4 botões, com as seguintes instruções: procedure TF_INICIO.BitBtn1Click(Sender: TObject); begin pessoas.IndexFieldNames := 'id'; end; procedure TF_INICIO.BitBtn2Click(Sender: TObject); begin pessoas.IndexFieldNames := 'nome'; end; procedure TF_INICIO.BitBtn3Click(Sender: TObject); begin pessoas.IndexFieldNames := 'Endereco'; end; procedure TF_INICIO.BitBtn4Click(Sender: TObject); begin pessoas.IndexFieldNames := 'CEP'; end; Quando clico nos botões não acontece nada. Quando eu abro a tabela pessoas no MySQL, os índices abrem junto ( como no paradox ), ou existe outra forma de abrir os índices ? Confirmei através do SQL-Front, e os índices existem. Obrigado, José Luiz.
-
Delphi 7 com Zeos, utilizando TZConnection, TZTable e TDataSource. Obrigado.
-
Preencher combobox com números de coleção
pergunta respondeu ao geraldoleal de José Luiz em Delphi, Kylix
_sql:= ' select livro,colecao from tabela where livro = + quotedstr(edit1.text) Pelo que pude notar, faltou fechar as aspas depois do igual _sql:= 'select livro,colecao from tabela where livro = ' + quotedstr(edit1.text) Abraços, José Luiz. -
Estou tentando utilizar o Banco de Dados MySQL ( InnoDB ), porém tenho algumas dúvidas. Criei uma tabela de Clientes, que contém campos indexados por CODIGO, NOME, CEP e CPF. Em um Form, coloquei um DBGrid, acessando a tabela como Table ( não como SQL ). Como faço para trocar o índice corrente, clicando no Título como faço com o Paradox ? No Paradox, coloco no onTitleClick if Column.Field.DisplayName = 'CODIGO' then Table1.IndexFieldNames := 'CODIGO' ; if Column.Field.DisplayName = 'NOME' then Table1.IndexFieldNames := 'NOME' ; if Column.Field.DisplayName = 'CEP' then Table1.IndexFieldNames := 'CEP' ; if Column.Field.DisplayName = 'CPF' then Table1.IndexFieldNames := 'CPF' ; DBGrid1.SetFocus; Com este procedimento simples, troco o índice que está sendo utilizado e permaneço no mesmo registro que estava anteriormente. Não sei como alterar o índice no MySQL. Obrigado, José Luiz
-
Muito obrigado pelas respostas. Ajudaram muito na minha escolha. José Luiz.
-
Estou pensando em trocar meu Notebook, e achei um com o Windows 7 64-Bit. Utilizo atualmente o Delphi 7, e estou pensando em passar para o 2010. Existe alguma incompatibilidade entre este sistema e o Delphi ? Obrigado, José Luiz
-
(Resolvido) Retângulo com cantos arredondados
pergunta respondeu ao José Luiz de José Luiz em Delphi, Kylix
Perfeito, muito obrigado por mais essa dica. Abraços, José Luiz -
(Resolvido) Retângulo com cantos arredondados
pergunta respondeu ao José Luiz de José Luiz em Delphi, Kylix
Jhonas, obrigado por sua respossta, porém tenho dois problemas: 1 ) não sei como criar um componente ancestral, portanto optei pela segunda opção. 2 ) baixei o arquivo indicado, adicionei ao projeto, mas não sei como devo utilizá-lo. Se puder dar mais informções, agradeço. Abraços, José Luiz -
(Resolvido) visualizador de imagens jpg
pergunta respondeu ao aalessandre de José Luiz em Delphi, Kylix
Para a imagem aparecer inteira, coloque Proportional := True Abraços, José Luiz. -
(Resolvido) visualizador de imagens jpg
pergunta respondeu ao aalessandre de José Luiz em Delphi, Kylix
Coloque JPEG no uses, que irá funcionar. Abraços, José Luiz. -
Faltou fechar os parênteses. Colocar o ')' de fechamento, antes do then. Abr. José Luiz
-
Em um Form, é possível fazer um retângulo com cantos arredondados, utilizando na ferramenta Shape, a forma stRoundRect. Como posso fazer o mesmo no QuickReport, se só tenho no QRShape, a opção qrsRectangle ? Obrigado, José Luiz.
-
Abrir Tabela Paradox em modo exclusivo
pergunta respondeu ao José Luiz de José Luiz em Delphi, Kylix
Obrigado por sua resposta, mas neste caso a tabela será utilizada apenas para trazer as preferências de cada usuário. Serve somente para saber se o usuário já está sendo utilizado em outra máquina, ou seja, crio uma Tabela com o nome de cada usuário, e abro de modo exclusivo, o que impede que a mesma senha seja utilizada em outro computador ao mesmo tempo. Para isso, preciso verificar se o arquivo já está aberto, antes de abrí-lo. Caso o usuário tente usar a mesma senha em outro micro da rede, deverá receber uma mensagem de que o usuário já está sendo utilizado em outra máquina, e encerrar o programa. Sei que existem outras formas, porém desta maneira consigo criar um sistema eficiente de controle de utilização. Obrigado, José Luiz. -
Tenho uma rotina onde abro uma tabela paradox de modo exclusivo. No caso de um outro usuário tentar entrar na mesma rotina, o programa irá gerar um erro, pois o arquivo já está aberto. Como posso testar se a tabela já está aberta, antes que o Delphi gere o erro ? Não sei qual comando devo utilizar para verificar se o arquivo já está aberto, antes de abrí-lo. Obrigado, José Luiz.
-
Obrigado por sua resposta, vou tirar a senha. José Luiz
-
Criei um banco de dados com senha para não permitir o acesso através do DataBase Desktop, porém eu gostaria de abrir o banco através do programa, sem que fosse necessário digitar a senha. Qual comando devo utilizar ? Obrigado, José Luiz.
-
Jhonas, Descobri uma rotina que faz parte do que eu desejo. ActiveControl - Envia valor para Edit que tiver em foco Verifica se o componente que está com o foco é da classe do TEdit, se for envia um Texto para esse componente. procedure TForm1.SpeedButton1Click(Sender: TObject); begin if (ActiveControl is TEdit) then (ActiveControl as TEdit).Text := 'Teste'; end; Funciona para outros componentes, trocando a propriedade Text utilizado neste exemplo pela propriedade do outro componente. Desta forma, consigo escrever no Edit que está no foco, mas ainda não sei como pegar o texto que está nesse Edit, e enviá-lo alterado no lugar da palavra 'Teste' do exemplo acima. Obrigado, José Luiz.
-
Jhonas, obrigado por sua resposta ( muito interessante a forma colocada ), porém não atende ao que eu necessito. No caso mostrado, se eu desejar digitar tudo em caixa alta, terei problemas, além do fato que eu precisarei repetir o ONKEYPRESS em todos os edits do programa. O que eu gostaria de obter é o seguinte. A tecla F9 chama uma função que verifica qual o Edit do programa ( em todos os Forms do programa ) que está em foco no momento, e devolve a String invertida para esta mesma Edit. Desta forma, eu só preciso fazer o chamado a esta função uma vez, no início do programa. Obrigado, José Luiz. PS. Eu tenho esta rotina em Clipper, e estou tentando levar para o Delphi. No Clipper, basta eu colocar no início do programa Set Key -8 to Inverte_CX que o programa se encarrega do restante. ( a função Inverte_CX já está em um arquivo que eu chamo em todos os programas, ou melhor, chamava ! - No Delphi eu tenho um arquivo semelhante. )
-
É muito comum as pessoas digitarem um texto, e só após algum tempo notarem que estão com a Caps Lock acionada. Para não ter que apagar e escrever tudo novamente, estou tentando fazer com que isto possa ser feito de forma automática, apenas pressionando a tecla F9, por exemplo. Para testar, fiz uma rotina bem simples, que necessito de ajuda para completar. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Function Inverte_CX ( TEXTO : string ): string ; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } procedure WMHotKey ( var Msg: TWMHotKey ); message WM_HOTKEY ; end; var Form1: TForm1; HKeySet9 : Integer; implementation {$R *.dfm} procedure TForm1.WMHotKey ( var Msg: TWMHotKey ); begin if ( Msg.HotKey = HKeySet9 ) then begin if Edit1.Focused = True then Edit1.Text := Inverte_CX ( Edit1.Text ) ; if Edit2.Focused = True then Edit2.Text := Inverte_CX ( Edit2.Text ) ; if Edit3.Focused = True then Edit3.Text := Inverte_CX ( Edit3.Text ) ; if Edit4.Focused = True then Edit4.Text := Inverte_CX ( Edit4.Text ) ; end ; end; Function TForm1.Inverte_CX ( TEXTO : string ): string ; var mVAR_I : String ; mVAR_F : String ; mVAR_R : String ; mPOS : Integer ; i : Integer ; begin mVAR_I := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÇÃÕçãõÁÉÍÓÚáéíóú' ; mVAR_F := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZçãõÇÃÕáéíóúÁÉÍÓÚ' ; mVAR_R := '' ; for i := 1 to length ( Texto ) do begin mPOS := Pos ( Texto, mVAR_I ) ; if mPOS > 0 then mVAR_R := mVAR_R + Copy ( mVAR_F, mPOS, 1 ) else mVAR_R := mVAR_R + Texto ; end ; result := mVAR_R ; end ; procedure TForm1.FormCreate(Sender: TObject); begin HKeySet9 := GlobalAddAtom ( 'Hotkey9' ); RegisterHotKey ( Handle, HKeySet9, 0, vk_F9 ); end; end. Neste caso, tenho 4 Edits, e preciso fazer a verificação de qual Edit está no foco para então alterá-lo. A minha dúvida, é como fazer isto de forma automática, ou seja, o programa verifica qual Edit ou DBEdit está no foco, e retorna a String alterada para este campo, em qualquer lugar do programa, sem que eu necessite efetuar manualmente a verificação de qual Edit está no foco. Antecipadamente, agradeço, José Luiz.
-
Obrigado, Alberto. Resolveu no DBGrid, mas quando pego os valores dos campos para jogar em um Edit, continua vindo invertido ( m/d/aaaa ). Espero que a Microsoft resolva este problema antes da liberação da versão definitiva. Abraços, José Luiz.
-
Estou testando o Windows 7, porém não consigo formatar as datas no Delphi. Já configurei a data no Painel de Controle - Configurações Regionais. Já rodei os programas como administrador. Já rodei no modo de compatibilidade com o Windows XP, e nada adianta. Configurei no painel de controle, o mês como dd/mm/aaaa, e quando abre o programa, a data vem como m/d/aaaa. Alguém sabe como resolver ? Obrigado, José Luiz.
-
Outra forma, é a seguinte: Depois de abrir o banco de dados, coloque : ( Table1.FieldByName ( 'VALOR' ) as tfloatfield ).displayformat := '###,##0.0000' ; Não esqueça de colocar DB no uses. José Luiz