|
Dicas Delphi |
A seguir você poderá copiar e colar todas as dicas para um editor de texto ou interface Delphi. Lembrando que pequenas modificações poderão ser usados no Kylix.
|
Configurar o Delphi para acessar tabelas do Access |
Execute o BDE, abra a paleta CONFIGURATION, click em Drivers, Native, MsAccess,
uma janela de configuraçăo com várias opçőes será aberta.
Configure a DLL32 para IDDA032.DLL ACESS 95 ou IDDA3532.DLL ACESS 97. Na opçăo
SYSTEM DATABASE, aponte para o arquivo System.mdw do Acess que geralmente está
no subdiretório \Msoffice\Access. Salve a configuraçăo e após isto é só
criar seu alias (se já ouver algum criado, delete e configure de novo). Com
essa informaçăo em măos, faça o programa năo pedir o prompt de
login (a da senha), colocando um TDatabase no projeto. Escolha o alias que vocę
criou na propriedade AliasName. Altere LoginPrompt para False. Na propriedade
DatabaseName, coloque um nome qualquer (servirá como substituto do alias em
todas as TTable e TQuery que acessem esse BD). Altere a propriedade AliasName de
todas as TTables e TQueries que acessem essas tabelas para o nome que vocę
definiu em DatabaseName no TDatabase.
|
Apagar um subdiretório |
Inclua a unit SHELLAPI na clausula uses do seu form.
procedure DeleteDir( hHandle : THandle; Const sPath : String );
var
OpStruc: TSHFileOpStruct;
FromBuffer, ToBuffer: Array[0..128] of Char;
begin
fillChar( OpStruc, Sizeof(OpStruc), 0 );
FillChar( FromBuffer, Sizeof(FromBuffer), 0 );
FillChar( ToBuffer, Sizeof(ToBuffer), 0 );
StrPCopy( FromBuffer, sPath);
With OpStruc Do
Begin
Wnd:= hHandle;
wFunc:=FO_DELETE;
pFrom:= @FromBuffer;
pTo:= @ToBuffer;
fFlags:= FOF_NOCONFIRMATION;
fAnyOperationsAborted:=False;
hNameMappings:=nil;
//lpszProgressTitle:=nil;
End;
ShFileOperation(OpStruc);
end;
Utilize a funçăo assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
DeleteDir( Self.Handle,'C:\TESTE');
end;
|
Testar a impressora |
Function TForm1.PrinterOnLine : Boolean;
Const
PrnStInt : Byte = $17;
StRq : Byte = $02;
PrnNum : Word = 0; { 0 para LPT1, 1 para LPT2, etc. }
Var
nResult : byte;
Begin
Asm
mov ah,StRq;
mov dx,PrnNum;
Int $17;
mov nResult,ah;
end;
PrinterOnLine := (nResult and $80) = $80;
end;
Utilize a funçăo assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
If not PrinterOnLine then ShowMessage('Verifique a Impressora!');
end;
|
Validar datas |
try
StrToDate(Edit1.Text);
except
on EConvertError do
ShowMessage ('Data Inválida!);
end;
|
Procurar arquivos |
procedure TForm1.DirList( ASource : string; ADirList : TStringList );
var
SearchRec : TSearchRec;
Result : integer;
begin
Result := FindFirst( ASource, faAnyFile, SearchRec );
if Result = 0 then
while (Result = 0) do
begin
if (SearchRec.Name+' ')[1] = '.' then
{ Se pegou nome de SubDiretorio }
begin
Result := FindNext( SearchRec );
Continue;
end;
ADirList.Add( SearchRec.Name );
Result := FindNext( SearchRec );
end;
FindClose( SearchRec );
ADirList.Sort;
end;
Utilize a funçăo assim:
procedure TForm1.Button1Click(Sender: TObject);
var
contador: Integer;
lista: TStringlist;
begin
lista:= TStringlist.create;
DirList('C:\*.*', lista);
end;
|
Abrir arquivos com aplicativo associado |
Inclua a unit SHELLAPI na clausula uses do seu form.
procedure TForm1.ExecFile(F: String);
var
r: String;
begin
case ShellExecute(Handle, nil, PChar(F), nil, nil, SW_SHOWNORMAL) of
ERROR_FILE_NOT_FOUND: r := 'The specified file was not found.';
ERROR_PATH_NOT_FOUND: r := 'The specified path was not found.';
ERROR_BAD_FORMAT: r := 'The .EXE file is invalid (non-Win32 .EXE or error in .EXE
image).';
SE_ERR_ACCESSDENIED: r := 'Windows 95 only: The operating system denied access
to the specified file.';
SE_ERR_ASSOCINCOMPLETE: r := 'The filename association is incomplete or invalid.';
SE_ERR_DDEBUSY: r := 'The DDE transaction could not be completed because other
DDE transactions were being processed.';
SE_ERR_DDEFAIL: r := 'The DDE transaction failed.';
SE_ERR_DDETIMEOUT: r := 'The DDE transaction could not be completed because the
request timed out.';
SE_ERR_DLLNOTFOUND: r := 'Windows 95 only: The specified dynamic-link library
was not found.';
SE_ERR_NOASSOC: r := 'There is no application associated with the given filename
extension.';
SE_ERR_OOM: r := 'Windows 95 only: There was not enough memory to complete the
operation.';
SE_ERR_SHARE: r := 'A sharing violation occurred.';
else
Exit;
end;
ShowMessage(r);
end;
Utilize a funçăo assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecFile('c:\windows\Telhas.bmp');
end;
|
Fazer um TEdit aceitar apenas números |
Na rotina abaixo, o TEdit só aceitará números de 0 a 9 e o BackSpace (Chr(8)).
Se
vocę quiser a vírgula também, coloque dentro do colchete DecimalSeparator
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in['0'..'9',Chr(8)]) then Key:= #0;
end;
|
Alterar o papel de parede do Windows |
procedure
TForm1.Button1Click(Sender: TObject);
var
Arquivo: String;
begin
Arquivo:= 'c:\windows\bitmap~1.bmp';
SystemParametersInfo(SPI_SetDeskWallPaper, 0, PChar(Arquivo), 0);
end;
|
Extrair o número de cores do modo de vídeo corrente do Windows95 |
var
hnd: THandle;
bitsPorPixel: integer;
begin
hnd:= GetDC( Handle );
bitsPorPixel:= GetDeviceCaps( hnd, BITSPIXEL );
// 8 = 256 cores; 16 = high color; 24 = true color
end;
|
Habilitar e desabilitar barra de tarefas |
procedure hideTaskbar; // desabilita
var wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle:= FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_HIDE);
end;
procedure showTaskbar; // habilita
var wndHandle : THandle;
wndClass : array[0..50] of Char;
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle:= FindWindow(@wndClass[0], nil);
ShowWindow(wndHandle, SW_RESTORE);
end;
|
Habilitar e desabilitar ctrl+alt+del |
//
desabilita
procedure
TForm1.Button1Click(Sender: TObject);
var
numero: integer;
begin
SystemParametersInfo(97,Word(true),@numero,0);
end;
// habilita
procedure TForm1.Button2Click(Sender: TObject);
var
numero: integer;
begin
SystemParametersInfo(97,Word(false),@numero,0);
end;
|
Alterar a data e a hora do sistema |
procedure
TForm1.Button1Click(Sender: TObject);
var
SystemTime : TSystemTime;
begin
With SystemTime do
begin
//Definindo o dia do sistema
wYear:= 1996;
wMonth:= 5;
wDay:= 10;
//Definindo a hora do sistema
wHour:= 20; //hora
wMinute:= 50; //minutos
wSecond:= 59; //segundos
end;
//Colocar a hora e data do sistema
SetLocalTime(SystemTime);
end;
|
Extrair o tamanho de um arquivo |
function TForm1.TamArquivo(Arquivo:
string): Integer;
begin
with TFileStream.Create(Arquivo, fmOpenRead or fmShareExclusive) do
try
Result := Size;
finally
Free;
end;
end;
Utilize a funçăo assim:
procedure
TForm1.Button1Click(Sender: TObject);
begin
edit1.text:= inttostr(TamArquivo('CAMINHO\NOMEDOARQUIVO'));
end;
| Extrair o ícone de um executável |
Inclua a unit Shellapi na cláusula uses do seu form.
Image1.Picture.Icon.Handle:= ExtractIcon(Handle,PChar('c:\windows\calc.exe'),0);
|
Verificando a memória |
var
MemoryStatus: TMemoryStatus;
begin
MemoryStatus.dwLength:= sizeof(MemoryStatus);
GlobalMemoryStatus(MemoryStatus);
Label1.Caption := 'Total de memória física : ' + IntToStr(MemoryStatus.dwTotalPhys);
end;
{typedef struct _MEMORYSTATUS
DWORD dwLength; // sizeof(MEMORYSTATUS)
DWORD dwMemoryLoad; // percentual de memória em uso
DWORD dwTotalPhys; // bytes de memória física
DWORD dwAvailPhys; // bytes livres de memória física
DWORD dwTotalPageFile; // bytes de paginaçăo de arquivo
DWORD dwAvailPageFile; // bytes livres de paginaçăo de arquivo
DWORD dwTotalVirtual; // bytes em uso de espaço de endereço
DWORD dwAvailVirtual; // bytes livres}
| Número de série do HD |
Function TForm1.SerialNum(FDrive:String) :String;
var
Serial: DWord;
DirLen, Flags: DWord;
DLabel : Array[0..11] of Char;
begin
Try
GetVolumeInformation(PChar(FDrive+':\'),dLabel,12,@Serial,DirLen,Flags,nil,0);
Result := IntToHex(Serial,8);
Except
Result := '';
end;
end;
| Compartilhar uma pasta de um outro micro e mapear com uma letra |
var
err : DWord;
PServer, PSenha, PLetra : PChar;
Begin
PServer := '\\Caminho\Caminho' + #0;
PLetra := 'L:';
PSenha := '';
ERR := WNetAddConnection ( PServer , PSenha , PLetra );
CASE ERR of
ERROR_ACCESS_DENIED : ShowMessage ( 'Acesso negado.' );
ERROR_ALREADY_ASSIGNED : ShowMessage ( 'A letra do drive especificada já está
conectada.' );
ERROR_BAD_DEV_TYPE : ShowMessage ( 'O tipo de dispositivo e o tipo de recurso năo
săo compatíveis.' );
ERROR_BAD_DEVICE : ShowMessage ( 'Letra inválida.' );
ERROR_BAD_NET_NAME : ShowMessage ( 'Nome do servidor năo é válido ou năo
pode ser localizado.' );
ERROR_BAD_PROFILE : ShowMessage ( 'Formato incorreto de parâmetros.' );
ERROR_CANNOT_OPEN_PROFILE : ShowMessage ( 'Conexăo permanente năo
disponível.' );
ERROR_DEVICE_ALREADY_REMEMBERED : ShowMessage ( 'Uma entrada para o dispositivo
especificado já está no perfil do usuário.' );
ERROR_EXTENDED_ERROR : ShowMessage ( 'Erro de rede.' );
ERROR_INVALID_PASSWORD : ShowMessage ( 'Senha especificada inválida.' );
ERROR_NO_NET_OR_BAD_PATH : ShowMessage ( 'A operaçăo năo foi concluída
porque a rede năo foi inicializada ou caminho é inválido.' );
ERROR_NO_NETWORK : ShowMessage ( 'A rede năo está presente.' );
else if Err > 0 then
ShowMessage (IntToStr(Err));
end;
end;
|
Pegar nome do usuário na rede |
Colocar na chamada de Uses de sua Unit as seguintes DCUs : DBITYPES, DBIPROCS,
DBIERRS e DB.
function TForm1.usuario : string;
var
szNetName: Array[0..48] of Char;
iResult: DBIResult;
begin
iResult:= DBIGetNetUserName(szNetName);
if iResult <> DBIErr_None then
DBIError( iResult )
else
Result:= StrPas(szNetName);
end;
| Como saber o estado das teclas Num lock, Caps lock e Scroll lock |
Para saber o estado das teclas acima citadas, utilize a funçăo getkeystate
em conjunto com o código das teclas, ela retorna 0 se a tecla estiver OFF e 1
se a tecla estiver ON, assim:
If getkeystate(vk_numlock)
= 0 then // Num lock está OFF
If getkeystate(vk_numlock) = 1 then // Num lock está
ON
If getkeystate(vk_scroll) = 0 then // Scroll lock está
OFF
If getkeystate(vk_scroll) = 1 then // Scroll
lock está ON
If getkeystate(vk_CAPITAL) = 0 then // Caps lock está
OFF
If getkeystate(vk_CAPITAL) = 1 then // Caps lock está
ON
| Testando drives |
function TForm1.TemDiscoNoDrive(const drive : char): boolean;
var
DriveNumero : byte;
EMode : word;
begin
result := false;
DriveNumero := ord(Drive);
if DriveNumero >= ord('a') then
dec(DriveNumero,$20);
EMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
if DiskSize(DriveNumero-$40) <> -1 then
Result := true
else
messagebeep(0);
finally
SetErrorMode(EMode);
end;
end;
Utilize a funçăo assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
if TemDiscoNoDrive('a') then
ShowMessage('Tem disco no drive A:')
else
ShowMessage('Năo tem disco no drive A:');
end;
| Executando programas externos |
Winexec('Command.com /C
Teste.exe',Tipo_de_Janela);
Tipo_de_Janela :
SW_SHOWNORMAL - Visualizaçăo normal da janela
SW_MAXIMIZE - Janela maximizada
SW_MINIMIZE - Janela minimizada
SW_HIDE - Escondido
| Reproduzindo sons wav, sem o componente mediaplayer |
Coloque na clásula Uses a unit MMSystem
SndPlaySound('C:\Windows\Media\Som.wav',SND_ASYNC);
| Manipular arquivos INI |
Inclua a unit IniFiles na clausula uses do seu form.
Procedure TForm1.GravaIni(
Numero : Longint ; Texto : String ; Condicao : Boolean);
var
ArqIni : TIniFile;
begin
ArqIni := TIniFile.Create('c:\windows\temp\Teste.Ini');
Try
ArqIni.WriteInteger('Dados', 'Numero', Numero);
ArqIni.WriteString('Dados', 'Texto', Texto);
ArqIni.WriteBool('Dados', 'Condiçăo', Condicao);
Finally
ArqIni.Free;
end;
end;
Procedure TForm1.LeIni( Var Numero : Longint ; Var Texto : String ; Var Condicao
: Boolean);
var
ArqIni : tIniFile;
begin
ArqIni := tIniFile.Create('c:\windows\temp\Teste.Ini');
Try
Numero := ArqIni.ReadInteger('Dados', 'Numero', Numero );
Texto := ArqIni.ReadString('Dados', 'Texto', Texto );
Condicao := ArqIni.ReadBool('Dados', 'Condiçăo', Condicao );
Finally
ArqIni.Free;
end;
end;
Utilize as funçőes assim:
procedure
TForm1.Button1Click(Sender: TObject);
begin
GravaIni(1234,'TESTE',True);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
N: Integer;
T: String;
C: Boolean;
begin
LeIni(N,T,C);
Showmessage(IntToStr(N)+' '+T);
end;
| Exponenciaçăo |
Inclua a unit Math na clausula uses do seu form. Depois disso utilize a funçăo
Power.
Edit1.text:= FloatToStr(Power(2,4));
| Aguardar um determinado nş de segundos (inkey-equivalente do Clipper) |
procedure TForm1.Delay(Tempo:
Word);
var x1: Double;
begin
x1:= now;
repeat until ((now-x1)*86400) > Tempo;
end;
| Tecla ENTER funcionar como TAB |
Setar a propriedade KeyPreview do Form para True.
Setar a propriedade Default de todos os botőes do Form para False.
Criar
um evento OnKeyPress para o Form como este:
Procedure Tform1.FormKeyPress(Sender: Tobject; var Key: Char);
begin
If key = #13 then
Begin
Key:= #0;
Perform(Wm_NextDlgCtl,0,0);
end;
end;
| Utilizar ponto para separar decimais |
Vocę pode combinar a variável DecimalSeparator, ThousandSeparator do
Delphi com o evento OnKeyPress:
procedure
TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If key = '.' then key:= DecimalSeparator;
end;
| Criando um Splash Screen (abertura) |
Vocę pode criar uma tela de abertura no seu
programa em Delphi. Após ter criado um formulário principal, crie um formulário
para a tela de abertura. Aqui iremos chamá-lo de ABERTURAFORM.
Depois de criar os dois formulários, clique no menu VIEW, na opçăo
PROJECT SOURCE, que permite que seja exibido o código do arquivo principal do
projeto. Localize no código a linha em que o formulário de abertura é criado
e apague-a (ou coloque em modo de observaçăo, inserindo // no início da
linha).
Linha que deve ser apagada:
begin
...
Application.CreateForm(TAberturaForm, AberturaForm); // Esta linha deve ser
apagada
...
end;
Após remover a linha
acima, insira as linhas abaixo antes da criaçăo dos demais formulários do
seu aplicativo:
Linhas que devem ser inseridas:
begin
AberturaForm:= TAberturaForm.Create(Application);
AberturaForm.show
{Os demais formulários devem ser criados aqui}
...
AberturaForm.Hide;
AberturaForm.Free;
Application.Run;
End;
Os comandos...
AberturaForm:= TAberturaForm.Create(Application); - cria o formulário
AberturaForm.Show - exibe o formulário de abertura na tela
AberturaForm.Hide; - esconde o formulário de abertura
AberturaForm.Free; - tira o formulário da memória
| Como limpar todos os edits de um form |
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
for i := 0 to ComponentCount-1 do
begin
If Components[i].ClassName = 'TEdit' then
Tedit(Components[i]).clear; //
ou TEdit(components[i]).text:= ''
end;
end;
| Formatar números com zeros ŕ esquerda (Strzero-equivalente do Clipper) |
var
Numero: Integer;
begin
Numero:= 123;
Edit1.text:= Format('%5.5d',[Numero]); // resulta
'00123';
end;
| Obrigar a digitaçăo de caracteres maiúsculos num campo memo |
procedure
TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
Key:= Upcase(Key);
end;
| Imprimindo um campo memo via Canvas |
Coloque na clásula Uses a unit printers
procedure TForm1.Button1Click(Sender: TObject);
var
i, altura : Integer;
sMemo : String;
begin
With Printer do
begin
Title:= 'Imprimindo memo';
BeginDoc;
With Canvas do
begin
altura := TextHeight('A');
for i := 1 to Memo1.Lines.Count do
begin
sMemo := Memo1.Lines[I];
TextOut(1, (i - 1) * Altura, sMemo);
end;
end;
EndDoc;
end;
end;
| Procura e substituiçăo de string num campo memo |
Procedure FindReplace (const
Enc, subs: String; Var Texto: TMemo);
Var
i, Posicao: Integer;
Linha: string;
Begin
For i:= 0 to Texto.Lines.count - 1 do
begin
Linha := Texto. Lines[i];
Repeat
Posicao:=Pos(Enc,Linha);
If Posicao > 0 then
Begin
Delete(Linha,Posicao,Length(Enc));
Insert(Subs,Linha,Posicao);
Texto.Lines[i]:=Linha;
end;
until Posicao = 0;
end;
end;
Utilize a funçăo ssim:
Procedure TForm1.Button1Click (Sender: TObject);
Begin
FindReplace(Edit1.Text,Edit2.Text, Memo1);
end;
| Pegando a linha e coluna atuais de um memo |
With Memo1 do
begin
Line:= Perform(EM_LINEFROMCHAR,SelStart, 0);
Column:= SelStart - Perform(EM_LINEINDEX, Line, 0);
end;
| Trocando a cor de uma célula num DBGrid |
No evento onDrawColumnCell do dbgrid coloque o código para mudar a cor da fonte
do dbgrid e a chave do método para "desenhar" os dados.
procedure
TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol:
Integer; Column: TColumn; State: TGridDrawState);
begin
if (Column.Field.FieldName = 'NOMEDOCAMPO') then
begin
if condiçăo then // coloque aqui sua condiçăo
begin
DBGrid1.Canvas.Brush.Color:= clAqua;
DBGrid1.Canvas.Font.Color:= clWindowText;
DBGrid1.Canvas.FillRect(Rect);
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
end;
end;
| Trocando a cor da fonte num DBGrid |
Coloque a propriedade defaultdrawdata do dbgrid em FALSE;
No evento onDrawColumnCell do dbgrid coloque o código para mudar a cor do font
do dbgrid e a chave do método para "desenhar" os dados.
procedure
TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
If Condiçăo then Dbgrid1.Canvas.Font.Color:= clFuchsia; // coloque aqui a cor desejada
Dbgrid1.DefaultDrawDataCell(Rect, dbgrid1.columns[datacol].field, State);
end;
| Gerenciando mais de uma linha selecionada num DBGrid (Multiselect) |
O DBGrid tem uma propriedade năo documentada chamada SelectedRows
(Tbookmark). Com ela vocę pode gerenciar Multiselect da seguinte forma:
var
contador: Integer;
begin
With Dbgrid1 do
Begin
for contador:= 0 to Pred(SelectedRows.Count) do
Begin
Datasource.Dataset.Bookmark:= SelectedRows[contador]; //
posiciona nos registros selecionados do DBGrid
end;
end;
| Commit (Delphi 3) |
Inclua DBISaveChanges(Nome da Tabela.handle) no evento After Post. Inclua em
uses a biblioteca DBIProcs.
procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
DBISaveChanges(TTable(Dataset).handle);
end;
| Commit (Delphi 2) |
Inclua DBISaveChanges(Nome da Tabela.handle) no evento After Post. Inclua em
uses a biblioteca DBIProcs.
procedure TForm1.Table1AfterPost(DataSet: TDataSet);
begin
DBISaveChanges(Table1.handle);
end;
| Extrair o número do registro atual em tabelas Paradox ou Dbase |
Inclua a unit BDE na clausula uses do seu form.
procedure
TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
var
CP: CurProps;
RP: RecProps;
RecID: Longint;
begin
with Table1 do
begin
UpdateCursorPos;
Check(DbiGetCursorProps(Handle, CP));
Check(DbiGetRecord(Handle, dbiNOLOCK, nil, @RP));
if StrComp(CP.szTableType, szDBASE) = 0 then
RecID := RP.iPhyRecNum
else if StrComp(CP.szTableType, szPARADOX) = 0 then
RecID := RP.iSeqNum
else raise EDatabaseError.Create('ERRO! Năo é uma tabela Paradox ou dBASE.');
end;
Label1.Caption:= IntToStr(RecID) +' de '+ IntToStr(Table1.recordcount);
end;
| Alterando Idapi32.Cfg Via Programa |
Substitua AliasName pelo nome do alias que vocę quer criar e em AliasPath
pelo path dos arquivos de dados que vocę quer no seu alias.
Inclua na cláusula "USES" as units BD e BDE.
Check(DbiAddAlias(Nil,
PChar(' AliasName '), Nil, PChar(' AliasPath'), True));
| Criando tabelas |
var
Tabela: TTable;
Indices: TIndexOptions;
begin
Tabela:= TTable.Create;
Indices:= [ixPrimary, IxUnique];
with Tabela do
begin
active:= false;
databasename:= 'c:\teste';
tablename:= 'Tabela';
tabletype:= ttDefault;
fielddefs.clear;
fielddefs.add('Codigo', ftInteger, 0, false);
...
indexdefs.clear;
indexdefs.add('Codigo_Chave', 'codigo', Indices);
CreateTable;
end;
| Traduzindo o preview padrăo do Quickreport (Delphi 3) |
Abra só o arquivo QRPREV.DFM do diretório C:\Arquivos de Programas\Borland\Delphi
3.0\Lib. Atençăo: năo abra o QRPREV.DCU, ok?
Você pode traduzir várias propriedades exceto NAME dos componentes e você
năo deve incluir nenhum componente novo.
| Data por extenso no Quickreport |
var
nrdia: Integer;
diasemana: array[1..7] of String;
meses: array[1..12] of String;
dia, mes, ano: Word;
begin
diasemana[1]:= 'Domingo';
diasemana[2]:= 'Segunda-feira';
diasemana[3]:= 'Terça-feira';
diasemana[4]:= 'Quarta-feira';
diasemana[5]:= 'Quinta-feira';
diasemana[6]:= 'Sexta-feira';
diasemana[7]:= 'Sábado';
meses[1]:= 'Janeiro';
meses[2]:= 'Fevereiro';
meses[3]:= 'Março';
meses[4]:= 'Abril';
meses[5]:= 'Maio';
meses[6]:= 'Junho';
meses[7]:= 'Julho';
meses[8]:= 'Agosto';
meses[9]:= 'Setembro';
meses[10]:= 'Outubro';
meses[11]:= 'Novembro';
meses[12]:= 'Dezembro';
DecodeDate(DATE,ano,mes,dia);
nrdia:= DayOfWeek(DATE);
QRLabel1.Caption:= diasemana[nrdia]+', '+INTTOSTR(dia)+' de '+meses[mes]+' de '+INTTOSTR(ano);
| Filtrando registros com o Quickreport (Delphi 2) |
Vocę deve usar o evento OnFilter do componente Quickreport. O mesmo possui
a variável PrintRecord do tipo Boolean. Para que o registro năo seja
impresso, basta atribuir False a esta variável.
procedure TForm1.QuickReport1Filter(var PrintRecord: Boolean);
begin
PrintRecord:= ( table1salario.value > 200 );
end;
| Extraindo o ano, mês ou dia de uma data via SQL |
Select * from
nome_tabela where extract(year from campo_data) = 1997
Vocę pode extrair o męs (MONTH) ou o dia (DAY).
Home
Proxima
2 - 3 - 4
- 5 - 6 - 7
- 8 - 9 - 10
fontesbrasil.com® Todos os direitos reservados.
Redirecinar: http://www.fontesbrasil.com Melhor visualização 800 x 600