
Progr'amador
Veteranos-
Total de itens
1.130 -
Registro em
-
Última visita
Tudo que Progr'amador postou
-
Olá Alessandro, Eu num entendi quando você diz: inserir outro automaticamente. Cada clique que você dar num cadastra um? Como seria esse - automaticamento? Abs. Progr'amador.
-
Hum, foi mal, agora que eu li direito, você num ta usando tabela. Deixa eu ver se entendi: você quer gravar o que esta nos edits do form em arquivo de texto, mas sempre adicionando linhas no arquivo, tipo assim: cada vez que você clicar num botão(por exemplo), adiciona as informações dos edits numa nova linha do arquivo, sem apagar as linhas já existentes. é isso??? Abs. Progr'amador.
-
Olá Nosdaj, ai vai um exemplo de gerar arquivo txt, nesse exemplo to usando uma tabela (CLIENTES) do banco de dados DBDEMOS que acompanha o delphi. procedure TForm1.BitBtn1Click(Sender: TObject); var ArqTxt : TextFile; Linha1, campo1, campo2, campo3 : string; begin AssignFile(ArqTxt, 'C:\Meus documentos\ARQUIVO_TEXTO.TXT'); Rewrite(ArqTxt); Query1.Close; Query1.Open; while not Query1.Eof do begin campo1 := Query1.FieldByName('LAST_NAME').AsString; campo2 := Query1.FieldByName('FIRST_NAME').AsString; campo3 := Query1.FieldByName('SS_NUMBER').AsString; Linha1 := campo1+campo2+campo3; Writeln(ArqTxt, Linha1); Query1.Next; end; CloseFile(ArqTxt); end; ou procedure TForm1.Button2Click(Sender: TObject); var ArqTxt : TextFile; Linha1, FormaLinha : string; begin AssignFile(ArqTxt, 'C:\Meus documentos\ARQUIVO_TEXTO.TXT'); Rewrite(ArqTxt); Query1.Close; Query1.Open; while not Query1.Eof do begin FormaLinha := Query1.FieldByName('LAST_NAME').AsString; Linha1 := Linha1+FormaLinha; FormaLinha := Query1.FieldByName('FIRST_NAME').AsString; Linha1 := Linha1+FormaLinha; FormaLinha := Query1.FieldByName('SS_NUMBER').AsString; Linha1 := Linha1+FormaLinha; Writeln(ArqTxt, Linha1); Linha1 := ''; Query1.Next; end; CloseFile(ArqTxt); end; O resultado é o mesmo, a unica diferença é que na primeira é usada uma variável pra cada campo da tabela, e a segunda apenas uma. Abs. Progr'amador.
-
Duvida Sobre Nivel De Acesso (RESOLVIDO)
pergunta respondeu ao AlexBEE de Progr'amador em Delphi, Kylix
Olá Alexangelo, Use esse código: DM.SqlCHAVEUsuarioCartao.Close; DM.SqlCHAVEUsuarioCartao.Sql.Clear; DM.SqlCHAVEUsuarioCartao.Sql.Add('Select ID_NIVEL from USUARIO where Cod_Cartao = '#39+ frmSenha.EditCartao.Text +#39); DM.SqlCHAVEUsuarioCartao.Open; if (DM.SqlCHAVEUsuarioCartao.FieldByName('ID_NIVEL').Value > 5) then ShowMessage('NIVEL MAIOR QUE 5'); Abs. Progr'amador. -
Como Criar Um Pacote De Instalação? (RESOLVIDO)
pergunta respondeu ao jeancainelli de Progr'amador em Delphi, Kylix
Olá jeancainelli, O Inno, faz tudo isso que você precisa, ai vai uma apostila bem detalhada sobre o assunto, inclusive a criação de atalhos. http://geocities.yahoo.com.br/pgdelphi/apostilainno.zip Abs. Progr'amador. -
Ok, Enviei pro seu e-mail um exemplo bem simples. Qualquer dúvida posta ae. Abs. Progr'amador.
-
Dúvida Com Componente Dbgrid. (RESOLVIDO)
pergunta respondeu ao jeancainelli de Progr'amador em Delphi, Kylix
Olá jeancainelli, Num sei se entendi bem, mas você quer que num campo de seu DBGrid aceite digitar só dois valores ('ENTRADA' e 'SAIDA'), é isso? Se for você poderia fazer isso no campo da tabela. 1º - Dê dois cliques no seu componente (Table ou Query do dbgrid), ira abrir uma janela com os campos de sua tabela, se estiver em branco, clique com botão direito, e clique na opção Add fields..., isso ira adicionar os campos de sua tabela à lista. 2º - Escolha o campo onde deseja fazer a validação, e no envento OnChange coloque assim: If Query1.FieldByName('CAMPO').AsString <> 'ENTRADA' and Query1.FieldByName('CAMPO').AsString <> 'SAIDA' then begin ShowMessage('Valor não permitido'); Exit; end; e se tiver usando Table, é só substituir a Query pelo Table (por exemplo). Espero que tenho entendido. Qualquer dúvida posta ae, falou!!! Abs. Progr'amador. -
Olá, No Evento AfterInsert da Query liguada ao DBGrid, coloque assim: if Query1.RecordCount > 7 then begin ShowMessage('Número máximo de Ítens Atingido!'); Query1.Cancel; Exit; end; Abs. Progr'mador.
-
Bom galera, acho que ta resolvido, né. Fechando...
-
Olá Alessandro, É o seguinte toda ves que se usa Insert, Update ou Delete voce deve usar o ExecSql, em vez do Open, assim: DM.QueryControle.ExecSql;. Outra coisa, esses v_data, v_chapa, v_hora, são variáveis que recebe os valores a serem inseridos??? se for você deverar usar assim: DM.QueryControle.SQL.Add('INSERT INTO Controle (Data, Chapa, HoraSaida) VALUES ('+''''+v_data+''''+','+''''+v_chapa+''''+','+''''+v_hora+''''+')'); Abs. Progr'amador.
-
Olá Arlon, Pra travar, primeiro você vai ter que pegar o nº de série, ai vai uma função que faz isso. Function SerialNum(FDrive:String) :String; Var Serial:DWord; DirLen,Flags: DWord; DLabel : Array[0..11] of Char; begin Try GetVolumeInformation(PChar(FDrive+':\'),dLabel,12,@Serial,DirLen,Flags,nil,0); Result := IntToHex(Serial,8); Except Result :=''; end; end; Abs. Progr'amador.
-
Olá, eu num entendi direito não (é que eu sou meio "cabeça dura" mesmo ). Esse nº itens, você refere-se ao nº registros? Posta a sua Select ai cara, assim ficaria mais fácil ajudá-lo. Abs. Progr'amador.
-
Olha nesse caso que é só uma linha o melhor é usar assim: if scriptbrasil = legal then showmessage('é legal') else showmessage('mentira!'); não necessita do begin. Abs. Progr'amador. Fechando...
-
Ola Zolhos, Eu programo usando sempre o modelo do segundo código, no entando, acredito que isso não influencia na velocidade do programa, que usando da outra forma fique mais lento, a maioria dos programadores usa o primeiro exemplo. Eu diminuo um pouco mais ainda: if scriptbrasil = legal then begin showmessage('é legal'); end else begin showmessage('mentira!'); end; Abs. Progr'amador.
-
Preciso De Ajuda Mto Estranho Isso (RESOLVIDO)
pergunta respondeu ao sem ideia p/ nick de Progr'amador em Delphi, Kylix
Fique calmo!!! Tire esse form onde tem esse dbgrid, do Createform. Ou faça assim, só comente a linha onde ta abrindo esse form e faça um teste, assm: //Application.CreateForm(TForm1, Form1); (por Exempo). Entedeu??? Abs Progr'amador. -
Preciso De Ajuda Mto Estranho Isso (RESOLVIDO)
pergunta respondeu ao sem ideia p/ nick de Progr'amador em Delphi, Kylix
Muito estranho mesmo, fiz um pequeno teste aki, e funcionou legal, usando no OnCreate do DM. Esse Table1, ta sendo usado em outro form? Abs. Progr'amador. -
Preciso Muito Compartilhar Meu Banco De Dados
pergunta respondeu ao Alessandro de Progr'amador em Delphi, Kylix
Olá Alexandre, que bom que tenha conseguido, o importante é avisar. Fechando... -
Ola, Eu ainda num entendi direito, você quer imprimir o DBGrid? como se fosse um printscreen? ou você gostaria de imprimir os registros que estao no dbgrid, imprimir em um relatório? Posta ae o código que você ta usando pra imprimir. Abs. Progr'amador.
-
Preciso De Ajuda Mto Estranho Isso (RESOLVIDO)
pergunta respondeu ao sem ideia p/ nick de Progr'amador em Delphi, Kylix
Agora eu num entendi, na imagem que você passou aparece lá D:\db e no erro aparece D:\WOXMESSENGER\DB\. Qual é o local correto? Abs. Progr'amador. -
Preciso De Ajuda Mto Estranho Isso (RESOLVIDO)
pergunta respondeu ao sem ideia p/ nick de Progr'amador em Delphi, Kylix
Como havia falado, o motivo do erro eu num sei não. Então mude esse código pro OnCreate do DM, e lembrando que o DM deverar ficar no Auto-create forms, lá no Options... no menu Project. Isso deverar funcionar. Posta ai falow!!! Abs. Progr'amador. -
Preciso De Ajuda Mto Estranho Isso (RESOLVIDO)
pergunta respondeu ao sem ideia p/ nick de Progr'amador em Delphi, Kylix
Olá. Qual é o erro? Realmente deveria funcionar Faça o seguinte teste: coloque esse table1 dentro do form onde você ta dando o onCreate em vez de usar no dm, se for possível é claro. Abs. Progr'amador. -
Olá Alex, esse exemplo mostra o código de qualquer tecla. Num form adicione dois Labels (Label1 e Label2), e nos eventos do form, OnKeyDown, OnKeyUp e KeyPress os seguintes códigos abaixo: procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Label1.Caption := Format('%d', [Key]); end; procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); var X : String; begin X := Label2.Caption; Label2.Caption:=AnsiUpperCase(X); end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin Label2.Caption:= Key; end; E defina a propriedade KeyPreview do Form como True. Qualquer dúvida, posta ai falou!!! Abs. Progr'amador.
-
Olá, crie uma Function na parte de Módulos com esse código. Function Extenso(nValor As String) As String 'Faz a validação do argumento If IsNull(nValor) Or nValor > 999999999.99 Then Exit Function 'Declara as variáveis da função Dim intContador As Integer Dim intTamanho As Integer Dim strValor As String Dim strParte As String Dim strFinal As String Dim strGrupo(4) As String Dim strTexto(4) As String 'Define matrizes com extensos parciais Dim strUnid(19) As String strUnid(1) = "um ": strUnid(2) = "dois ": strUnid(3) = "três ": strUnid(4) = "quatro ": strUnid(5) = "cinco ": strUnid(6) = "seis ": strUnid(7) = "sete ": strUnid(8) = "oito ": strUnid(9) = "nove ": strUnid(10) = "dez ": strUnid(11) = "onze ": strUnid(12) = "doze ": strUnid(13) = "treze ": strUnid(14) = "quatorze ": strUnid(15) = "quinze ": strUnid(16) = "dezesseis ": strUnid(17) = "dezessete ": strUnid(18) = "dezoito ": strUnid(19) = "dezenove " Dim strDezena(9) As String strDezena(1) = "dez ": strDezena(2) = "vinte ": strDezena(3) = "trinta ": strDezena(4) = "quarenta ": strDezena(5) = "cinqüenta ": strDezena(6) = "sessenta ": strDezena(7) = "setenta ": strDezena(8) = "oitenta ": strDezena(9) = "noventa " Dim strCentena(9) As String strCentena(1) = "cento ": strCentena(2) = "duzentos ": strCentena(3) = "trezentos ": strCentena(4) = "quatrocentos ": strCentena(5) = "quinhentos ": strCentena(6) = "seiscentos ": strCentena(7) = "setecentos ": strCentena(8) = "oitocentos ": strCentena(9) = "novecentos " 'Divide o valor em vários grupos strValor = Format$(nValor, "0000000000.00") strGrupo(1) = Mid$(strValor, 2, 3) 'Milhão strGrupo(2) = Mid$(strValor, 5, 3) 'Milhar strGrupo(3) = Mid$(strValor, 8, 3) 'Centena strGrupo(4) = "0" + Mid$(strValor, 12, 2) 'Centavo 'Processa cada grupo For intContador = 1 To 4 strParte = strGrupo(intContador) intTamanho = Switch(Val(strParte) < 10, 1, Val(strParte) < 100, 2, Val(strParte) < 1000, 3) If intTamanho = 3 Then If Right$(strParte, 2) <> "00" Then strTexto(intContador) = strTexto(intContador) + strCentena(Left(strParte, 1)) + "e " intTamanho = 2 Else strTexto(intContador) = strTexto(intContador) + IIf(Left$(strParte, 1) = "1", "cem ", strCentena(Left(strParte, 1))) End If End If If intTamanho = 2 Then If Val(Right(strParte, 2)) < 20 Then strTexto(intContador) = strTexto(intContador) + strUnid(Right(strParte, 2)) Else strTexto(intContador) = strTexto(intContador) + strDezena(Mid(strParte, 2, 1)) If Right$(strParte, 1) <> "0" Then strTexto(intContador) = strTexto(intContador) + "e " intTamanho = 1 End If End If End If If intTamanho = 1 Then strTexto(intContador) = strTexto(intContador) + strUnid(Right(strParte, 1)) End If Next intContador 'Gera o formato final do texto If Val(strGrupo(1) + strGrupo(2) + strGrupo(3)) = 0 And Val(strGrupo(4)) <> 0 Then strFinal = strTexto(4) + IIf(Val(strGrupo(4)) = 1, "centavo", "centavos") Else strFinal = "" If Val(strGrupo(2)) = 0 And Val(strGrupo(3)) = 0 And Val(strGrupo(4)) = 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões de ", "milhão de "), "") End If If Val(strGrupo(2)) <> 0 And Val(strGrupo(3)) = 0 And Val(strGrupo(4)) = 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões e ", "milhão e "), "") End If If Val(strGrupo(2)) = 0 And Val(strGrupo(3)) <> 0 And Val(strGrupo(4)) = 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões e ", "milhão e "), "") End If If Val(strGrupo(2)) <> 0 And Val(strGrupo(3)) <> 0 And Val(strGrupo(4)) = 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões, ", "milhão, "), "") End If If Val(strGrupo(2)) <> 0 And Val(strGrupo(3)) <> 0 And Val(strGrupo(4)) <> 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões, ", "milhão, "), "") End If If Val(strGrupo(2)) <> 0 And Val(strGrupo(3)) = 0 And Val(strGrupo(4)) <> 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões, ", "milhão, "), "") End If If Val(strGrupo(2)) = 0 And Val(strGrupo(3)) = 0 And Val(strGrupo(4)) <> 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões de ", "milhão de "), "") End If If Val(strGrupo(2)) = 0 And Val(strGrupo(3)) <> 0 And Val(strGrupo(4)) <> 0 Then strFinal = strFinal + IIf(Val(strGrupo(1)) <> 0, strTexto(1) + IIf(Val(strGrupo(1)) > 1, "milhões, ", "milhão, "), "") End If If Val(strGrupo(3)) = 0 Then strFinal = strFinal + IIf(Val(strGrupo(2)) <> 0, strTexto(2) + "mil ", "") Else If Val(strGrupo(4)) = 0 Then strFinal = strFinal + IIf(Val(strGrupo(2)) <> 0, strTexto(2) + "mil e ", "") Else strFinal = strFinal + IIf(Val(strGrupo(2)) <> 0, strTexto(2) + "mil, ", "") End If End If If Val(strGrupo(4)) = 0 Then strFinal = strFinal + strTexto(3) + IIf(Val(strGrupo(1) + strGrupo(2) + strGrupo(3)) = 1, "real ", "reais ") Else strFinal = strFinal + strTexto(3) + IIf(Val(strGrupo(3)) <> 1, IIf(Val(strGrupo(1) + strGrupo(2) + strGrupo(3)) = 1, "real ", "reais "), "real ") End If strFinal = strFinal + IIf(Val(strGrupo(4)) <> 0, "e " + strTexto(4) + IIf(Val(strGrupo(4)) = 1, "centavo", "centavos"), "") End If If Left(strFinal, 1) = "u" Then Extenso = "H" & Mid$(strFinal, 1) Else Extenso = UCase(Mid$(strFinal, 1, 1)) & Mid$(strFinal, 2) End If Dim aux As String * 250 aux = Trim(Extenso) ' e alterar esta linha para trim(Extenso) While Len(Trim(aux)) <> 250 aux = Trim(aux) & "-x" Wend Extenso = aux End Function e numa caixa de texto coloque: =Extenso([nome do campo]) Abs. Progr'amador.
-
Olá, Voce já tentou mudar a opção FormStyle do seu form? esse erro acontece quando essa opção esta assim: fsMDIChild. Abs. Progr'amador.
-
Olá, Você tem que usar o componente TQuery em vez do TTable. No object inspector do componente(TQuery) na opção Sql, coloque a instrução + ou - assim: Select * from material Where estoque <= estoqueminino e no onCreate do relatório da um Close e um Open na Query, assim: Query1.Close; Query1.Open; Entendeu??? Qualquer dúvida posta ae, falou!!! Abs. Progr'amador.