get set no DataModule para combobox delphi 7
Existe uma forma de como trazer o que esta definido num GET,SET dentro de um data module, para um combobox ou dbcombobox, em tempo de execução ? Por exemplo: Digamos que em base eu defina um campo Origem, como sendo: Revistas, Jornais, Televisão, Rádio, etc... co-relacionado com 01,02,03,04,etc..., no meu form coloco um dbcombobox, onde ao invés de preencher a propriedade Items, resolvo trazer estas descrições na hora da execução. espero que tenham entendido.
Carlos Cabral
Curtidas 0
Respostas
Deivison Melo
14/08/2012
Se entendi o que está mencionando existe a possibilidade através do uso de Class Function.
Veja como utilizar abaixo:
http://www.weinrich.eti.br/artigos/segredos.htm
PS. No Delphi o modificador class function é a mesma coisa que o static do Java. Ou seja, não
preciso instanciar um objeto sempre que quiser efetuar o seu uso.
Veja como utilizar abaixo:
http://www.weinrich.eti.br/artigos/segredos.htm
PS. No Delphi o modificador class function é a mesma coisa que o static do Java. Ou seja, não
preciso instanciar um objeto sempre que quiser efetuar o seu uso.
GOSTEI 0
Carlos Cabral
14/08/2012
Veja isto:
Estas são as procedures que estão dentro do meu datamodule
No meu form tenho um TDBedit de name Origem, mas a propriedade Items, eu gostaria de poder trazer os Text que
estao lá no meu DM, de uma forma automatica.
EU nao entendi o exemplo e a referencia que voce me deu ? Me desculpe, como te disse ainda sou meio devagar no delphi
Mas estou postando pedaço do fonte, para tentar clarear mais minha mente. Obrigado
procedure TdmCtreceber.cdsCtrClienteORIGEMGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if cdsCtrClienteORIGEM.AsInteger = 0 then Text := Não Selecionado;
if cdsCtrClienteORIGEM.AsInteger = 1 then Text := Indicação;
if cdsCtrClienteORIGEM.AsInteger = 2 then Text := Revista;
if cdsCtrClienteORIGEM.AsInteger = 3 then Text := Jornais;
if cdsCtrClienteORIGEM.AsInteger = 4 then Text := Tele-Marketing;
end;
procedure TdmCtreceber.cdsCtrClienteORIGEMSetText(Sender: TField; const Text: String);
begin
if Text = Não Selecionado then cdsCtrClienteORIGEM.AsInteger := 0;
if Text = Indicação then cdsCtrClienteORIGEM.AsInteger := 1;
if Text = Revista then cdsCtrClienteORIGEM.AsInteger := 2;
if Text = Jornais then cdsCtrClienteORIGEM.AsInteger := 3;
if Text = Tele-Marketing then cdsCtrClienteORIGEM.AsInteger := 4;
end;
Estas são as procedures que estão dentro do meu datamodule
No meu form tenho um TDBedit de name Origem, mas a propriedade Items, eu gostaria de poder trazer os Text que
estao lá no meu DM, de uma forma automatica.
EU nao entendi o exemplo e a referencia que voce me deu ? Me desculpe, como te disse ainda sou meio devagar no delphi
Mas estou postando pedaço do fonte, para tentar clarear mais minha mente. Obrigado
procedure TdmCtreceber.cdsCtrClienteORIGEMGetText(Sender: TField; var Text: String; DisplayText: Boolean);
begin
if cdsCtrClienteORIGEM.AsInteger = 0 then Text := Não Selecionado;
if cdsCtrClienteORIGEM.AsInteger = 1 then Text := Indicação;
if cdsCtrClienteORIGEM.AsInteger = 2 then Text := Revista;
if cdsCtrClienteORIGEM.AsInteger = 3 then Text := Jornais;
if cdsCtrClienteORIGEM.AsInteger = 4 then Text := Tele-Marketing;
end;
procedure TdmCtreceber.cdsCtrClienteORIGEMSetText(Sender: TField; const Text: String);
begin
if Text = Não Selecionado then cdsCtrClienteORIGEM.AsInteger := 0;
if Text = Indicação then cdsCtrClienteORIGEM.AsInteger := 1;
if Text = Revista then cdsCtrClienteORIGEM.AsInteger := 2;
if Text = Jornais then cdsCtrClienteORIGEM.AsInteger := 3;
if Text = Tele-Marketing then cdsCtrClienteORIGEM.AsInteger := 4;
end;
GOSTEI 0
Deivison Melo
14/08/2012
Porquê não utiliza uma função?
Veja o exemplo abaixo, coloquei um edit e um button na tela e simplesmente:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function ObterValor(Texto: TEdit):String;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.ObterValor(Texto: TEdit): String;
begin
Result:=Texto.Text;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(O valor do Edit é: +ObterValor(Edit1));
end;
end.
Veja o exemplo abaixo, coloquei um edit e um button na tela e simplesmente:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function ObterValor(Texto: TEdit):String;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.ObterValor(Texto: TEdit): String;
begin
Result:=Texto.Text;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(O valor do Edit é: +ObterValor(Edit1));
end;
end.
GOSTEI 0
William
14/08/2012
O método set pode ser modificado, vc pode usar:
Esse método retorna o índice da opção selecionada no Combobox, ex.:
Esses índices (0,1,2) não ficam visíveis para o usuário, mas com o exemplo acima vc consegue capturar.
Combobox.Items.IndexOf(Texto);
Esse método retorna o índice da opção selecionada no Combobox, ex.:
0 - Não Selecionada 1 - Indicação 2 - Revista
Esses índices (0,1,2) não ficam visíveis para o usuário, mas com o exemplo acima vc consegue capturar.
GOSTEI 0