segunda-feira, 17 de agosto de 2015

Bloco PL/SQL para inserção de dados

Pergunta 
Criar um bloco pl/sql que insira um novo dep na tabela s_dept 

- use a sequencia s_dept_id para o campo id da tabela 

- solicite ao usuario o nome do dep 

- insira valores nulos p/ o campo region_id 

Resposta 
-> no banco de dados... 
create or replace 
procedure insere_departamento (v_nome char) is 
v_id number; 
begin 
  SELECT sequenciaID.NEXTVAL INTO v_id FROM DUAL; 
  insert into tabela (id,dep,region_id) 
  values (v_id,v_nome,null); 
end insere_departamento; 

-> no delphi..

- coloque o objeto TStoredProc dentro do formulario que ira disparar esta procedure; 
- no evento que voce quiser que dispare coloque o seguinte codigo: 
 var 
  v_nome : String[50]; 
  begin 
{caso vc queira informar o nome do departamento atraves de uma caixa de dialogo} 
  V_nome := inputbox('Informe o nome do departamento.','Depto:',''); 
  .Params[0].AsString := v_nome; 
{caso vc queira buscar o nome atraves de um TEdit já preenchido} 
  .Params[0].AsString := .Text; 
  .ExecProc; 
  end; 

Inserindo uma Imagem no Formulário

A dica abaixo apresenta o código para implementação da função para inserir uma imagem no fundo do formulário. 

A função permite que se especifique as coordenadas da imagem e qual o arquivo que contém a imagem.

Através do componente TBitMap é possível criar uma figura dinamicamente e especificar qual será a imagem, através do método LoadFromFile.

Para desenhar a imagem usa-se o componente Tcanvas, através do método Draw, que desenha um gráfico nas coordenadas especificadas.

Código Completo:

declara após o type junto aos outros procedimentos!

Procedure Desenha(figura:String;H,V:Integer);

Procedure TForm1.Desenha(figura:String;H,V:Integer);
Var 
Imagem :TBitMap;
begin 
Imagem := TBitMap.Create;
Try
Imagem.LoadFromFile(Figura); 
Canvas.Draw(H,V,Imagem); 
Except 
ShowMessage(' Arquivo não foi localizado !'); 
end;
end;
ExemploQuando o botão for clicado, uma imagem será inserida no formulário, nas coordenadas (10,20);

procedure TForm1.Button1Click(Sender: TObject);
begin 
Desenha('c:\windows\bolhas.bmp',10,20);
end;

Como desenhar um Bitmap num form

var
Form1: TForm1;
Bmp: TBitmap;
implementation
{$R *.DFM}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Bmp:=TBitmap.Create;
  Bmp.Loadfromfile('c:\windows\nuvens.bmp');
end;

procedure TForm1.TForm1.FormPaint(Sender: TObject);
begin
  Canvas.Draw(50,50,Bmp);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Bmp.Free;
end; 

segunda-feira, 3 de agosto de 2015

Formatação de Casas Decimais no TEdit

Esse comando formata para decimal os números do componente TEDIT.
Crie um novo projeto, coloque no TForm, um componente TEDIT e um componente TBUTTON. No evento onclick do componente TBUTTON adicione o código abaixo:

procedure TForm1.Button1Click(Sender: TObject); 
var
     num : integer; 
begin 
     num:=12450; 
     Edit1.text:=formatfloat('###,###,##0.00', num) 
end;

Como posso rolar um form com pgUp e pgDn

Questão. Como posso fazer funções de rolagem num componente TForm usando comandos de teclado? Por exemplo, rolar pra cima e pra baixo quando pressionar PgUp ou PgDown. Existe algum método simples de fazer isso?

Resposta. O rolamento do form é completo fazendo-se uma modificação na posição das propriedades VertScrollbar ou HorzScrollbar do form. Como mostrado no código a seguir:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
const
PageDelta = 10;
begin
  With VertScrollbar do
  if Key = VK_NEXT then
  Position := Position + PageDelta
  else if Key = VK_PRIOR then
  Position := Position - PageDelta;
end;
  

sábado, 1 de agosto de 2015

Capturar a data da BIOS ( Basic Input Output System ) do computador

Insira um objeto do tipo Button com a propriedade name definica como Button1 e um objeto do tipo Label com a propriedade definida como Label1.

procedure TForm1.Button1Click(Sender: TObject); 
begin
  Label1.Caption := 'Data da Bios: '+String(PChar(Ptr($FFFF5))); 
end; 

Como retornar a uma lista os campos indexados de um tabela

procedure TForm1.Button1Click(Sender: TObject);
var
      i : integer;
begin
     Table1.IndexDefs.Update;
     ListBox1.Items.add
    ('******** Índice Primário ********');
    for i:=0 to Table1.IndexDefs.Count-1 do
    begin
          if Table1.IndexDefs.Items[i].Options = [ixPrimary..ixUnique] then
          ListBox1.Items.add(Table1.IndexDefs.Items[I].Fields)
    else
         begin
              ListBox1.Items.add('');
              ListBox1.Items.add
              ('**** Índice Secundário ****');
              Listbox1.Items.Add(Table1.IndexDefs.Items[I].Name); 
          end;
     end; 
end;
  

Curso de Delphi: 7.Consultas SQL