package banco;
public class ContaCorrente {
public String nome;
private float saldo;
private String senha;
public static int agencia; //atributo de classe pois tera o mesmo valor para todos os objetos ou seja o cliente1 e cliente2]
//public Data abertura; composicao
public ContaCorrente()
{
saldo = 300;
}
public void saque (float valorASacar){
saldo = saldo - valorASacar;
}
public void deposito (float valor){
saldo = saldo + valor;
}
public void alteraSenha (String nova){
senha = nova;
}
public String extrato(){
return "Nome do Correntista "+ nome +"\nSaldo Atual "+ saldo +"\nAbertura ";
}
///nunca jamais em um metodo return e um void
public float retornaSaldo()
{
return saldo;
}
public String imprimeSenha(){
return senha;
}
}
//_____________________________________________________________________
package banco;
public class Data {
//ATRIBUTOS
//INFORMAÇAO, DADOS, SAO COMO VALORES
//VISIBILIDADE DO ATRIBUTO, SEGURANCA, PERMITE VALICAÇAO DOS VALORES DOS ATRIBUTOS
//PUBLIC
private int Dia; //todo atributo requer um metado publico
private int Mes;
public int Ano;
//Metados
//Metado construtor, pois tem o mesmo nome da class
//nao tem qualquer tipo de retorno
public Data()
{
Dia = 01;
Mes = 01;
Ano = 1900;
}
//Eles servem para acessar e alterar atributos private, ou seja, atributo com
//acesso restrito com regras
//tipo do paramentro deve ser compativel com os tipos dos atributos
public void alteraDia (int novoDia)
{
if ((novoDia >= 1) && (novoDia <= 31))
Dia = novoDia;
}
public void alteraMes (int novoMes)
{
if ((novoMes >= 1) && (novoMes <= 12))
Mes = novoMes;
}
public String imprimeData()
{
//RETURN = inimigo do VOID nunca tera os 2 em um metado
//return requer o tipo do retorno String, int, float, char, boolean
return Dia + "/" + Mes + "/" + Ano;
}
}
__________________________________________________________________________
package banco;
public class Main {
public static void main(String[] args) {
ContaCorrente cliente1 = new ContaCorrente();
cliente1.nome = "Abrahao";
ContaCorrente cliente2 = new ContaCorrente();
cliente2.nome = "Moises";
cliente1.deposito(500);
cliente2.deposito(800);
cliente1.agencia = 640;
cliente2.agencia = 312;
cliente2.saque(750);
System.out.println(cliente1.extrato()+"\nAgência"+cliente1.agencia);
System.out.println(cliente2.extrato()+"\nAgência"+cliente2.agencia);
}
}
25.3.09
Classe Conta Bancaria Java
14.2.09
12.2.09
Evitando perda de dados
Um dos problemas dos programadores Delphi é salvar as informações fisicamente no disco rígido. Quando estamos trabalhando com o programa as informações ficam retidas no buffer, o que, em caso de queda de energia ou até mesmo se o usuário fechar o Windows com a aplicação aberta resulta na perda dos dados, que foram processados na execução atual do sistema.
Para resolver o problema, basta acrescentar no evento AfterPost de cada componente Table as linhas de código que estão abaixo.
Na lista de Uses acrescente a unit DBIProcs.
Dessa forma, você não precisa temer perder os seus dados por uma falha elétrica ou pela quebra do sistema (como um erro GPF, por exemplo), após atualizar o banco de dados.
implementation
uses DBIProcs;
{$R *.DFM}
procedure TForm1.Table1AfterPost(DataSet: Dataset);
begin
DBISaveChanges(Table1.Handle);
end;
end.
Alterar tabela existente
Procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Alter Table Clientes Add Novo_Campo1 Char(20)');
Query1.ExecSQL;
end;
Tratar campos not null
//Procedure muito útil, para ser utilizada antes de gravar um cadastro
Procedure ChecarcamposRequeridos(tabela : TDataSet);
var
i : integer;
begin
for i := 0 to Pred(tabela.Fields.Count) do
begin
if (tabela.Fields[i].Required) and (tabela.Field[i].IsNull) then
begin
ShowMessage('Campo: ' + tabela[i].DisplayLabel + ' precisa ser informado!');
break;
end;
end;
AUTO INCREMENTO - BANCO DE DADOS
qryconte.sql.add:= ('select max (cod_cliente) from cad');
No evento beforepost da table coloque
procedure TFormCadPedidos.tblpedidoBeforePost(DataSet: TDataSet);
begin
If tblpedido.State = dsInsert then
begin
qryConte.Active := False;
qryConte.Active := True;
With qryConte.Fields[0] do
if IsNull then
tblpedidoCOD_PEDIDO.Value :=1
else
tblpedidoCOD_PEDIDO.Value := AsInteger +1;
end;
end;
8.2.09
Letreiro digital (da direita para esquerda)
{Coloque um Timer, um Panel e um Label dentro do Panel.
Dê um duplo clique no Timer e digite o código abaixo:}
if label1.left>= -(label1.Width) then
label1.left:=label1.left-1
else
label1.left := Panel1.width;
{Você pode alterar a velocidade do texto na propriedade Interval do Timer, quanto menor o Interval, mais rápido ficará o letreiro.
Espero que gostem..
Vlw..}
Formatando um componente do tipo qrexpression
{1-Abra a propriedade expession do componente
2-Escolha o botão funtion
3-Selecione a categoria Other
4-Escolha a função FormatNumeric
5-Essa função recebe dois parâmetros o primeiro é o formato do numero tipo
"###,###,###,0.00', e o segundo é o numero que se deseja formatar lembrando qiue esse numero pode ser um campo do banco de dados e etc}
Executar um avi no form
Procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with MediaPlayer1 do
begin
FileName := 'c:\windows\help\scroll.avi';
Open;
Display := Form2;
Form2.Show;
Play;
end;
end;
31.1.09
Data Por Extenso e identificar o ano
procedure Trelat_mensal.QuickRepmensalStartPage(Sender: TCustomQuickRep);
var
MES : STRING;
ANO : STRING;
I : INTEGER;
begin
ANO :=(COPY(frelat_mensal.MaskEdit1.Text,7,2));
MES :=(copy(frelat_mensal.MaskEdit1.Text,4,2));
if mes = '01' then qrlabel6.caption:= 'Janeiro';
if mes = '02' then qrlabel6.Caption:='Fevereiro';
if mes = '03' then qrlabel6.Caption:='Março';
if mes = '04' then qrlabel6.Caption:='Abril';
if mes = '05' then qrlabel6.Caption:='Maio';
if mes = '06' then qrlabel6.Caption:='Junho';
if mes = '07' then qrlabel6.Caption:='Julho';
if mes = '08' then qrlabel6.Caption:='Agosto';
if mes = '09' then qrlabel6.Caption:='Setembro';
if mes = '10' then qrlabel6.Caption:='Outubro';
if mes = '11' then qrlabel6.Caption:='Novembro';
if mes = '12' then qrlabel6.Caption:='Dezembro';
FOR I:= 09 TO 20 DO
BEGIN
IF STRTOINT(ANO) = I THEN QRLABEL8.Caption:= ('200'+INTTOSTR(I));
IF LENGTH(QRLABEL8.Caption) = 5 THEN QRLABEL8.Caption := '20'+INTTOSTR(I);
END;
end;
25.1.09
Adicionando mascara de entrada
Muita gente tem dificuldade quando vai inserir uma mascara para cpf ou telefone, pode ser feito das seguintes formas, vá na guia additional e coloque um com maskedit, depois vai na opção editmask no object inspector ou se não clique com o direito em cima do componete table na sua tabela e va em Fields Editor, click com o direito dentro da caixa que aparecer e click em add all fields, selecione o campo que deseja inserir a mascara e novamente vai em editmask no object inspector
Verificar se o cliente ja é cadastrado
procedure TFRM_CADASTRO.DBEdit9Enter(Sender: TObject);
begin
querycpf.Close;
querycpf.SQL.Clear;
querycpf.SQL.Add('select * from cad where CPF_CNPJ ='+dbedit8.Text);
querycpf.Open;
if not querycpf.IsEmpty then
begin
Showmessage ('CLIENTE JA CADASTRADO');
DBEDIT8.SetFocus;
END;
Consulta rapida com InputQuery
procedure TFRM_CADASTRO.SpeedButton8Click(Sender: TObject);
var
nome : string;
begin
Nome := ''; // inicia definindo uma string vazia
if InputQuery('Procurar', 'NOME_CLIENTE', Nome) then
BEGIN
if not table1.Locate('NOME_CLIENTE', Nome,
[loCaseInsensitive, loPartialKey]) then
ShowMessage('Nome não encontrado!');
END;
Função que Valida Cnpj e Cpf
Function ValidaCPFCNPJ(CPFCNPJ: string): boolean;
var
count, tam, i, soma: integer;
num: array of integer;
begin
Result:=False;
tam:=0;
SetLength(num,tam);
for i:=1 to Length(CPFCNPJ) do
BEGIN
if CPFCNPJ[i] in ['0'..'9'] then
begin
inc(tam);
SetLength(num,tam);
Val(CPFCNPJ[i],num[tam-1],soma);
end;
END;
if not(tam in [11,14]) then Exit;
count:=2;
soma:=0;
for i:=Length(num)-3 downto 0 do
begin
soma:=soma+(num[i]*count);
inc(count);
if (tam = 14) and (count > 9) then count:=2;
end;
soma:=11-(soma mod 11);
if soma > 9 then soma:=0;
if not(num[tam-2]=soma) then Exit;
soma:=soma*2;
count:=3;
for i:=Length(num)-3 downto 0 do
begin
soma:=soma+(num[i]*count);
inc(count);
if (tam = 14) and (count > 9) then count:=2;
end;
soma:=11-(soma mod 11);
if soma > 9 then soma:=0;
if not(num[tam-1]=soma) then Exit;
Result:=True;
end;
Consulta entrer Datas + Somando Campos em um Dbgrid
procedure TformConsultedatas.BitBtn1Click(Sender: TObject);
var
soma : currency;
i : integer;
begin
qryconsulte.Close;
qryconsulte.SQL.Clear;
qryconsulte.SQL.Add('select * from MOVIMENT where Data >=:pinicial and Data <=:pfinal order by data');
qryconsulte.ParamByName('pinicial').AsDate := strtodate(maskedit1.Text);
qryconsulte.ParamByName('pfinal').AsDate := strtodate(maskedit2.text);
qryconsulte.Prepare;
qryconsulte.Open;
soma := 0;
//vai pra o final da tabela
tablemov.First;
while not tablemov.EOF do
begin
soma := soma + tablemov.FieldByName('VALOR_TOTAL').Value;
tablemov.Next;
end;
//recebe o valor
LABEL3.Caption := FormatFloat('#,##0.00', soma);
















