Ir para conteúdo
Fórum Script Brasil

Progr'amador

Veteranos
  • Total de itens

    1.130
  • Registro em

  • Última visita

Tudo que Progr'amador postou

  1. Olá Nasdaj, descupa ae cara, é que eu demoro pra entender as coisas... hehhee Pelo que eu entendi, você quer trazer somente ultimo insedo, né? com base no eu exemplo (5241547854;cooperfarma): procedure TForm1.Button1Click(Sender: TObject); var ArqTxt : TextFile; linha : string; i : integer; begin AssignFile(ArqTxt,'C:\Meus documentos\arquivo_texto.txt'); Reset(ArqTxt); Readln(ArqTxt, Linha); while not eof(ArqTxt) do begin Readln(ArqTxt, Linha); i := Length(Linha); Edit1.Text := Copy(Linha,1,10); Edit2.Text := Copy(Linha,12,i); end; Linha := ''; Closefile(ArqTxt); end; Abs. Progr'amador.
  2. Conectar Banco de Dados Access com senha No diálogo da construção do ADOConnection na guia Conexão insira um banco de dados access com senha, e na guia Todos, procure pelo item: "Jet OLEDB:Database Password", click duas vezes e na opção "Valor da propriedade" digite a senha do banco, ae pra testar a conexão, vá na guia Conexão e clique em Testar conexão. E no Object inspector do ADOConnection, na opção LoginPrompt defina como False E é só isso!!!! Abs. Progr'amador.
  3. Olá nightmare, demorou mas achei a solução, pra conectar um MDB com senha, hehehe no diálogo da construção do ADOConnection na guia Conexão insira um banco de dados, e na guia Todos, procure pelo item: "Jet OLEDB:Database Password", click duas vezes e na opção "Valor da propriedade" digite a senha do mdb, ae pra testar a conexão, vá na guia Conexão e clique em Testar Conexão. E no Object inspector do ADOConnection, na opção LoginPrompt defina como False. Qualquer dúvida posta ae, falou!!! Abs. Progr'amador.
  4. Progr'amador

    Somar Colunas?

    Olá Dani, acredito que isso não seja possível, pelo pouco que entendo de access. Abs. Progr'amador.
  5. Olá colegas, é o seguinte, eu fiz um bloco de notas em delphi (bem melhor que do windows ), e quero deixar ele como padrão, tipo quando eu der dois cliques um arquivo txt (abrir), já abrir nesse bloco de notas que eu fiz, em vez de abrir no do windows. Mas Por que isso???? Bom, como vocês sabem, o bloco de notas do windows é muito limitado, e eu trabalho muito com programação em Oracle, que na verdade é feita em txt e depois gravada no banco, por isso crieu um bloco de acordo com as minhas necessidades e sem limitações de linhas , só que preciso deixar ele como padrão. É POSSÍVEL FAZER ISSO???? Abs. Progr'amador.
  6. Olá fabio, Num abriu aqui não!!! deu erro Abs. Progr'amador.
  7. Olá Alessandro, eu tambem posso ajudar??? Ae vai o código pra execultar uma única cópia do programa: program Project1; uses Forms, Windows, Dialogs, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} Var HprevHist : HWND; begin Application.Initialize; HprevHist := FindWindow(Nil, PChar('Titulo do Aplicativo')); if HprevHist = 0 then begin Application.Title := 'Titulo do Aplicativo'; Application.CreateForm(TForm1, Form1); Application.Run; end else MessageDlg('Você não pode executar outra cópia do aplicativo', mtInformation, [mbOK], 0); Abs. Progr'amador.
  8. Puts cara!!! Agora que eu li bem o titulo Criar Gbd... (o correto num seria gdb??? ) essa dica que passei é pra fazer um fdb. Foi mal!!! só que vi um erro na figura, você colocou SYSBDA em vez de SYSDBA, quem sabe num é isso... Abs. Progr'amador.
  9. Progr'amador

    Somar Colunas?

    Olá Dani, você ta usando algum formulario pra preencher os campos? Eu sei uma forma de fazer isso, desde de que use um formulario. Abs. Progr'amador.
  10. Olá felipee, Quanto ao interbase eu não sei (não sei se é a mesma coisa), mas se você tiver usando Firebird, mude essas opções: Database: C:\compliv\Dados\compliv.fdb (extensão *.fdb ); Client Library File: C:\WINDOWS\SYSTEM\FBCLIENT.DLL, se você estiver usando Win98 esse arquivo deverar ficar na pasta C:\WINDOWS\SYSTEM, caso não esteja lá, use a opção localizar do windows e copie pra lá, se for WinXP deverar ficar na na pasta C:\WINDOWS\SYSTEM32; SQL Dialect : Dialect 3; Page Size: 4096. Isso deve funcionar Abs. Progr'amador.
  11. Progr'amador

    Query

    Olá agnaldoramone, é tipo assim, no critério do campo data, coloque: >=[forms]![FrmRelatorios]![DataInicial] E <=[forms]![FrmRelatorios]![DataFinal] Abs. Progr'amador.
  12. Olá Paulo. dê uma olhada aqui: http://scriptbrasil.com.br/forum/index.php...=15#entry211995 Abs. Progr'amador.
  13. Criação de DLLs Esta é uma outra dúvida bastante freqüente que chega a nós. "Como posso usar uma DLL ?", "Como posso criar uma DLL ?", "Ei, moço! Pra quê serve uma DLL ?" Pois bem, DLL ou Dynamic Link Libraries, permitem que um conjunto de funções desenvolvidas em uma linguagem possam ser utilizadas em programas desenvolvidos em outras linguagens. Você pode, por exemplo, criar uma DLL em Delphi com um conjunto de funções e utilizá-la em aplicativos desenvolvidos em C++ ou Visual Basic, por exemplo. Agora, vamos começar criando uma DLL: Selecione o item New do Menu File, para exibir a caixa de diálogo New Items. Agora, selecione o item DLL e clique em OK, para gerar o código principal da DLL, que se apresenta a seguir: library Project1; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes; begin end. Em muitas situações, inclusive esta, o arquivo DELPHIMM.DLL deve ser distribuído junto à sua aplicação. Uma outra observação muito importante, para que você possa escrever suas DLLs, você deve ter conhecimentos na Linguagem Object Pascal. Vamos continuar criando nossa DLL, pois é ela que iremos usar mais para frente. Apenas como exemplificação, vamos criar uma função que receba como parâmetros dois números reais e retorne o maior deles. Function Max (a b : double ) : double ; Export ; stdcall ; begin If ( a > B ) then Result :=a else Result := b ; end ; Export = indica que a função poderá ser chamada por outros aplicativos. Stdcall = permite que aplicativos desenvolvidos em outras linguagens façam chamadas à função. Após serem feitas estas alterações e salvar o projeto com o nome MAXDLL, nossa DLL ficará assim: library Project1; { Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters. } uses SysUtils, Classes; function Max(a, b : double):double:expert:stdcall: begin if ( a > B ) then result:= a else result := b; end; exports Max index 1; begin end. Você pode compilar uma DLL, assim como a um projeto no Delphi, e distribuir livremente. PS: Você não pode executar uma DLL pelo Delphi, através do RUN do Menu Run, pois não se trata de uma aplicação. Mais à frente, você perceberá que uma DLL pode usar formulários e objetos definidos em outras unidades. Iremos, agora, chamar uma DLL, a partir de outra aplicação. Neste exemplo que iremos montar, iremos usar: um formulário, duas caixas de texto (os quais o usuário irá digitar dois números reais), um botão de comando. unit usadll; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Button1: TButton; Edit1: TEdit; Edit2: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; function Max(a, b : double):double;stdcall; var Form1: TForm1; implementation {$R *.DFM} function Max(a, b : double):double;external 'MaxDLL'; procedure TForm1.Button1Click(Sender: TObject); var x, y, resultado : double; begin x := StrToFloat(Edit1.Text); y := StrToFloat(Edit2.Text); resultado := Max(x,y); ShowMessage('Valor Máximo ' +FloatToStr(resultado)); end; end. PS: A função Max está declarada na seção interface e implementada na seção implementation, ou seja, a função está implementada em uma DLL. Bem, mostramos como criar uma DLL simples e como fazer chamada de uma DLL. Agora, iremos melhorar nossa DLL, fazendo com que ela exiba um formulário qualquer em qualquer aplicação desenvolvida para Windows. Colocar os bitmaps na dll Por vezes, quando iniciamos um projecto, temos uma preocupação: fazer uma aplicação pequena. Bem, a solução pode passar por colocar todos os bitmaps que vamos utilizar numa dll. Então vamos lá começar: Deve usar o Image Editor, criar uma nova Resource File (.res), neste ficheiro vamos colocar os bitmaps e icons (ambos funcionam da mesma forma) que queremos na nossa aplicação, clique com a tecla direita do rato na nova resource file e crie um novo bitmap, depois desenhe ou cole do clipboard um bitmap, finalmente guarde o ficheiro com o nome images.res. Depois disto estar feito vá ao IDE do Delphi e no File menu clique New... e escolha DLL depois cole o código abaixo, não se esqueça de adicionar uma unit vazia ao projecto. Guarde o projecta da dll no mesmo directório do ficheiro image.res, finalmente faça o build da dll (não se esqueça, que não se pode correr (executar) uma dll!) Código da Dll: library ImageRes; {nome da dll} uses DummyUnit; {DummyUnit é uma unit vazia, que é necessária} {$R images.res} {nome da resource file, que deve estar no mesmo caminho da dll} begin end. Código da DummyUnit: unit DummyUnit; interface implementation end. Usar os bitmaps que estão na dll Estão aqui alguns exemplos como extrair os bitmaps da dll: procedure TForm1.SpeedButton1Click(Sender:TObject); var MyHandle :THandle; Bmp : TBitmap; begin MyHandle := LoadLibrary('ImageRes.DLL'); {nome da dll construida acima} Bmp := TBitmap.Create; Bmp.Handle := LoadBitmap(MyHandle, 'BITMAP1'); {Bitmap1 é o nome do bitmap criado no ficheiro image.res} SpeedButton1.Glyph.Handle := LoadBitmap(MyHandle,'BITMAP1'); {Carrega o Bitmap1 para o glyph do SpeedButton1} Canvas.Draw(0,0,Bmp); {Desenha o bitmap no canvas da form} Image1.picture.bitmap:=Bmp; {Carrega o bitmap para o componente Timage} Bmp.Free; end;
  14. Olá Nosdaj, beleza, mas vamos supor que esse arquivo tenha mais de uma linha, qual linha ira pros edit's? sendo que são 4 edit's e se o arquivo tem 3 linhas por exemplo (4x3=12) ele não podera jogar os 12 valores nos 4 edit's, entendeu? Ou você quer fazer tipo uma pesquisa no arquivo txt e selecionar determinada linha? Ou esse arquivo só tem uma linha mesmo? De qualquer forma ae vai alguns exemplos. usando 4 edit's: procedure TForm1.Button1Click(Sender: TObject); var ArqTxt : TextFile; linha : string; begin AssignFile(ArqTxt,'C:\Meus documentos\arquivo_texto.txt'); Reset(ArqTxt); Readln(ArqTxt, Linha); Edit1.Text := Copy(Linha,1,5); Edit2.Text := Copy(Linha,6,10); Edit3.Text := Copy(Linha,11,15); Edit4.Text := Copy(Linha,16,20); Closefile(ArqTxt); end; *Dessa forma os edits ira receber os valores da primeira linha, independente do numero de linhas. um outro exemplo, só que usando o Memo, dessa forma virar pro memo todoas as linhas do arquivo. procedure TForm1.Button1Click(Sender: TObject); var ArqTxt : TextFile; linha : string; begin AssignFile(ArqTxt,'C:\Meus documentos\arquivo_texto.txt'); Reset(ArqTxt); Readln(ArqTxt, Linha); while not eof(ArqTxt) do begin Readln(ArqTxt, Linha); Memo1.Lines.Add(Linha); end; Linha := ''; Closefile(ArqTxt); end; Vê se alguma dessas formas serve pro seu caso. Qualquer dúvida posta ae, falou!!! Abs. Progr'amador.
  15. Olá Nosdaj, cara você num foi muito claro na sua pregunta, existe "1001 formas" de se trabalhar com arquivo texto, o que seria essa "ORDEM DE POSICIONAMENTO" ? De que forma estão armazenados esses 4 valores no txt? em linha? coluna? okê?? tipo: assim: VALOR1 VALOR2 VALOR3 VALOR4 ou assim: VALOR1 VALOR2 VALOR3 VALOR4 Abs. Progr'amador.
  16. Olá Arlon, pensei nisso, so que o cara quer exportar as imagens contidas no relatório, e dessa forma só exporta texto (QRlabel e dados). Abs. Progr'amador.
  17. Ola Alessandro, acho que tem alguns errinhos no seu código , na verdade se for usando select seria assim: ADOQuery1.close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM Tabela WHERE Nome ' + #39 + '%' + Edit1.Text + '%' + #39); ADO.Query1.SQL.Open; usando parametros ADOQuery1.close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM Tabela WHERE Codigo = :buscaCodigo'); ADO.Query1.Parameters.ParamByName('buscaCodigo').Value := Edit1.Text; ADO.Query1.SQL.Open; Fechando... Abs. Progr'amador.
  18. bom usando o combobox, ficaria tipo assim: if ComboBox1.text = 'Nome' then ADOQuery1.Locate('Nome',Edit1.text,[LoPartialKey]) else if ComboBox1.text = 'Rua' then ADOQuery1.Locate('Rua',Edit1.text,[LoPartialKey]) else if ComboBox1.text = 'Numero' then ADOQuery1.Locate('Numero',Edit1.text,[LoCaseInsensitive]) else if ComboBox1.text = 'Complemento' then ADOQuery1.Locate('Complemento',Edit1.text,[LoPartialKey]) else if ComboBox1.text = 'RG' then ADOQuery1.Locate('RG',Edit1.text,[LoCaseInsensitive]) else if ComboBox1.text = 'CPF' then ADOQuery1.Locate('CPF',Edit1.text,[LoCaseInsensitive]); pode usar assim tambem: ADOQuery1.Locate('Nome_Campo',Edit1.text,[]); Abs. Progr'amador
  19. Ola, você pode usar o comando locate, tipo assim: ADOQuery1.Locate('Nome_do_campo',Edit1.text,[LoPartialKey]); Abs. Progr'amador.
  20. Só um detalhe: você podeira ter usado o mesmo tópico, ok? já que o assunto era o mesmo. Sendo assim ta Resolvido esse e o outro tópico, Ok? E coisa, cuidado com os floods heim!!!! Fechando os dois... Abs. Progr'amador.
  21. cara, é como te falei, pra que fique alinhados você tem que usar uma fonte que tem o mesmo tamanho cada letra, tipo a fonte Courier New, num banco da dados será dificil fazer isso mas no boleto que você imprime tem como fazer, agora se nem com a fonte Courier new da certo, ae é porque seu código que formata o tamanho do Length ta errado. Aquele código que eu te passei num outro tópico seu, funciona legal, mas, com o "detalhe" da fonte. Length, refere-se a comprimento, tipo sua string tem o comprimento de 39 letras o length será 39. Abs. Progr'amador.
  22. Olá, na propriedade do Formulário tem a opção Botões de navegação, só e mudar pra Não. Ok!? Abs. Progr'amador.
  23. Olá, poderia detalhar melhor sua pergunta? Abs. Progr'amador.
  24. Que Banco???? Qual a versao do seu Delphi? Abs. Progr'amador.
  25. Olá, ae vai o código: implementation {$R *.DFM} function ApenasNumerosStr(pStr:String): String; Var I: Integer; begin Result := ''; For I := 1 To Length(pStr) do If pStr[I] In ['1','2','3','4','5','6','7','8','9','0'] Then Result := Result + pStr[I]; end; function IIf(pCond:Boolean;pTrue,pFalse:Variant): Variant; begin If pCond Then Result := pTrue else Result := pFalse; end; function CalculaCnpjCpf(Numero : String) : Boolean; Var i,d,b, Digito : Byte; Soma : Integer; CNPJ : Boolean; DgPass, DgCalc : String; begin Result := False; Numero := ApenasNumerosStr(Numero); // Caso o número não seja 11 (CPF) ou 14 (CNPJ), aborta Case Length(Numero) of 11: CNPJ := False; 14: CNPJ := True; else Exit; end; // Separa o número do digito DgCalc := ''; DgPass := Copy(Numero,Length(Numero)-1,2); Numero := Copy(Numero,1,Length(Numero)-2); // Calcula o digito 1 e 2 For d := 1 to 2 do begin B := IIF(D=1,2,3); // BYTE SOMA := IIF(D=1,0,STRTOINTDEF(DGCALC,0)*2); for i := Length(Numero) downto 1 do begin Soma := Soma + (Ord(Numero[I])-Ord('0'))*b; Inc(b); If (b > 9) And CNPJ Then b := 2; end; Digito := 11 - Soma mod 11; If Digito >= 10 then Digito := 0; DgCalc := DgCalc + Chr(Digito + Ord('0')); end; Result := DgCalc = DgPass; end; procedure TForm1.Button1Click(Sender: TObject); var msg : string; begin if ComboBox.text = 'CPF' then msg := 'CPF' else msg := 'CNPJ'; if CalculaCnpjCpf(DBEdit1.text) then ShowMessage(msg+' Correto.') else ShowMessage(msg+' Incorreto.'); end; É tipo assim. Ok!? Abs. Progr'amador.
×
×
  • Criar Novo...