Form principal Buttons DB= a dúvida?
Olá caros colegas do forum estou com uma dificuldade com meu sistema,
tenho um pequeno sistema em paradox onde tenho um banco chamado Máquinas, então cadastrei todas as máquinas da minha rede como Maq1, maq2 e etc.., até aí tranquilo e tenho também no meu form principal 10 Buttons onde cada button representa uma máquina do colégio, e é aí q começa a complicar pra mim pois queria q ao executar o programa novamente cada Button teria q receber uma poisiçaõ da tabela, exemplo:
no evento oncreate ou evento onshow
o Button1:= a primeira posição da tabela
o Button2:= a 2a póisição da tabela e por aí em diante
Será q tem jeito d fazer isso , c alguém poder me dar uma luz ficarei muito grato.
Atenciosamente, Izaias
tenho um pequeno sistema em paradox onde tenho um banco chamado Máquinas, então cadastrei todas as máquinas da minha rede como Maq1, maq2 e etc.., até aí tranquilo e tenho também no meu form principal 10 Buttons onde cada button representa uma máquina do colégio, e é aí q começa a complicar pra mim pois queria q ao executar o programa novamente cada Button teria q receber uma poisiçaõ da tabela, exemplo:
no evento oncreate ou evento onshow
o Button1:= a primeira posição da tabela
o Button2:= a 2a póisição da tabela e por aí em diante
Será q tem jeito d fazer isso , c alguém poder me dar uma luz ficarei muito grato.
Atenciosamente, Izaias
Izaias
Curtidas 0
Respostas
Paullus
20/04/2004
Não entendi direito a sua dúvida.
Você queria que o botão chamado ´Button1´ recebe-se o valor do primeiro registro da sua tabela de banco de dados. É isso?
Se for tenta o seguinte.
Num sei se era isso mas talvez tenha ajudado.
obs.:
O método FindChildControl deve ser usado no container (o Parent) dos botões. Se os botões estiverem no próprio formulário use o método do formulário. TForm.FindChildControl
Se os botões estiverem em um TPanel use TPanel.FindChildControl. Sacou!?
Você queria que o botão chamado ´Button1´ recebe-se o valor do primeiro registro da sua tabela de banco de dados. É isso?
Se for tenta o seguinte.
if TForm.FindChildControl(´Button1´) <> nil then
TButton(TForm.FindChildControl(´Button1´)).Caption := {valor do banco};Num sei se era isso mas talvez tenha ajudado.
obs.:
O método FindChildControl deve ser usado no container (o Parent) dos botões. Se os botões estiverem no próprio formulário use o método do formulário. TForm.FindChildControl
Se os botões estiverem em um TPanel use TPanel.FindChildControl. Sacou!?
GOSTEI 0
Cabelo
20/04/2004
Caro colega, o problema é o seguinte : gostaria de saber o pq vc deveria mudar iss ?? O Caption de acordo com o banco, pq se o banco de dados crescer, não haverá botões suficiente na tela para que seja adequado ao número de máquinas. Mas se vc deseja criar os botões de acordo com o banco de dados, eu aconselho a vc a criar um vetor do tipo record, e implementar este vetor, que terá variáveis da classe TButton, de acordo com seu banco de dados..
sem mais
Cabelo
sem mais
Cabelo
GOSTEI 0
Izaias
20/04/2004
Colega obrigado por ter me respondido mas o q eu quero e q ao iniciar o sistema os 10 botoes q tenho na minha tela receba sequencialmente os 10 registros q tenho em minha tabela.
Botão1:= 1 registro
Botão2 := 2º registro
.
.
Botão10:= o 10º registro
entendeu? Obrigado a todos pela atenção
Botão1:= 1 registro
Botão2 := 2º registro
.
.
Botão10:= o 10º registro
entendeu? Obrigado a todos pela atenção
GOSTEI 0
Izaias
20/04/2004
Mas o meu Banco são para exatamente 10 registros, mas essa possibilidade q vc mencionou é legal só não saberia como faze-la, mas a principio o banco é só para 10 registros mesmo.
Valeu!!! mesmo
Valeu!!! mesmo
GOSTEI 0
Cabelo
20/04/2004
Tudo bem amigo, mas lembre-se que se o seu banco de dados crescer, isto é, se vc colocar um registro que seja a mais no banco, seu programa vai dar erro :
procedure P_Caption(l_form : TForm);
var v_i : integer;
begin
Query.SQL.add(´select C_MAQ from Maquinas order by C_MAQ´);
Query.Open;
Query.First;
for v_i := 0 to l_form.ComponentCount - 1 do
begin
if l_form.Components[v_i] is TButton then
begin
TButton(l_form.Components[v_i]).Caption := Query.fieldbyname(´C_MAQ´).asstring;
query.next;
end;
end;
end;
depois disso é só colocar no seu form, no evento formcreate, esta procedure, passando como parâmetro o Form.
espero ter ajudado
sem mais
Cabelo
procedure P_Caption(l_form : TForm);
var v_i : integer;
begin
Query.SQL.add(´select C_MAQ from Maquinas order by C_MAQ´);
Query.Open;
Query.First;
for v_i := 0 to l_form.ComponentCount - 1 do
begin
if l_form.Components[v_i] is TButton then
begin
TButton(l_form.Components[v_i]).Caption := Query.fieldbyname(´C_MAQ´).asstring;
query.next;
end;
end;
end;
depois disso é só colocar no seu form, no evento formcreate, esta procedure, passando como parâmetro o Form.
espero ter ajudado
sem mais
Cabelo
GOSTEI 0