-
Total de itens
9.657 -
Registro em
Tudo que Jhonas postou
-
Olhei seu codigo e fiz as correções ... quer aqui no post ou por email ?
-
Bem vamos tentar uma outra maneira.... se os componentes RX estão instalados, crie uma nova aplicação e jogue no form os componentes CurrEdit, Rxctrls, ToolEdit, JPEG ou qualquer outro da guia RX e compile .. se não der erro, alguma coisa na sua outra aplicação esta errada. Faça o teste e me informe.
-
Vaos aos erros: Tenta essas mudanças: procedure Tfprincipal.FormActivate(Sender: TObject); var i : integer; num : real; begin if FrmPrincipal.DbaIza.Connected = false then FrmPrincipal.DbaIza.Connected := true; if not FrmPrincipal.DbaIza.Active then FrmPrincipal.DbaIza.Active := true; end; [Error] fprincipal.pas(189): Statement expected but end of file found ( senteça esperada e end econtrado ) // tirar o end. ..... var Caminho : TextFile; Line : string; begin Application.Initialize; Application.CreateForm(Tdtmiza, dtmiza); Application.CreateForm(Tfrmprincipal, frmprincipal); Application.CreateForm(TFrmLogin, FrmLogin); Application.CreateForm(TFrmSplash, FrmSplash); FrmSplash.show; // exibe a tela FrmSplash FrmSplash.Refresh; // dá um refresh na tela sleep(0000); // aguarda 02 segundo - incluir na unit o SysUtils na Uses FrmSplash.Release; // Elimina a tela da memoria FrmSplash := nil; // anula a referencia ao ponteiro do objeto //FrmLogin.ShowModal; AssignFile(Caminho, 'C:\cfc\Net.Txt'); // Diretorio onde foi salvo o arquivo Net.txt Reset(Caminho); while not EOF(Caminho) do begin ReadLn(Caminho, Line); FrmPrincipal.FdtmIza.IBDatabase1.DatabaseName := Line; // faltou o IBDatabase1 ( a não ser que FdtmIza seja o IBDatabase1, neste caso estaria correto ) end; CloseFile(Caminho); Application.Run; [Error]fprincipal.pas(180): Undeclared identifier: 'DbaIza' [Error] fprincipal.pas(182): Undeclared identifier: 'DbaIza' Identificador não declarado: 'DbaIza' Este erro esta no seu form fprincipal e não neste modulo, verifique.
-
Da uma lida neste artigo: http://www.activedelphi.com.br/modules.php...icle&sid=17
-
Erro: Connection closed gracefully Resposta: Conexão fechada graciosamente http://translate.google.com/translate?hl=p...Dpt-BR%26sa%3DG
-
FireBird e Interbase são parecidos . olhe o segundo post.
-
Clique no atalho, continue pressionando o botão direito do mouse, arraste-o e solte-o na barra do menu iniciar na area do relogio .... o icone ficara la
-
De um exemplo do que voce esta querendo fazer.
-
Como voce não disse qual é o banco de dados, olhe nestes dois posts: http://scriptbrasil.com.br/forum/index.php...st&p=445177 http://scriptbrasil.com.br/forum/index.php...st&p=448605
-
ENVIANDO EMAIL USANDO O COMPONENTE INDY NO DELPHI7 Veremos neste artigo como é fácil enviar email utilizando o componente Indy presente no delphi 7. Apresentaremos abaixo uma simples aplicação, basta você ter um pouco de criatividade e dar asas a sua imaginação... No Delphi crie um novo projeto. Salve a Unit com o nome UEmail e o projeto como Email. Utilize os seguintes componentes: 3 Labels: Altere as propriedades Caption respectivamente para: (Para, Assunto, Mensagem) 2 Edits Altere as propriedades Name respectivamente para:(edtPara, edtAssunto); Apague o conteúdo das propriedades Text; 1 ListBox Altere a propriedade Name para:(lbxAnexos) 1 Componente Memo Altere a propriedade Name para:(mmMensagem); Apague o conteúdo da propriedade lines. 3 Componentes Bitbtn Altere as propriedades Caption respectivamente para:(Anexar,Enviar,Fechar) Altere as propriedades Name respectivamente para:(btAnexar,btEnviar,btFechar) Agora insira um componente OpenDialog da palheta Dialogs Altere a propriedade Name para:(odAnexos) Insira um componente IdMessage, da palhete Indy Misc Configure a propriedades From|Address com o email do remetente e From|Name com o nome do remetente Altere a propriedade Name para:(IdMessage) Insira um componente IdSMTP da palheta IndyClients Configure as propriedades Host com o endereço IP ou o DNS do servidor de email, por exemplo: smtp.uol.com.br Configure as propriedades Password e Username, para se autenticar no servidor, caso seja necessário. Altere a propriedade name para:(IdSMTP) Agora vamos aos códigos: No evento onclick do botão btAnexos: procedure TForm1.btAnexarClick(Sender: Tobject); begin if odAnexos.Execute then lbxAnexos.Items.Add(odAnexos.FileName); end; No evento onclick do botão btFechar: procedure TForm1.btFecharClick(Sender: Tobject); begin Application.Terminate; end; No evento onclick do botão btEnviar: procedure TForm1.btEnviarClick(Sender: TObject); var Anexo : Integer; begin IdMessage.Recipients.EMailAddresses := edtPara.Text; IdMessage.Subject := edtAssunto.Text; IdMessage.Body := mmMensagem.Lines; //Manipulando os Anexos for Anexo := 0 to lbxAnexos.Items.Count-1 do TIdAttachment.Create(idmessage.MessageParts, TFileName(lbxAnexos.Items.Strings[Anexo])); IdSMTP.Connect; try IdSMTP.Send(IdMessage); finally IdSMTP.Disconnect; end; Application.MessageBox('Email enviado com sucesso!', 'Confirmação', MB_ICONINFORMATION + MB_OK); end; Fonte: Portal
-
qual é a mensagem de erro ? foi distração minha .... coloca o seu codigo pra poder entender o que voce esta fazendo, quando diz que não mescla os dados.
-
Tenta isso pra ver se dá certo: utilize um componente OleContainer1 da guia System do delphi no object inspector altere a propriedade AutoActive para aaGetFocus procedure Tfrmclientes.btimprimirClick(Sender: TObject); begin if tabelas.tbclientesTipocontrato.Text = 'Àrea Lazer' then begin OleContainer1.CreateLinkToFile('C:\eventos\contratos\contratoarea.doc'),TRUE); OleContainer1.SetFocus; OleContainer1.Run; end; end;
-
Clique com o botão direito em cima do campo da mala direta e selecione a opção (Editar Campo). Na tela que aparecer (CAMPO) com a opção MERGEFIELD marcada, selecione o botão (Códigos de campo). Substitua o texto MERGEFIELD NOME_DO_CAMPO por: MERGEFIELD Dataevento Date \@ "dd/MM/yyyy" Referências sobre máscara de exibição em: http://support.softartisans.com/docs/Offic...iles/format.htm Dica de Cicero Goss
-
Deixa ver se entendi... voce quer fazer pesquisa em outra tabela usando o lockup ? voce usa paradox ou interbase ? qual a quantidade de registros que tem a sua tabela ?
-
Tem razão Micheus .... acho que não preciso acrescentar mais nada.
-
Criando um sistema de atualização on-line. ( download e upload via FTP ) http://www.ramosdainformatica.com.br/art_r...s01.php?CDA=802
-
Quando voce pede um status do banco de dados voce vai ter essas informações: eu uso os seguintes comandos para alterar a escrita ( modo como o interbase fara a escrita dos dados ) usando o Attributes force write não tenho preocupação em perder os dados no caso de uma queda de energia ( banco corrompido ) por outro lado deixa a rede um pouco mais lenta ... mas compensa definir uses shellapi; // mudar escrita do banco para modo syncrono WinExec(pchar('cmd.exe /c gfix -write sync -user sysdba -password senha '), 0); // mais estavel, mais lento // mudar escrita do banco para modo asyncrono WinExec(pchar('cmd.exe /c gfix -write async -user sysdba -password senha '), 0); // mais rapido, mais instavel São esses comandos que alteram a propriedade Attributes; (um deixa mais rapido porem mais instavel, o outro deixa um pouco mais lento porem mais estavel e confiavel) é uma escolha do programador.
-
Exatamente ... ao iniciar o windows o progama (atalho para o executavel) que estiver no menu iniciar na pasta programas sera executado.
-
Eu uso somente desta maneira, sem usar o commit (mas neste caso usei " Attributes = force write " no interbase), nunca tive problemas: CDS_Atesta.Post; CDS_Atesta.ApplyUpdates(-1);
-
function TPasswordDlg.Encrypt; begin S2:=Crypt('E', S1, key); end; function TPasswordDlg.Decrypt; begin S2:=Crypt('D', S1, key); end; function TPasswordDlg.Crypt(Action, Src, Key : String) : String; var KeyLen : Integer; KeyPos : Integer; offset : Integer; dest : string; SrcPos : Integer; SrcAsc : Integer; TmpSrcAsc : Integer; Range : Integer; begin dest:=''; KeyLen:=Length(Key); KeyPos:=0; SrcPos:=0; SrcAsc:=0; Range:=256; if Action = UpperCase('E') then begin Randomize; offset:=Random(Range); dest:=format('%1.2x',[offset]); for SrcPos := 1 to Length(Src) do begin SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255; if KeyPos < KeyLen then KeyPos:= KeyPos + 1 else KeyPos:=1; SrcAsc:= SrcAsc xor Ord(Key[KeyPos]); dest:=dest + format('%1.2x',[SrcAsc]); offset:=SrcAsc; end; end; if Action = UpperCase('D') then begin offset:=StrToInt('$'+ copy(src,1,2)); SrcPos:=3; repeat SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2)); if KeyPos < KeyLen Then KeyPos := KeyPos + 1 else KeyPos := 1; TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]); if TmpSrcAsc <= offset then TmpSrcAsc := 255 + TmpSrcAsc - offset else TmpSrcAsc := TmpSrcAsc - offset; dest := dest + chr(TmpSrcAsc); offset:=srcAsc; SrcPos:=SrcPos + 2; until SrcPos >= Length(Src); end; Result:=dest; end; onde Key := 'tzvˆ}ƒ|†HLZ‚‰~‡‹N„‘' Voce pode usar essas funções para encripitar / desencripitar textos de email, mas quem recebe tambem tem que ter o mesmo programa para desencripitar a mensagem e poder ler, onde a chave (Key) teria que ser a mesma. Exemplo de como usar: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Memo2: TMemo; Button2: TButton; Memo3: TMemo; function Crypt(Action, Src, Key : String) : String; function Encrypt : string; function Decrypt : string; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; s1, s2, Key, action, src : string; implementation {$R *.DFM} function TForm1.Encrypt; begin S2:=Crypt('E', S1, key); end; function TForm1.Decrypt; begin S2:=Crypt('D', S1, key); end; function TForm1.Crypt(Action, Src, Key : String) : String; var KeyLen : Integer; KeyPos : Integer; offset : Integer; dest : string; SrcPos : Integer; SrcAsc : Integer; TmpSrcAsc : Integer; Range : Integer; begin dest:=''; KeyLen:=Length(Key); KeyPos:=0; SrcPos:=0; SrcAsc:=0; Range:=256; if Action = UpperCase('E') then begin Randomize; offset:=Random(Range); dest:=format('%1.2x',[offset]); for SrcPos := 1 to Length(Src) do begin SrcAsc:=(Ord(Src[SrcPos]) + offset) MOD 255; if KeyPos < KeyLen then KeyPos:= KeyPos + 1 else KeyPos:=1; SrcAsc:= SrcAsc xor Ord(Key[KeyPos]); dest:=dest + format('%1.2x',[SrcAsc]); offset:=SrcAsc; end; end; if Action = UpperCase('D') then begin offset:=StrToInt('$'+ copy(src,1,2)); SrcPos:=3; repeat SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2)); if KeyPos < KeyLen Then KeyPos := KeyPos + 1 else KeyPos := 1; TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]); if TmpSrcAsc <= offset then TmpSrcAsc := 255 + TmpSrcAsc - offset else TmpSrcAsc := TmpSrcAsc - offset; dest := dest + chr(TmpSrcAsc); offset:=srcAsc; SrcPos:=SrcPos + 2; until SrcPos >= Length(Src); end; Result:=dest; end; procedure TForm1.Button1Click(Sender: TObject); begin // ecripitar o texto de um memo Key := 'tzvˆ}ƒ|†HLZ‚‰~‡‹N„‘'; s1 := memo1.Lines.Text; Encrypt; memo2.Clear; memo2.Lines.Text := s2; end; procedure TForm1.Button2Click(Sender: TObject); begin // desnecripitar o texto de um memo encripitado Key := 'tzvˆ}ƒ|†HLZ‚‰~‡‹N„‘'; s1 := memo2.Lines.Text; Decrypt; memo3.Clear; memo3.Lines.Text := s2; end; end.
-
Função para alinhar texto em um memo function StrPad(AValue: String; const ALength: Integer; const ASide: TAlignment): String; begin AValue := Trim(AValue); if Length(AValue) > ALength then AValue := Copy(AValue,1,ALength); case ASide of taLeftJustify: while Length(AValue) < ALength do AValue := AValue + ' '; taRightJustify: while Length(AValue) < ALength do AValue := ' ' + AValue; taCenter: while Length(AValue) < ALength do if (Length(AValue) mod 2)= 0 then AValue := AValue + ' ' else AValue := ' ' + AValue; end; Result := AValue; end; // tamanho da linha = 80 caracteres procedure TForm1.Button1Click(Sender: TObject); var i : integer; begin showmessage(inttostr(MEMO1.LINES.Count)); for i := 1 to MEMO1.LINES.Count do begin if Length(MEMO1.LINES.Strings[i]) < 80 then MEMO2.LINES.Append(StrPad(MEMO1.LINES.Strings[i],80,TACENTER)) else begin MEMO2.LINES.Append(StrPad(MEMO1.LINES.Strings[i],80,TACENTER)); MEMO2.LINES.Append(StrPad(copy(MEMO1.LINES.Strings[i],81,80),80,taLeftJustify)); end; end; end; OBS: a fonte a ser utilizada deve ser a Courier ou Courier New ( os caracteres tem espaçamentos iguais )
-
Entre no painel de controle do windows e selecione Opções Regionais e de Idioma, na guia Opções Regionais clique em Personalizar e depois clique na guia Data, modifique o Formato da data abreviada para dd/MM/aaaa e clique em OK.
-
Achei esta na internet: TABSHEET PAGECONTROL OCULTAR TROCAR EXIBIR Como ocultar as tabsheets de um pagecontrol ? E como fazer para trocar as tab se os botoes estao ocultos ? Resposta: você pode criar um procedure e passar o nome do seu pagecontrol como parametro. procedure OcultarSheets(PageControl: TPageControl); var iPage: Integer; begin for iPage := 0 to PageControl.PageCount - 1 do PageControl.Pages[iPage].TabVisible := False; if ( PageControl.PageCount > 0 ) then PageControl.ActivePage := PageControl.Pages[0]; PageControl.Style := tsButtons; end; agora para trocar as tab você pode criar uns botoes personalizados, ou troca em determinadas ações, ou ate colocar um Time e trocar por tempo, tanto faz. a maneira correta de fazer é: PageControl.ActivePage := PageControl.Pages[2]; onde [2] é o numero do indice da tab, q começa em [0].
-
(Resolvido) Função Monthsbetween (datas Em Meses E Dia)
uma questão respondeu Jhonas em Delphi, Kylix
Tenta essa: function DifDias(DataVenc:TDateTime; DataAtual:TDateTime): String; Var Data: TDateTime; dia, mes, ano: Word; begin if DataAtual < DataVenc then begin Result := 'A data data atual não pode ser menor que a data inicial'; end else begin Data := DataAtual - DataVenc; DecodeDate( Data, ano, mes, dia); Result := FloatToStr(Data)+' Dias'; end; end; Dica de Marco Barki Algranti -
Funções para formatar tipo de dado: http://pgdocptbr.sourceforge.net/pg80/func...formatting.html