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á ruffles Como o Ewerton falou Ok! Pos bem! que banco de dados você ta usando?
  2. Que pena! Como eu havia falado, nunca usei o RBuilder. Com o QuickReport funciona dessa forma. Ate+ ------------------Editado---------------------- Só mais uma pergunta: em que parte da unit do form você colocou essa variável?
  3. Olá Paulo. Você uma desses dicas tambem: Substituindo TAB pelo ENTER procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then if not (ActiveControl is TDBGrid) then begin Key := #0; Perform(WM_NEXTDLGCTL, 0, 0); end else if (ActiveControl is TDBGrid) then with TDBGrid(ActiveControl) do if selectedindex < (fieldcount -1) then selectedindex := selectedindex +1 else selectedindex := 0; end; ou isso: if Key = VK_RETURN then Perform(Wm_NextDlgCtl,0,0); ou então: Enter funcionando como Tab em toda a aplicação Uses Grids procedure TForm1.MudarComEnter(var Msg: TMsg; var Handled: Boolean); begin If not ((Screen.ActiveControl is TCustomMemo) or (Screen.ActiveControl is TCustomGrid) or (Screen.ActiveForm.ClassName = 'TMessageForm')) then begin If Msg.message = WM_KEYDOWN then begin Case Msg.wParam of VK_RETURN,VK_DOWN : Screen.ActiveForm.Perform(WM_NextDlgCtl,0,0); VK_UP : Screen.ActiveForm.Perform(WM_NextDlgCtl,1,0); end; end; end; end; e no evento OnCreate o Form Principal digite a seguinte linha: Application.OnMessage := MudarComEnter; Abs.
  4. Voce se refere a qual aplicação? a minha ou a do eldrey?
  5. Olá eldrey. Como seria essa separação? Seria tipo assim: código: 0123456789 separação: Edit1 = 0123 Edit1 = 4567 Edit1 = 89 quantos digitos tem esse código? e quais partes desses digitos será separados? (Ex: 0123 4567 89) Abs.
  6. hehehe!!! é mesmo! ingoli o d (RecordCount). Pois bem, se você gosta de usar um monte de aspas em vez parametros, tenta isso: sqlRegistros := 'SELECT * FROM BateCartao WHERE cartaoFunc = '+''''+ cmbFuncionario.text +''''+' AND cartaoMes = '+''''+ intToStr(mesNumeroEscrito) +''''+' AND cartaoAno = '+''''+ cmbAno.text +''''+' ORDER BY cartaoDia '; qualquer coisa, posta ae falow! Abs.
  7. Olá jeancainelli. Na verdade eu nunca usei esse RBuilder, mas acredito que se você declarar o seu Form no uses do RBuilder (depois da linha implementation) acho que da certo. tipo assim: implementation uses Unit1; // a Unit1 refere-se ao form. Espero que tenha entendido. Qualquer coisa posta ae, falow!!! Abs.
  8. Olá Zolhos. Após o Query.Open você pode fazer o seguinte: if Query.RecorCount = 0 then begin MessageDlg(...); Exit; End; FWL!!!
  9. Cara, esse negocio "derrubar" a aplicação das máquinas não é nada bom . Já pensou, o usuário trabalhando bem a vontade, fazendo algo até importante, ae derrepente, BUFFF!!! , o sistema fecha e usuário tem que começar tudo dinovo, isso é muito chato . Eu trabalho com um caso desse onde cada máquina tem atualizador, ou sejá, eu criei um outro executavel que deleta o programa da máquina e copia uma versão atualizado do servidor, uso isso ao iniciar o windows, ou quando o usuário fecha o programa e tenta abrir dinovo, o sistema verifica se a versão que está em sua máquina é a mesma que está no servidor, se não for a mesma o sistema obriga o usuário atualizar. Poderia usar até mesmo um arquivo BAT pra essa atualização. Se você se interessar por essa ideia, posta ae, fwl!!! Até+
  10. Olá, eu acho que é isso: ListBox2.Item.Add(ListBox1.text); Foi o que entendi. Ate+.
  11. Olá. em vez de usar DataType e Value tenta usar AsString. Qualquer coisa, posta ae, fwl!!! Abs.
  12. Olá SIN, num seria assim: Abs.
  13. Olá felipee, tenta isso cara: var Form1: TForm1; implementation {$R *.DFM} Procedure TForm1.CriaCodigo(Cod : String; Imagem : TCanvas); Const digitos : array['0'..'9'] of string[5]= ('00110','10001','01001','11000','00101', '10100','01100','00011','10010','01010'); Var Numero : String; Cod1 : Array[1..1000] Of Char; Cod2 : Array[1..1000] Of Char; Codigo : Array[1..1000] Of Char; Digito : String; c1,c2 : Integer; x,y,z,h : LongInt; a,b,c,d : TPoint; I : Boolean; Begin Numero := Cod; For x := 1 to 1000 Do Begin Cod1 [x] := #0; Cod2 [x] := #0; Codigo[x] := #0; End; c1 := 1; c2 := 1; x := 1; For y := 1 to Length(Numero) div 2 do Begin Digito := Digitos[Numero[x ]]; For z := 1 to 5 do Begin Cod1[c1] := Digito[z]; Inc(c1); End; Digito := Digitos[Numero[x+1]]; For z := 1 to 5 do Begin Cod2[c2] := Digito[z]; Inc(c2); End; Inc(x,2); End; y := 5; Codigo[1] := '0'; Codigo[2] := '0'; Codigo[3] := '0'; Codigo[4] := '0'; { Inicio do Codigo } For x := 1 to c1-1 do begin Codigo[y] := Cod1[x]; Inc(y); Codigo[y] := Cod2[x]; Inc(y); end; Codigo[y] := '1'; Inc(y); { Final do Codigo } Codigo[y] := '0'; Inc(y); Codigo[y] := '0'; Imagem.Pen .Width := 1; Imagem.Brush.Color := clBtnFace; //<<-- aqui altera a cor do fundo.; Imagem.Pen .Color := clBtnFace; a.x := 1; a.y := 0; b.x := 1; b.y := 79; c.x := 2000; c.y := 79; d.x := 2000; d.y := 0; Imagem.Polygon([a,b,c,d]); Imagem.Brush.Color := ClBlack; Imagem.Pen .Color := ClBlack; x := 0; i := True; for y:=1 to 1000 do begin If Codigo[y] <> #0 Then Begin If Codigo[y] = '0' then h := 1 Else h := 3; a.x := x; a.y := 0; b.x := x; b.y := 79; c.x := x+h-1; c.y := 79; d.x := x+h-1; d.y := 0; If i Then Imagem.Polygon([a,b,c,d]); i := Not(i); x := x + h; End; end; end; procedure TForm1.Button1Click(Sender: TObject); begin CriaCodigo('0000000000000',Image1.Canvas); end; Nessa dica é usado o comp. TImage. É só mudar o '0000000000000' pelo código, Ok! Abs.
  14. Olá robosa, Poderia esclarecer melhor como você está fazendo? O "papel" do certificado já está pronto e você só quer imprimir os dados do aluno? é isso? Onde você está tentando imprimir? Abs.
  15. Olá s3c, poderia até implementar esse código assim: procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin While (Height > 50) do begin Height := Height - 10; Top := Top + 10; Width := Width - 10; Left := Left + 10; Sleep(5); Application.ProcessMessages; end; end; FWL! abs.
  16. Onde você tá visualizando esse certificado? Se for no QuickReport de dois cliques no quickrep. ira abrir a tela Report Settings, em Paper Size onde aparece Portrait mude para Landscape. Será que é isso? Bom, foi isso que eu entendi! Ate+
  17. Olá Mauro, você quer ocultar o cusor para que não possa ser digitado nada nele? é isso? bom, pra ocultar eu ainda num sei não , mas tem a propriedade ReadOnly, se mudar para True, o memo fica somente leitura, Ok!!! Abs...
  18. Olá Kindelis, qual é o erro? posta ae! abs.
  19. Ai vai: function TForm1.IsWrongIP(ip: string): Boolean; var z:integer; i: byte; st: array[1..3] of byte; const ziff = ['0'..'9']; begin st[1] := 0; st[2] := 0; st[3] := 0; z := 0; Result := False; for i := 1 to Length(ip) do if ip[i] in ziff then else begin if ip[i] = '.' then begin Inc(z); if z < 4 then st[z] := i else begin IsWrongIP := True; Exit; end; end else begin IsWrongIP := True; Exit; end; end; if (z <> 3) or (st[1] < 2) or (st[3] = Length(ip)) or (st[1] + 2 > st[2]) or (st[2] + 2 > st[3]) or (st[1] > 4) or (st[2] > st[1] + 4) or (st[3] > st[2] + 4) then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, 1, st[1] - 1)); if (z > 255) or (ip[1] = '0') then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, st[1] + 1, st[2] - st[1] - 1)); if (z > 255) or ((z <> 0) and (ip[st[1] + 1] = '0')) then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, st[2] + 1, st[3] - st[2] - 1)); if (z > 255) or ((z <> 0) and (ip[st[2] + 1] = '0')) then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, st[3] + 1, Length(ip) - st[3])); if (z > 255) or ((z <> 0) and (ip[st[3] + 1] = '0')) then begin IsWrongIP := True; Exit; end; end; procedure TForm1.Button1Click(Sender: TObject); begin IsWrongIP(Edit1.text); end; ate+
  20. Olá Zolhos, Qual a função do NOMATCH no VB? Okê você ta querendo fazer? no DELPHI
  21. Tenta isso amigo: function TForm1.IsWrongIP(ip: string): Boolean; var z:integer; i: byte; st: array[1..3] of byte; const ziff = ['0'..'9']; begin st[1] := 0; st[2] := 0; st[3] := 0; z := 0; Result := False; for i := 1 to Length(ip) do if ip[i] in ziff then else begin if ip[i] = '.' then begin Inc(z); if z < 4 then st[z] := i else begin IsWrongIP := True; Exit; end; end else begin IsWrongIP := True; Exit; end; end; if (z <> 3) or (st[1] < 2) or (st[3] = Length(ip)) or (st[1] + 2 > st[2]) or (st[2] + 2 > st[3]) or (st[1] > 4) or (st[2] > st[1] + 4) or (st[3] > st[2] + 4) then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, 1, st[1] - 1)); if (z > 255) or (ip[1] = '0') then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, st[1] + 1, st[2] - st[1] - 1)); if (z > 255) or ((z <> 0) and (ip[st[1] + 1] = '0')) then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, st[2] + 1, st[3] - st[2] - 1)); if (z > 255) or ((z <> 0) and (ip[st[2] + 1] = '0')) then begin IsWrongIP := True; Exit; end; z := StrToInt(Copy(ip, st[3] + 1, Length(ip) - st[3])); if (z > 255) or ((z <> 0) and (ip[st[3] + 1] = '0')) then begin IsWrongIP := True; Exit; end; end; procedure TForm1.Button1Click(Sender: TObject); begin IsWrongIP(MaskEdit1.text); end; falou!!!
  22. Olá! você pode fazer isso: var aspa : char; begin aspa:=''''; With Querycontas1 do begin Close; Sql.Clear; Sql.Add('Select *'); Sql.Add('from ''c:\Angratel\contasaprazo.db'''); Sql.Add('Where Data_Primeira>='+aspa+DateToStr(datainicial1.Date)+aspa+' and '); Sql.Add('Data_Primeira<='+aspa+DateToStr(datafinal1.Date)+aspa+' or'); Sql.Add('Data_Segunda>='+aspa+DateToStr(datainicial1.Date)+aspa+' and'); Sql.Add('Data_Segunda<='+aspa+DateToStr(datafinal1.Date)+aspa+' or'); Sql.Add('Data_Terçeira>='+aspa+DateToStr(datainicial1.Date)+aspa+' and'); Sql.Add('Data_Terçeira<='+aspa+DateToStr(datafinal1.Date)+aspa+' or'); Sql.Add('Data_Quarta>='+aspa+DateToStr(datainicial1.Date)+aspa+' and '); Sql.Add('Data_Quarta<='+aspa+DateToStr(datafinal1.Date)+aspa); Open; end; end;
  23. Porque você não usa o MessegeBox? if (MessageBox(handle,'Eliminar o Registro?','Titulo',MB_YESNO or MB_ICONQUESTION) = ID_YES) then Abort;
×
×
  • Criar Novo...