
Capablanca
Membros-
Total de itens
295 -
Registro em
-
Última visita
Tudo que Capablanca postou
-
Como Saber Se Um Edit Tem Caract. Numericos
pergunta respondeu ao Léo de Capablanca em Delphi, Kylix
Outra forma seria: 1) Coloque um EDIT e um BOTÃO; 2) Adicione o evento OnClick do BOTÃO. =========================================== unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); private{ Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var I: Int64; J: Integer; E: Extended; S: string; begin J := -1; S := 'DESCONHECIDO'; try if (Pos(DecimalSeparator, Edit1.Text)>0) then begin Val(Edit1.Text, E, J); if (J=0) then S := 'FLOAT NUMBER'; end else begin Val(Edit1.Text, I, J); if (J=0) then S := 'INTEGER'; end; if (J<>0) then S := 'STRING'; finally ShowMessage(Edit1.Text + ' is a ' + S); end; end; end. =========================================== -
Você usa BDE para acessar seu banco de dados?
-
Você usa BDE para acessar seu banco de dados?
-
Como Saber Se Um Edit Tem Caract. Numericos
pergunta respondeu ao Léo de Capablanca em Delphi, Kylix
Um outro exemplo bastante simples e parece ser mais interessante que o primeiro que eu dei (). É semelhante (quase igual) ao que o nosso colega postou. 1) Coloque um objeto EDIT; 2) Coloque um objeto BUTTON; 3) Adicione o evento OnClick do objeto BUTTON; 4) Se você executar este exemplo dentro do DELPHI (RUN), aparecerá uma mensagem de erro. Isto é normal. Compile e Construa o programa e execute-o fora do Delphi (pelo Windows Explorer, por exemplo), e ele vai funcionar corretamente. UNIT Completa: ============================================= unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin try if pos(',',edit1.text) > 0 then begin StrToFLoat(edit1.text); showmessage('FLOAT'); end else begin StrToInt(edit1.text); showmessage('INTEGER'); end; except showmessage('STRING'); end; end; end. ============================================= Abraços. -
Como Saber Se Um Edit Tem Caract. Numericos
pergunta respondeu ao Léo de Capablanca em Delphi, Kylix
Olá, fiz uma UNIT completa pra você. Observações: 1) Eu coloquei dois objetos EDIT (Edit1 e Edit2); 2) Configurei a propriedade 'TAG' do Edit1 com o valor '1' (só digite o número um); 3) Para realizar o procedimento eu utilizei o evento OnExit do Edit1. Logo, adicione o evento OnExit do Edit1; 4) O Edit2 eu só coloquei para você poder clicar em outro objeto fora do Edit1; 5) Este exemplo faz com que a pessoa não saia do Edit1 caso ela deixe o Edit1 vazio ou se ela digita um valor que não seja um número inteiro. Caso ela digite um número inteiro, aparecerá a mensagem 'É um número inteiro' e o foco vai para o Edit2; 6) Se você executar este exemplo dentro do DELPHI (RUN), aparecerá uma mensagem de erro. Isto é normal. Compile e Construa o programa e execute-o fora do Delphi (pelo Windows Explorer, por exemplo), e ele vai funcionar corretamente. ================================================ unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure Edit1Exit(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Edit1Exit(Sender: TObject); begin if (Sender as TEdit).Text='' then begin Showmessage('Não foi digitado nenhum dado.'); (Sender as TEdit).SetFocus; end else begin Try if (Sender as TEdit).Tag= 1 then StrToInt((Sender as TEdit).Text); ShowMessage('É um número inteiro'); Except On EConvertError do begin ShowMessage('Não é um número inteiro'); (Sender as TEdit).SetFocus; end; end; end; end; end. ================================================ Abraços. -
Para uma dúvida rápida nada melhor que uma resposta longa (). Bem, vou demonstrar como fazer a conexão que você quer com o uso dos componentes IBX (Interbase Express). Vale lembrar que a conexão IBX possui componentes especialmente desenvolvidos para dar acesso nativo ao banco de dados Interbase, não utilizando nenhuma engine de acesso aos dados. Os componentes a serem utilizados são: - IBDataBase: responsável pela conexão entre a aplicação e o banco de dados Interbase; - IBTransaction: responsável pelo controle das transações efetuadas pela aplicação; - IBDataSet (ou IBQuery junto com IBUpdateSQL); - DataSource. Vou dar o exemplo utilizando o IBDataSet ao invés do IBQuery mais IBUpdateSQL. Eu estou utilizando o DELPHI 7. Descrição de cada componente: - IBDataBase: responsável pela conexão entre a aplicação e o banco de dados Interbase; - IBTransaction: responsável pelo controle das transações efetuadas pela aplicação; - IBDataSet: componente responsável pela manutenção dos dados contidos em uma tabela. O IBDataSet deve ser ligado ao IBTransaction por intermédio da propriedade 'Transaction', e ao IBDataBase por intermédio da propriedade 'Database'; - DataSource: componente responsável pela ligação entre a fonte que contém os dados (no nosso caso, o IBDataSet) e os componentes DataWare (por exemplo, DBEdit, DBGrid, etc.) 1) Insira no seu form o componente IBDataBase, que se encontra na guia Interbase; 2) Agora é necessário configurar o IBDataBase1 para acessar o seu banco de dados interbase. Para tanto, dê um duplo-clique sobre o IBDataBase1 e uma caixa de diálogo será aberta. Na caixa De texto 'Database' digite o caminho e o nome do banco de dados (.GDB) a ser utilizado. Na caixa de texto 'UserName' digite 'SYSDBA' e na caixa de texto Password digite 'masterkey'. Configure a caixa de seleção 'LoginPrompt', habilitando ou não a necessidade de se fazer login para acessar o banco de dados. Teste a conexão clicando em TEST e se tudo der certo, aparecerá uma mensagem dizendo que a conexão foi realizada com sucesso; 3) Insira no seu form o componente IBTransaction que se encontra na guia Interbase e Altere a sua propriedade 'DefaultDatabase' do object inspector para 'IBDatabase1'; 4) Selecione novamente o componente IBDatabase1 e altere a sua propriedade DefaultTransaction para IBTransaction1; 5) Insira no seu form o componente IBDataSet1 que se encontra na guia Interbase e um componente DataSource que se encontra na guia DataAccess; 6) Selecione o componente IBDataSet1 e altere a sua propriedade 'DataBase' para IBDataBase1 (isto liga o DataSet ao banco de dados). Observe que a propriedade 'Transaction' do IBDataSet1 já foi automaticamente preenchida para IBTransaction1; 7) Selecione o componente DataSource1 e altere a sua propriedade 'DataSet' para IBDataSet1. PRONTO, a conexão está feita. 8) Para fazer a consulta SQL, selecione o componente IBDataSet1, clique com o botão direito do mouse e, ao abrir o menu suspenso, clique sobre a opção EDIT SQL. Basta digitar sua sentença SQL no quadrao do lado direito; 9) Com o IBDataSet você poderá fazer isto que você comentou sobre o ADOQuery, só que da seguinte forma: - IBDataSet1.Close; - IBDataSet1.SelectSQL.Clear; - IBDataSet1.SelectSQL.Add(SuaVariavelQueContemASentencaSQL); - IBDataSet1.Open; OBSERVAÇÕES: 1) Este tipo de conexão serve também para acessar um banco de dados Firebird. No entanto, é necessário observar que ela não é recomendada para o FireBird 1.5. Caso vc. queira usar o Firebird, minha sugestão é não utilizar componentes IBX, mas sim os componente DBExpress; 2) Na minha opinião, o uso do IBDataSet ao invés da dupla IBQuery mais IBUpdateSQL é melhor é mais rápido; 3) Caso você queira usar o IBQuery mais o IBUpdateSQL, basta retirar o IBDataSet e fazer os ajuste necessários, os quais você conseguirá fazer sem problemas; 4) Clicando com o botão direito do mouse sobre o IBDataSet você encontra opções já conhecidas como o FIELDS EDITOR. Outras opções bem úteis são EDIT SQL e o DATASET EDITOR. Abraços.
-
De acordo com a última pesquisa (em 2003) realizada pela revista DELPHI MAGAZINE só com usuários DELPHI, demonstrou que 51% deles utilizam o programa HELP & MANUAL. Eu mesmo já testei e é ótimo. Além de fácil manuseio, tem ótimos recursos (como por exemplo, criar arquivos de ajuda no formato HLP, CHM ou HTML). Site do produto: http://www.ec-software.com/hmpage.htm
-
Nunca fiz isso, mas se você estiver usando o Delphi 7, na pasta DEMOS/FRAMES/DB/ tem um projeto que parece resolver sua questão. Parece que a chave de tudo está na utilização de frames. Dê uma olhadinha e retorne caso não tiver ajudado.
-
Limitar Numero De Registros De Uma Select
pergunta respondeu ao Progr'amador de Capablanca em Delphi, Kylix
Não vou utilizar seu código, mas vou dar um exemplo que irá ajudar. ========================== SELECT FIRST 30 * FROM NomeDaTabela ========================== Você pode usar o comando SKIP para pular determinado número de registro(s) entre a sua seleção. Exemplo: =============================== SELECT FIRST 30 SKIP 2 * FROM NomeDaTabela =============================== Abraços. -
Olá Alessandro, eu não mexo com Paradox, mas vou deixar apenas uma dica que pode não ser útil para nada, mas de repente ajuda em alguma coisa. Isto que você está querendo implementar tem no livro do Carlos Oliviero, DELPHI 7 - CADASTRO E ESTOQUE, com instruções super didáticas e desenvolvidas passo a passo. A única diferença é que o banco de dados do livro é o Interbase. Abraços.
-
Olá colega, a sua questão, pelo menos para mim, não dá para ser respondida assim tão simples. Eu sugiro (não se ofenda com a minha sugestão, por favor), que você dê uma "olhada" no livro DELPHI 7 - CADASTRO E ESTOQUE do Carlos Oliviero. Neste livro há uma explicação passo a passo de como controlar o acesso (utilizando banco de dados Interbase) e como exibir o login do usuário na barra de status. Basicamente, o que está no livro é o seguinte: 1) ao tentar iniciar o programa, primeiro é aberta uma janela pedindo o login e a senha; 2) após o usuário digitar o login e a senha, o banco de dados é consultado através de uma sentença SQL e, caso as informações estejam corretas, é retornado apenas um registro, contendo todas as informações daquele usuário, os quais são armazenados no QueryLogin; 3) Pronto. Já que o QueryLogin contém as informações do usuário, basta buscar as mesmas através de uma consulta FieldByName. Dependendo do seu grau de conhecimento sobre o Delphi, você não entendeu muita coisa. No entanto, fica aí a dica do livro. Obs.: no livro são utilizadas duas tabelas no banco de dados (tabela USUÁRIO, a qual contém as informações do mesmo e a tabela PERFIL, a qual contém informações sobre o nível de acesso do mesmo sobre o sistema). Abraços.
-
Puxa, legal esta iniciativa de seu colégio. Não tenho nada em mente, agora, mas prometo que vou pensar sobre e se tiver alguma idéia mais ou menos legal eu posto aqui. O projeto precisa versar sobre algum tema específico (por exemplo, natureza, saúde, etc.)? Tem mais alguma informação útil? Abs. e desde já desejo boa sorte.
-
Olá, Vou dar o exemplo usando um objeto TEdit que eu nomeei para Edit1 (campo NAME no objecto inspector). 1) Selecione o objeto Edit1; 2) Vá na guia EVENTS no Object Inspector e dê um duplo-clique na caixa de texto da propriedade OnKeyPress; 3) Insira em sua procedure as linhas que estão en negrito na listagem abaixo: procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then begin selectnext(activecontrol, True, True); key:=#0; end; end; O evento OnKeyPress é disparado sempre que uma tecla qualquer foi pressionada. Logo, se criarmos uma rotina para verificar o momento em que a tecla ENTER for pressionada, poderemos fazer com que o cursor salte para o outro campo. Levando em consideração que o caractere ASCII para a tecla ENTER é representado por #13, lançamos mão da rotina acima. Dica: entre no site http://www.ceberus.com/lmd/products/index.php3 e faça o download (freeware) do LMD-Tools SE. Este componente VCL tem vários objetos (como por exemplo TEdit) os quais vêm com várias opções que não estão no Delphi padrão. Um dos exemplos é que no TEdit deles já tem uma propriedade TABonENTER, a qual realizada o que vc. quer sem necessitar programar. Abraços colega.
-
Olá, eu não sei implementar o que vc. deseja através do Delphi, pois o objeto DBEdit alinha o conteúdo automaticamente à esquerda quando ele possui o foco. No entanto, a título de sugestão, baixe o LMD TOOLS - SE (freeware). Ele é um pacote com muitos (bota muitos) componentes e dentro da paleta LMD DBEdit, você vai encontrar o objeto TLMDDBEdit o qual tem, dentro de suas propriedades no OBJECT INSPECTOR, a opção para que o alinhamento fique só à direita. Abraços.
-
Siga estes passos: 1) selecione a janela em que vc. quer colocar uma barra de status (por exemplo, Form1); 2) insira dentro dela o componente StatusBar (guia Win32); 3) dê um duplo clique na barra de status que vc. criou (uma janela é aberta); 4) cliquem sobre o botão ADD NEW para inserir uma divisão no panel da barra de status; 5) mantenha esse panel ainda selecionado e na propriedade WIDTH, do object inspector, digite 70 para alterar sua largura; 6) clique novamente sobre o botão ADD NEW para inserir uma nova divisão no panel da barra de status; 7) mantenha-o selecionado e deixe em branco a propriedade WIDTH; 8) selecione a sua janela (Form1); 9) na guia events do object inspector, dê um duplo-clique na caixa de texto do evento OnActivate para abrir sua procedure; 10) insira as seguintes linhas dentro da procedure: ================================================ statusbar1.Panels[0].text:= ' ' + formatdateTime(' hh:nn', Now); statusbar1.Panels[1].text:= formatdateTime(' dddd ", " dd " de " mmmm " de " yyyy', Now); ================================================ 11) selecione sua janela (Form1); 12) insira em seu interior o componente TIMER (está na guia SYSTEM); 13) selecione o componente TIMER que você acabou de inserir e altere a propriedade INTERVAL na janela do object inspector para 60000; 14) clique na guia EVENTS do object inspector; 15) dê um duplo clique na caixa de texto do evento OnTimer para abrir sua procedure; 16) digite o seguinte código: ================================================ statusbar1.Panels[0].text:= ' ' + formatdateTime(' hh:nn', Now); ================================================ Pronto... Neste exemplo não coloquei os segundos (não sabia se vc. queria). Caso vc. queira colocá-los: 1) acrescente ":SS" dentro de FormatDateTime... Ficaria assim (...) formatdateTime(' hh:nn:ss' .... 2) mude a propriedade INTERVAL do TIMER para 1000 (assim o TIMER irá atualizar a hora a cada segundo e não a cada 60 segundos como no exemplo acima). Abraços.
-
Olá, vc. consegue baixá-lo na seguinte página: http://sourceforge.net/project/showfiles.php?group_id=35994 Vc. encontrará as versões dentro do item ZEOS DATABASE OBJECTS... Parece que a úlitma versão é a 6.1.5.
-
Valeu... Brigadão.
-
Não sei se resolve, mas se não tiver o READ ONLY, deve ter o ENABLED, o qual vc. poderá deixar FALSE (o resultado é diferente do READ ONLY mas eu não sei qual é o seu objetivo). Dê uma olhada em http://www.scalabium.com/faq/dct0135.htm
-
Vou criar um exemplo para você...
-
Olá, eu tb. sou um iniciante em Delphi e tem enfrentado problemas do tipo do seu... Uma alternativa que eu encontrei foi utilizar um MaskEdit de terceiros. No caso, eu usei o LMDMaskEdit do pacote LMD TOOLS - SE. Você pode fazer o download no seguinte endereço http://www.ceberus.com/lmd/download/index.php3. Espero que ajude... Acho que vc. vai gostar.