
Duduh_Capixaba
Membros-
Total de itens
258 -
Registro em
-
Última visita
Tudo que Duduh_Capixaba postou
-
(Resolvido) Importar excel para paradox em delphi
pergunta respondeu ao pcst de Duduh_Capixaba em Delphi, Kylix
Cara, no Excel tem uma forma de você gravar sua planilha em formato texto. A partir daí acho que fica mais fácil seu trabalho. Aqui mesmo no fórum você acha "n" formas de importar txt para vários bancos de dados diferentes. Abraço! -
(Resolvido) Como ordeno por ordem alfabetica uma table (BDE)?
pergunta respondeu ao Greed de Duduh_Capixaba em Delphi, Kylix
Propriedade "IndexFieldNames" da tabela. Basta digitar o nome do campo que você deseja ordenar. Se você desejar usar mais de um campo como ordenação, por exemplo, primeiro campo: NOME, segundo campo: DATA_NASC, basta separar o nome dos campos por um ";" (ponto-e-vírgula, sem as aspas). Ficaria: NOME;DATA_NASC. Tenta aí e dpois posta. Abraço! -
(Resolvido) Como saber se um campo da tabela foi alterado?
pergunta respondeu ao Duduh_Capixaba de Duduh_Capixaba em Delphi, Kylix
Resolvido pessoal! Encontrei a propriedade que eu queria. Vou deixar postado caso alguém precise: A propriedade é a "Modified" da Table, no meu caso, tbTable.Modified. Ela indica se a tabela sofreu alguma alteração, com isso você pode controlar se que postar ou cancelar uma edição da tabela, por exemplo. Este é meu código verdadeiro (uma parte dele): begin . . . tbTable.Open; tbTable.First; ProgressBar1.Max := tbTable.RecordCount; while not tbTable.Eof do begin tbTable.Edit; if tbTable.FieldByName('ECF1').Value > ' ' then begin if tbTable.FieldByName('ECF1').Value = AL01E then tbTable.FieldByName('ECF1').Value := AL01D . . . end; if tbTable.FieldByName('ECF2').Value > ' ' then begin if tbTable.FieldByName('ECF2').Value = AL01E then tbTable.FieldByName('ECF2').Value := AL01D . . . end; if tbTable.FieldByName('ECF3').Value > ' ' then begin if tbTable.FieldByName('ECF3').Value = AL01E then tbTable.FieldByName('ECF3').Value := AL01D . . . end; if tbTable.FieldByName('ECF4').Value > ' ' then begin if tbTable.FieldByName('ECF4').Value = AL01E then tbTable.FieldByName('ECF4').Value := AL01D . . . end; if tbTable.Modified then tbTable.Post else tbTable.Cancel; tbTable.Next; ProgressBar1.Position := ProgressBar1.Position + 1; end; //end while . . . end; Agora posso controlar quando quero postar e quando quero cancelar a edição da tabela, sem uso de variáveis, como eu estava fazendo antes. Obrigado pela ajuda aê, e espero que essa dica possa ajudar mais alguém. Abraço! -
(Resolvido) Como saber se um campo da tabela foi alterado?
pergunta respondeu ao Duduh_Capixaba de Duduh_Capixaba em Delphi, Kylix
Olá! Na verdade eu já estou com meu programa rodando assim, do jeito que você descreveu, só que ao invés de comparar com a variável, eu comparo o campo novamente, assim: var Aux : String begin if tbTable.Fields[1].Value = '' then begin Aux := tbTable.Fields[1].Value; tbTable.Edit; tbTable.Fields[1].Value := variável; end; if tbTable.Fields[1].Value = Aux then tbTable.Cancel; else tbTable.Post; end; Só que estou usando muitas variáveis string. Gostaria de tirá-las e usar algum comando da própria tbTable, se isto for possível. Obrigado pela resposta, abraço! -
Olá pessoal! Eu tenho um código em loop onde vários campos recebem dados dependendo se ele já possui valores. Isso não vem muito ao caso, o importante é que preciso saber quando um campo recebe dados, exemplo: if tbTable.Fields[1].Value = '' then begin tbTable.Edit; tbTable.Fields[1].Value := variável; tbTable.Post; end; Eu gostaria que antes da linha "tbTable.Post" eu soubesse se o campo "Fields[1]" recebeu a variável. Eu poderia muito bem colocar uma outra variável do tipo boolean após a linha "tbTable.Fields[1].Value := variável" como uma verificação, mas vi uma propriedade da tabela chamada OnChange e gostaria de usá-la, ao invés de criar uma nova variável. Pois o programa é muito mais complexo do que este pequeno trecho, e eu teria que implementar várias variáveis de verificação. Espero ter sido claro.
-
Acho que o seu maior problema é a estrutura da base de dados. Será que não seria melhor você tentar modificar essa base de dados?! Tente colocar um "_" (underline) entre o nome e os sobrenomes, por exemplo. Acho que assim vai ficar mais fácil pra importar.
-
(Resolvido) Como limpar um ADOTable?
pergunta respondeu ao Duduh_Capixaba de Duduh_Capixaba em Delphi, Kylix
Pois é Jhonas, tb achei estranho o fato de o meu código retornar uma msg de erro, pois no help do Delphi está bem claro que o código deveria funcionar daquela maneira. O seu código funciona sim, eu mesmo já havia feito dessa forma, só que usando o EOF. Mas tudo bem, só queria saber o porque do meu código não funcionar. Eu resolvi o problema colocando um ADOQuery no projeto e esvaziando a tabela via SQL, que eu acho que é mais rápido do que um loop. Obrigado pela resposta, abraço! -
Olá moçada! Tenho um ADOTable com vários registros. Como eu faço pra limpar, esvaziar, deletar todos os registros dessa tabela? Tentei usar o comando Tabela.DeleteRecords, que está na ajuda do Delphi, mas me retorna o seguinte erro: "Operação não permitida neste contexto". Meu código está assim: Tabela.Open; Tabela.DeleteRecords; Tabela.Close; Tentei vários outros códigos, mas não obtive sucesso. Peço a ajuda de vocês. Vlw!
-
(Resolvido) Exportar dados para txt com colunas
pergunta respondeu ao Duduh_Capixaba de Duduh_Capixaba em Delphi, Kylix
Perfeito Micheus! Obrigado a você e ao José Luiz. Todas as duas funções resolveram meu problema. Abraço! Obs: Tópico resolvido -
(Resolvido) Exportar dados para txt com colunas
pergunta respondeu ao Duduh_Capixaba de Duduh_Capixaba em Delphi, Kylix
Testei os dois métodos e eles funcionaram! A função do José Luiz é boa, mas ignora campos nulos e tive que fazer umas modificações no código. A função do Micheus tb é boa, mas está alinhando o texto à direita, sendo que preciso dele alinhado à esquerda. Tentei trocar o comando "RightStr" para "LeftStr", mas não funcionou. As colunas são criadas, mas sem texto... Com a modificação, só aparecem um monte de espaços vazios. Vou continuar tentando, mas vocês já me deram um grande empurrão. Obrigado! ---------------------------------------------------------------------------------------------- Edição: Só pra dizer que a função do José Luiz funcionou como eu queria. Para que ela passe a enxergar os campos nulos, basta mudar a seguinte linha: if length ( mTEXTO ) > 0 then begin para: if length ( mTEXTO ) >= 0 then begin Pronto, só isso. Estou usando ela, mas gostaria que o Micheus me ajudasse a modificar a função dele tb. Abraço! -
(Resolvido) Exportar dados para txt com colunas
pergunta respondeu ao Duduh_Capixaba de Duduh_Capixaba em Delphi, Kylix
Opa, vlw moçada! Vou testar os dois métodos e assim que tiver um resultado posto aqui. Micheus, eu estava procurando pela palavra "colunado", por isso não encontrei esse tópico. Obrigado! -
Olá pessoal! Como já deu pra perceber no título, eu consigo exportar os dados da minha base de dados para um arquivo texto, isso é fácil. Exportar os dados separados com ";" (ponto e vírgula) ou qualquer outro caracter eu já consegui. Mas meu caso é diferente, e não encontrei nada relacionado com isso aqui no fórum. Vamos lá: Tenho que criar um arquivo txt, com os dados dos clientes do meu sistema, no seguinte layout: Campo ----- Início ----- Tamanho ----- Tipo de Dado ---------------------------------------------------------------------- Código ----- 001 ----- 15 ----- Alfanumérico Nome ----- 016 ----- 40 ----- Alfanumérico CPFCGC ----- 107 ----- 20 ----- Numérico Endereço ----- 127 ----- 40 ----- Alfanumérico Bairro ----- 167 ----- 15 ----- Alfanumérico Cidade ----- 182 ----- 15 ----- Alfanumérico UF ----- 197 ----- 02 ----- Alfanumérico CEP ----- 199 ----- 08 ----- Numérico Fone ----- 207 ----- 20 ----- Alfanumérico Ou seja, o arquivo texto deve ser montado por colunas. Cada uma começa em um determinado ponto do arquivo e tem um determinado tamanho. Mas não sei como contar espaços dentro de um txt. Alguém tem alguma idéia de algum comando que eu possa mover o cursor dentro do arquivo? Esse é o código que eu uso para exportar com ponto e vírgula: procedure TForm1.Button2Click(Sender: TObject); var F: TextFile; begin AssignFile(F, NomeArq); Rewrite(F); Table1.Open; Table1.First; while not Table1.Eof do begin Writeln(F, Table1.Fields[0].AsString + ';' + Table1.Fields[1].AsString + ';' + Table1.Fields[2].AsString + ';' + Table1.Fields[3].AsString + ';' + Table1.Fields[4].AsString + ';' + Table1.Fields[5].AsString + ';' + Table1.Fields[6].AsString + ';' + Table1.Fields[7].AsString + ';' + Table1.Fields[8].AsString); Table1.Next; end; CloseFile(F); end;
-
como desenho tabelas estilo word em delphi?
pergunta respondeu ao Greed de Duduh_Capixaba em Delphi, Kylix
Talvez exista um modo de se acrescentar linhas em objetos Grid, mas eu não sei como. Mas ainda acho que o caminho é esse mesmo. Vou fazer alguns testes e dpois deixo aqui o que eu conseguir. Outra coisa...qual seria a finalidade dessa tabela? Tipo, você vai usar os dados dela pra quê? Ela vai ficar permanente no programa, ou é temporária? -
como desenho tabelas estilo word em delphi?
pergunta respondeu ao Greed de Duduh_Capixaba em Delphi, Kylix
Não seria o caso de você trabalhar com um Grid de sua preferência, só alterando algumas configurações até chegar ao que você precisa? Se não me engano, com alguns ajustes nas propriedades do DBGrid você consegue esse resultado. -
Vamos pegar como base o caso do banco de dados Paradox para Firebird. Essa base Firebird já existiria, ou seu programa vai criá-la de acordo com a estrutura da base Paradox?
-
Estranho ter dado erro, aqui comigo deu certo. O Refresh serve para atualizar a imagem a cada posição nova que ela recebe. Assim, a imagem aparece "andando" pelo seu Form. Sem o refresh, sua imagem vai aparecer na última posição de uma vez só. Sendo assim, o código não teria sentido, e seria apenas assim: "Image1.Left := Última posição", sem a necessidade do comando For.
-
Tente isso: procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin for i := 8 to 544 do begin Image1.Left := i; Image1.Refresh; end; end; No caso, eu coloquei no evento Click de um Button, mas você pode colocar no evento OnActivate do seu Form. Os números que a variável "i" recebe vão depender do tamanho do seu Form. Outra coisa bacana que você pode fazer é colocar um comando Sleep, pra figura percorrer o Form mais lentamente. Não abuse dos milisegundos, coloque algo em torno de 10 a 20 milisegundos. Espero que te resolva. Abraço!
-
Olá Rafael! Sua pergunta está muita vaga, especifique melhor. Por exemplo: qual objeto você está usando (ícones podem ser adicionados em vários objetos do Delphi)? Em que situação você quer mover este objeto? Ao clique de um botão, ao mover o mouse, na abertura do Form... Explique um pouco melhor o que você pretende fazer em seu projeto pra podermos ajudar. Abraço!
-
(Resolvido) Form de LoGon...
pergunta respondeu ao Jhonatas araujo de Duduh_Capixaba em Delphi, Kylix
Hummmmm...agora estou entendendo o que você quer, Jhonatas! Uma tela Splash. Nossa, se tivesse explicado desde o início, não precisaria de tantas voltas. Tenho um projeto aqui onde eu uso uma. O código é o seguinte: program Sistema; uses Forms, SysUtils, UMenuPrin in 'UMenuPrin.pas' {frmMenuPrin}, USplash in 'USplash.pas' {frmSplash}, UDM in 'UDM.pas' {DM: TDataModule}, ULogin in 'ULogin.pas' {frmLogin}, UCadPadrao in 'UCadPadrao.pas' {frmCadPadrao}, UCadCliente in 'UCadCliente.pas' {frmCadCliente}, UCadForn in 'UCadForn.pas' {frmCadFornecedor}, UCadFunc in 'UCadFunc.pas' {frmCadFuncionario}, UCadCateg in 'UCadCateg.pas' {frmCadCategoria}, UCadProd in 'UCadProd.pas' {frmCadProd}; {$R *.res} begin Application.Initialize; Application.CreateForm(TfrmLogin, frmLogin); Application.CreateForm(TfrmMenuPrin, frmMenuPrin); Application.CreateForm(TDM, DM); Application.CreateForm(TFrmSplash, FrmSplash); FrmSplash.Show; //exibe a tela FrmSplash FrmSplash.Refresh; // dá um refresh na tela Sleep(2000); // (aguarda 02 segundos) - inclua a unit "SysUtils" na cláusula Uses. FrmSplash.Release; // Elimina a tela da memória. FrmSplash := nil; // anula a referência ao ponteiro do objeto. Application.CreateForm(TfrmCadPadrao, frmCadPadrao); Application.CreateForm(TfrmCadProd, frmCadProd); Application.Run; end. A parte que te interessa são as 5 linhas abaixo do "Application.CreateForm(TFrmSplash, FrmSplash)", onde FrmSplash é o nome do frame que você quer mostrar na inicialização do projeto. Veja se te resolve assim. -
(Resolvido) Form de LoGon...
pergunta respondeu ao Jhonatas araujo de Duduh_Capixaba em Delphi, Kylix
Olha, pelo pouco que eu conheço do comando Sleep, acho que não dá não. Acho que esse comando não retorna nada, e pelo que entendi dele, enquanto ele é executado, nada acontece na aplicação, o programa se congela durante o período que você configura o Sleep. Então, creio eu, que dessa forma não funcionaria. Mas deixo em aberto para outras pessoas responderem essa sua dúvida. Flws! -
(Resolvido) Form de LoGon...
pergunta respondeu ao Jhonatas araujo de Duduh_Capixaba em Delphi, Kylix
Bem, um tanto "diferente" essa janela de log que você quer fazer, mas, vamos lá! Um exemplo simples: em um form qualquer, adicione um objeto Label e um TTimer. Inclua o código: procedure TForm1.FormCreate(Sender: TObject); begin Tempo := 10; Label1.Caption := IntToStr(Tempo); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Tempo := Tempo - 1; Label1.Caption := IntToStr(Tempo); if Tempo = -1 then begin Self.Release; Self.Close; end end; Onde "Tempo" é uma variável Integer, que você deve declarar dentro da Unit. Esse exemplo mostra o form por 10 segundos, sendo que o tempo aparece sendo decrescido no Label. Ao término dos 10 segundos, o form se fecha. Agora use sua criatividade para incrementar o form. -
(Resolvido) limpar formatação de richedit
pergunta respondeu ao vms de Duduh_Capixaba em Delphi, Kylix
Você terá que "escolher" uma formatação padrão para a sua aplicação. Segue código: RichEdit1.Font.Size := 20; RichEdit1.Font.Name := Times New Roman'; RichEdit1.Font.Style := RichEdit1.Font.Style + [fsBold]; //coloca em negrito RichEdit1.Font.Style := RichEdit1.Font.Style + [fsItalic]; //coloca em itálico RichEdit1.Font.Size := 8; RichEdit1.Font.Name := 'Arial'; RichEdit1.Font.Style := RichEdit1.Font.Style - [fsBold]; //tira o negrito Você pode editar toda a formatação do texto, basta chamar o comando "Font" e sua respectiva propriedade. Agora é com você! -
(Resolvido) Form de LoGon...
pergunta respondeu ao Jhonatas araujo de Duduh_Capixaba em Delphi, Kylix
Acho que sua necessidade é saber como funciona o objeto TTimer. Sabendo operar os objetos, você consegue desenvolver qualquer aplicação. Detalhe melhor qual sua necessidade nesse projeto pra podermos dar alguns exemplos do TTimer. -
O "X" é referente a um inteiro, no caso, o número do campo. Lembrando que a contagem começa do 0 (zero). Então, sua primeira coluna seria o "Fields(0)".
-
Tente assim: Private Sub Combo1_Click() Text1.Text = Combo1.Text End Sub Ou então assim: Private Sub Combo1_Click() Text1.Text = rs.Fields(x).Value End Sub