Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.
COLUNA DO LEITOR
Obtendo os Nomes das Tabelas e dos Campos
Galera,
Estou fazendo uma pequena aplicação e preciso disponibilizar um recurso que desconheço como fazê-lo. O que quero fazer é o seguinte:
Dado um banco de dados, preciso descobrir quais tabelas fazem parte desse banco e a partir da escolha de uma dessas tabelas, preciso descobrir quais são os campos existentes nessa tabela.
Gostaria de esclarecer também que estou usando um banco de dados Paradox.
Qualquer ajuda será bem vinda.
Desde já agradeço a todos pela atenção e aguardo uma resposta dos amigos.
Alexandre.
Caro Alexandre,
O objetivo TSession possui um método chamado GetTableNames, que retorna, em uma lista, os nomes das tabelas de um determinado banco de dados. Exemplo:
uses
dbtables;
Session.GetTableNames(‘DBDEMOS’,
‘*.db’,False, False,Memo1.Lines);
E para obter os campos, utilize a propriedade FieldList do componente TTable, mas é preciso que a tabela seja aberta para obter os campos.
Exemplo:
Memo1.Lines := table1.FieldList;
Equipe de Suporte,
Clube Delphi
Arquivo de Recursos (.res)
Olá amigos, tenho mais uma dúvida, gostaria da ajuda de vocês mais uma vez!!!
Criei um arquivo .RES baseado em uma tabela de strings, no qual inseri msg, etc.
Usei a diretiva de compilação {$R teste.RES} no aplicativo e com o comando LoadStr(12), consegui puxar cada string desejada para utilizá-la em um Showmessage por exemplo.
Bom, até aí tudo bem, deu tudo certo com strings, só que agora eu quero fazer o mesmo com bitmaps e não consigo fazer um código que puxe um determinado bitmap de um arquivo de nome CIFRAS.RES que criei, para um objeto TImage ou qualquer outro que trabalhe com imagem.
Como faço para localizar uma ds figuras do arquivo de recurso “CIFRAS.RES” e joga-la em qualquer objeto de imagem?
Certo de que serei atendido, deixo aqui os meus agradecimentos.
[]’s
Lúcio Torres
Caro Lúcio,
O objeto TBitmap possui um método do chamado ‘LoadFrom ResourceName’, e em um de seus parâmetros, deve ser informado o nome da figura definido pelo ImageEditor, daí fica fácil, veja no exemplo:
function ExibeFigura(Nome:
string):TBitmap;
var
bmp: TBimap;
begin
bmp := TBitmap.Create;
bmp.LoadFromResourceName
(HInstance, Nome);
Result := bmp;
end;
procedure TForm1.SpeedButton1
Click(Sender: TObject);
begin
Image1.Picture.Bitmap :=
ExibeFigura(‘Figura1’);
end;
Equipe de Suporte,
Clebe Delphi
Verificando se o foco está em um componente
Como faço para saber se o foco está em determinado componente?
Roberto Couto dos Santos
Sobre o foco, use a propriedade Focused (do tipo boolean).
if Edit1.Focused then ...
Equipe de Suporte,
Clebe Delphi
QuickReport
Como faço para salvar um arquivo gerado no QuickReport sem o usuário clicar o botão de salvar? E depois como faço para abrir?
Andréa Bianchi
Andréa,
Para salvar o relatório:
QuickRep1.QRPrinter.
Save(‘C:\QuickRep.qrp’);
Para abrir um relatório:
QuickRep1.QRPrinter.
Load(‘c:\QuickRep.qrp’);
Equipe de Suporte,
Clube Delphi
Erro: Blob has been modified
Caros Amigos,
Vocês podem me informar como eliminar este erro, e o que está causando?
Estou utilizando Delphi 3.02 e tabelas Paradox.
Muito Obrigado,
Rodrigo
Já tive este problema e hoje raramente acontece.
Passei a só abrir as tebelas quando abro os forms e quando saio fecho-os.
Quanto aos campos Memo (Blob) deixo na tabela com tamanho 1, e o resto no .mb (este resto é automaticamente armazenado em um arquivo de extensão MB).
Para resolver o problema, na época só localizando o registro com problema e excluindo o registro.
Boa sorte, Emerson
Como exibir um Form de qualquer lugar em seu projeto
Uma dica enviada por Lúcio Torres, mostra como fazer para que ao pressionar uma tecla em qualquer unidade de seu projeto, seja executado um procedimento. Neste exemplo um formulário é exibido:
Crie no ProjectSource de seu projeto (*.dpr):
program Project1;
uses
Forms,
Windows,
Messages,
Unit1 in ‘Unit1.pas’ {Form1},
Unit2 in ‘Unit2.pas’ {Form2},
Unit3 in ‘Unit3.pas’ {Form3},
Unit4 in ‘Unit4.pas’ {Form4{,
Unit5 in ‘Unit5.pas’ {Form5};
{$R *.RES}
type
TAppMsg = class(TObject)
public
procedure AppMessage(var Msg: TMsg; var Handled:
Boolean);
end;
procedure TAppMsg.AppMessage(var Msg: TMsg; var Handled:
Boolean);
begin
case Msg.Message of
WM_KEYDOWN : if MSg.wParam = VK_F2 then
begin
Form4.show; {Coloque o formulário que vc quer chamar}
end;
end;
end;
var
AppMsg : TAppMsg;
begin
AppMsg := TAppMsg.Creature;
Application. Initialize;
Application.OnMessage := AppMsg.AppMessage;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.Run;
end.
[]’s
Lúcio Torres