-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Usa desta forma para chamar os formalarios: Application.CreateForm(TFCadColeta, FCadColeta); QControle.Close; QControle.ParamByName('CodUsu').AsInteger:= StrToInt(FPrincipal.Label1.Caption); QControle.ParamByName('MENU').AsInteger := FPrincipal.GerarColeta1.Tag; QControle.Open; if QControleUSU_FLAG3.AsString = 'ON' then FCadColeta.BtExcluir.Visible:= true else FCadColeta.BtExcluir.Visible:= False; if QControleUSU_FLAG2.AsString = 'ON' then vALT:= true else vALT:= False; if QControleUSU_FLAG1.AsString = 'ON' then FCadColeta.BtInserir.Visible:= true else FCadColeta.BtInserir.Visible:= False; FCadColeta.ShowModal; FCadColeta.free; Eu uso essa maneira para chamar um form, dessa maneira os outros comandos necessarios estarão dentro do form procedure TFMenu.Fornecedores1Click(Sender: TObject); begin try if FCadFornec = Nil then FCadFornec := TFCadFornec.Create(self); except ShowMessage('Erro na criação do formulário !!'); exit; end; FCadFornec.showmodal; FreeAndNil(FCadFornec); end; No Pascal e em outras linguagens estruturadas existe a possibilidade de agrupar trechos de programas em procedimentos e funções. Esta técnica de decomposição em unidades funcionais, proveniente da programação estruturada, é conhecida como modularização. Veja esses links ... tem muito material a respeito de modularização de aplicativos http://www.activedelphi.com.br/print.php?sid=499 http://pjtsalina.codigolivre.org.br/pr/clu...hi/package.html http://imasters.uol.com.br/artigo/1047/del...es_parte_final/ http://www.ramosdainformatica.com.br/art_r...s01.php?CDA=638 http://cc.embarcadero.com/Item/25208 http://www.logicatreinamentos.com.br/Modularizar.asp http://docs.google.com/gview?a=v&q=cac...pt-BR&gl=br http://pjtsalina.codigolivre.org.br/pr/clu...i/package2.html http://www.portaldaprogramacao.com/artigos2.asp?n=882 OBS: Não tenha pressa... leia com calma para poder enteder a lógica do negócio abraço
-
Tente com o botão direito do mouse sobre o componente e selecione ( Bring to Front ) e deixe a propriedade Transparent como true abraço
-
ERRO "out of memory" costuma dar quando: 1 - o programa cria automaticamente muitos forms e não tem memoria disponivel suficiente para mante-los 2 - ou quando voce cria os forms em tempo de execução mas não limpa a memoria quando finaliza o form Exemplo de criação / destruição correta de formulários e liberar memória procedure TFrmMain.Cadastro1Click(Sender: TObject); begin Application.CreateForm(TFrmCadastro, FrmCadastro); // cria o form FrmCadastro.ShowModal; FreeAndNil(FrmCadastro); // libera o form da memoria end; Um teste bem simples de verificar isso é criando um form atraves de um botão e fechando o mesmo sem liberar a memoria ..... o resultado voce pode perceber ao usar o gerenciador de processos do windows, a quantidade de memoria usada só vai aumentando até que ocorre o erro 3 - ou quando a memoria virutal do arquivo de paginação do windows esta com um valor baixo Soluções possiveis: 1 - Se o seu programa é muito grande voce pode fragmentá-lo em partes menores usando um sistema de modularização http://www.techtips.com.br/programacao/mod...single-package/ 2 - alterar o arquivo de paginação do windows desde que voce possua no micro memoria suficiente para isso http://www.winajuda.com/2006/05/04/arquivo...emoria-virtual/ abraço
-
O código do delphi esta com erro... veja a modificação que fiz: procedure TForm1.Button1Click(Sender: TObject); var Done: Boolean; begin Done := false; OpenPictureDialog1.DefaultExt := GraphicExtension(TIcon); OpenPictureDialog1.FileName := GraphicFileMask(TIcon); OpenPictureDialog1.Filter := GraphicFilter(TIcon); OpenPictureDialog1.Options := [ofFileMustExist, ofHideReadOnly, ofNoChangeDir ]; while not Done do begin if OpenPictureDialog1.Execute then begin if not (ofExtensionDifferent in OpenPictureDialog1.Options) then begin Application.Icon.LoadFromFile(OpenPictureDialog1.FileName); Done := True; end else OpenPictureDialog1.Options := [ofFileMustExist, ofHideReadOnly, ofNoChangeDir, ofExtensionDifferent]; end else { Cancelado pelo Usuario} if Done = False then begin showmessage('Cancelado pelo Usuário'); Done := true; end; end; end; abraço
-
else { Cancelado pelo Usuario} Done := True; end; abraço
-
voce habilita ou desabilita um item de menu FMenu.Senhas1.Enabled := true; ou FMenu.Senhas1.Enabled := false; abraço
-
Veja o proprio exemplo do delphi procedure TForm1.Button1Click(Sender: TObject); var Done: Boolean; begin OpenPictureDialog1.DefaultExt := GraphicExtension(TIcon); OpenPictureDialog1.FileName := GraphicFileMask(TIcon); OpenPictureDialog1.Filter := GraphicFilter(TIcon); OpenPictureDialog1.Options := [ofFileMustExist, ofHideReadOnly, ofNoChangeDir ]; while not Done do begin if OpenPictureDialog1.Execute then begin if not (ofExtensionDifferent in OpenPictureDialog1.Options) then begin Application.Icon.LoadFromFile(OpenPictureDialog1.FileName); Done := True; end else OpenPictureDialog1.Options := OpenPictureDialog1.Options - ofExtensionDifferent; end else { Cancelado pelo Usuario} Done := True; end; end; abraço
-
O antivirus reconhece o sistema como virus
pergunta respondeu ao rickayron de Jhonas em Delphi, Kylix
Desabilite o antivirus e depois faça a instalação do seu programa abraço -
Pode estar faltando algum arquivo de instalação A versão Delphi_C++Builder2009_ESD_June2009.zip vai econtrar neste endereço https://downloads.embarcadero.com/free/delphi abraço
-
Faça um teste no seu QR deixe a propriedade Stretch do QRImage como true e modifique o tamanho do QRImage dentro do QR procedure TQuickReport2.QuickRepBeforePrint(Sender: TCustomQuickRep; var PrintReport: Boolean); var X, Y: Integer; begin QRimage1.Brush.Style := bsClear; for y := 0 to QRimage1.Height - 1 do for x := 0 to QRimage1.Width - 1 do begin if (x mod 2)=(y mod 2) then QRimage1.Canvas.Pixels[x, y] := clWhite; end; end; abraço
-
nicolasbraz ... voce entendeu o exemplo que te passei ? function GravaArquivoLogTransacao(TipoTransacao: TTipoTransacao): Integer; const NomArquivo: String = "LogTransacao.txt"; var Path: String; Arquivo: TextFile; begin Path := ExtractFilePath(Application.ExeName); if not DirectoryExists(Path) then begin CreateDir(Path); end; if not FileExists(Path + NomArquivo) then begin FileCreate(Path + NomArquivo); end; Try AssignFile(Arquivo, Path + NomArquivo); Append(Arquivo); Write(Arquivo, FormatFloat("000000", Transacao.TransactionID) + " / " + FormatFloat("000000", Transacao.GlobalID)); case TipoTransacao of ttBeginTran: WriteLn(Arquivo, " - BeginTran: " + DateToStr(Date) + " " + TimeToStr(Time) + " por usuário: " + IntToStr(UserID)); ttCommit: WriteLn(Arquivo, " - Commit: " + DateToStr(Date) + " " + TimeToStr(Time) + " por usuário: " + IntToStr(UserID)); ttRollBack: WriteLn(Arquivo, " - RollBack: " + DateToStr(Date) + " " + TimeToStr(Time) + " por usuário: " + IntToStr(UserID)); end; CloseFile(Arquivo); Result := 1; Except Result := -1; End; end; Na função acima, ilustra a geração de um log de transações de uma aplicação. procedure LeArquivoLogTransacao(NomeArquivo: String); var strFile: TextFile; strLine: String; begin AssignFile(strFile, NomeArquivo); Reset(strFile); Readln(strFile, strLine); while not Eof(strFile) do begin ShowMessage(strLine); Readln(strFile, strLine); end; end; Se algum tiver algum exemplo disso ficaria grato. Este exemplo mostra que voce tera que montar funções em seu programa e que serão chamadas em algumas rotinas com operações com o banco de dados.... a unica diferença é que os dados estão sendo registrados em um arquivo texto, então voce tera que mudar para registrar em uma tabela abraço
-
Foi esta versão que voce baixou ? Delphi_C++Builder2009_ESD_June2009.zip
-
Como abrir relatório Rave em outro computador?
pergunta respondeu ao Gabriel Cabral de Jhonas em Delphi, Kylix
o código que voce usou para dar o preview/print no relatório do Rave funcionará tambem em outro micro abraço -
2 Dbgrids ligados em duas tabelas diferentes
pergunta respondeu ao danielrgoes de Jhonas em Delphi, Kylix
Sugiro voce testar somente a select sozinha sem nenhum outro código Outras informações sobre o assunto http://books.google.com.br/books?id=ZqGbdC...20n&f=false abraço -
O que voce está querendo é um controle de nível de acesso, onde o usuário somente porderá acessar algumas coisas dentro do programa Veja esses links e tire algumas idéias http://geocities.yahoo.com.br/marcio.theis...troleAcesso.zip http://www.inf.ufsc.br/~prass/sources/usuarios.zip http://www.planetadelphi.com.br/dica/6717/...1tico-e-simples http://edn.embarcadero.com/br/article/36235 abraço
-
Could not find source location to add method Button7Click END. or INITIALIZATION not find in unit source Não pode encontrar local da fonte para adicionar metodo Button7Click ...END. ou inicialização não encontrada na fonte da Unit OBS: Voce abriu um metodo para o botão e não finalizou com o comando End. exemplo: procedure TForm1.Button1Click(Sender: TObject); begin end; end. // está faltando o end. abraço
-
O digito identificado é gerado no momento da leitura e no banco ele não é gravado O Erro esta no evento ... não use OnKeyDown e sim OnKeyPress procedure TFvendas.EditCodBarraKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TFvendas.EditCodBarraKeyPress(Sender: TObject; var Key: Char); o outro erro: begin try tbproduto.Open; tbproduto.IndexFieldNames := 'codbarra'; tbproduto.Editkey; tbproduto.FindNearest([EditCodbarra.Text]); tbproduto.Refresh; except on EDBEngineError do MessageDlg('Erro na busca! Tente novamente.', mtError, [mbOK], 0); end; begin try tbproduto.IndexDefs.Clear; tbproduto.IndexName := 'codbarra'; tbproduto.IndexDefs.Update; tbproduto.open; tbproduto.FindNearest(trim[EditCodbarra.Text]); except on EDBEngineError do MessageDlg('Erro na busca! Tente novamente.', mtError, [mbOK], 0); end; abraço
-
(Resolvido) Installaware 7 - Como instalar BDE e configurar Alias
pergunta respondeu ao Mario Lopes de Jhonas em Delphi, Kylix
Use o installshield do proprio delphi .. tem todos os procedimentos necessarios para fazer a instalação do BDE e configurar o Alias Faça uma busca no forum ( instalshield e BDE ) http://scriptbrasil.com.br/forum/index.php...e=installshield http://scriptbrasil.com.br/forum/index.php...mp;highlite=bde abraço -
Para quem se interessar download do arquivo http://www.dlldll.com/rlink32.dll_download.html abraço
-
Valeu rickayron... muito bom para os iniciantes e veteranos ... abraço
-
Exemplo de um menu http://www.google.com.br/url?sa=t&sour...es8DhAb2bQov94g abraço
-
O nicolasbraz esta correto ... De 2 clicks no componente IBTransaction para abrir o editor do transaction abraço
-
(Resolvido) Como listar as classes (forms) de um pacote (.bpl)?
pergunta respondeu ao Musashi_RS de Jhonas em Delphi, Kylix
Veja este endereço http://www.planetadelphi.com.br/artigo/27/...asses-no-delphi abraço -
Use o componente QRImage da paleta QReport ... entretanto a imagem ficará limitada ao tamanho do QRBand ... se quiser que a imgem pegue todo o tamanho do papel, voce terá que usar outro componente de qualquer forma veja estes links http://www.scribd.com/doc/6783413/Marca-d-Agua http://docentes.anchieta.br/~rodrigok/2008..._Parte01_V2.pdf http://www.ctu.ufjf.br/~alberto/APOSTILAS/...nho%20Livre.doc http://www.mail-archive.com/delphi-br@yaho...r/msg14527.html abraço
-
Use o componente Label ... esta do lado do Edit na paleta ... com ele voce somente mostrará a informação e não poderá ser modificado mas voce tambem pode usar um DBEdit e modificar a propriedade ReadOnly para true ... mostrará a informação, mas não poderá ser modificado. abraço