mostrando numeros em edits de um arquivo txt

Delphi

19/03/2011

 bom dia pessoal, estou precisando de uma mão ai,tenho um formulario, aonde tenho vários 
botões numerados de 1 a 50 . eu marco os numeros que quero, e envio para um listbox
ex.(10)02 - 03 - 05 - 06 - 10 - 12 - 15 - 23 - 25 - 30 
ai uso um save dialogo e salvo em arquivo texto .porem digamos que tenho  50 linhas destas acima. e gostaria alem de mostra-las no listbox mostrasse também em edits. aonde tivesse um botão para frente e para traz como no dbnavigation. se alguém puder ajudar agradeço muito
geraldo leal
 
Geraldo Leal

Geraldo Leal

Curtidas 0

Respostas

Marco Salles

Marco Salles

19/03/2011

hummm cinqunenta linhas desta   (10)02 - 03 - 05 - 06 - 10 - 12 - 15 - 23 - 25 - 30 ...... ...... 10)02 - 03 - 05 - 06 - 10 - 12 - 15 - 23 - 25 - 30   Porque que o DEZ esra entre parentesis ???   e o que que vc quer mostrar no Edit ou Edits ??? e quantos edits ???    
GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

 Boa tarde marcos, obrigado por atender meu pedido
o (10) é para marcar a quantidade de numeros da linha. se tiver 15 numeros então será(15) entre parenteses
os edits serão digamos 25 de 1 a 25  e os numeros daslinhas vão variar de de 1 até 15
podendo ser centenas de linhas.
ex.
(15) 03 - 04 - 05 - 06 - 07 - 09 - 10 - 13 - 15 - 16 - 20 - 21 - 23 - 24 - 25
(15) 01 - 02 - 05 - 06 - 08 - 09 - 11 - 12 - 14 - 15 - 16 - 17 - 18 - 21 - 25
(15) 01 - 02 - 04 - 05 - 06 - 07 - 08 - 11 - 15 - 16 - 18 - 19 - 23 - 24 - 25
(15) 01 - 02 - 03 - 07 - 08 - 11 - 12 - 14 - 16 - 18 - 19 - 21 - 22 - 24 - 25
(15) 04 - 05 - 06 - 08 - 09 - 10 - 13 - 16 - 17 - 18 - 19 - 21 - 22 - 23 - 25
(15) 01 - 02 - 04 - 06 - 07 - 10 - 12 - 13 - 15 - 16 - 19 - 21 - 22 - 23 - 24
(15) 01 - 02 - 03 - 04 - 05 - 07 - 08 - 11 - 14 - 15 - 16 - 19 - 21 - 23 - 25
(15) 02 - 03 - 04 - 05 - 07 - 08 - 09 - 10 - 11 - 14 - 16 - 17 - 18 - 23 - 25
(15) 01 - 02 - 04 - 06 - 08 - 09 - 10 - 12 - 14 - 15 - 18 - 19 - 23 - 24 - 25
(15) 03 - 05 - 06 - 07 - 08 - 09 - 12 - 14 - 17 - 18 - 19 - 21 - 23 - 24 - 25
(15) 01 - 05 - 07 - 08 - 10 - 12 - 13 - 14 - 16 - 18 - 19 - 20 - 21 - 23 - 24
 
aqui foi mostrado no listbox. o que gostaria é de alem de mostrar no listbox mostrasse támbém nos edits correspondentes.e que fosse para a frente ou para traz nos registros.
qualquer outra duvida posta ai por favor.
sucesso
geraldo
GOSTEI 0
Marco Salles

Marco Salles

19/03/2011

Ha meu ver sua dúvida ainda não esta clara . o que que vc quer mostrar no edit ???
o que siginifica este ir para frente ou para tras nos registros

so esclareceu foi o numero entre parentesis .. Ele significa a quantidade de COLUNAS de uma determinada
Linha ( considerando Colunas somente o que for Numerico , ou como vc mesmo definiu > "quantidade de numeros da linha")

cada linha do listBox mostra num edit ???
cada numero de uma determinada linha do ListBox mostra num edit ???
O que que é este ir para frente ou para tras nos registros ??

tente dar exemplo visual <Primt Scren> .. preencha na mão mesmo o que vc quer em relação aos edits

Prinr Scree

GOSTEI 0
Perivaldo Martins

Perivaldo Martins

19/03/2011

Ha meu ver sua dúvida ainda não esta clara . o que que vc quer mostrar no edit ???
o que siginifica este ir para frente ou para tras nos registros

so esclareceu foi o numero entre parentesis .. Ele significa a quantidade de COLUNAS de uma determinada
Linha ( considerando Colunas somente o que for Numerico , ou como vc mesmo definiu > "quantidade de numeros da linha")

cada linha do listBox mostra num edit ???
cada numero de uma determinada linha do ListBox mostra num edit ???
O que que é este ir para frente ou para tras nos registros ??

tente dar exemplo visual .. preencha na mão mesmo o que vc quer em relação aos edits

Prinr Scree

  Olá Marco, quanto tempo!   Marco pelo q eu entendi ele está querendo navegar no ListBox como se estivesse em um dataset, mas pode ser q eu esteja enganado.   Vamos esperar ele postar uma tela com o que ele deseja.
GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

[code] segue a imagem.dd
quando clico em um numero de 1 a 15 ele marca os botões, ai clico em adicionar , ele manda para listbox
clico em salvar , ele salva em arquivo texto. o que gostaria que fizesse agora , é que aqui no dbnavigator
eu navegasse nos edits estes numeros que estão no listbox. e que eu pegue um arquivo texto ja
pronto , clico em abrir ele vem para o listbox e eu navego nos edits.linha a linha. cada linha seria um
registro de um banco de dados. o 01 do listbox vai para o 01 do edit e assim por diante, quando clico em next
ele vai para o segundo registro, ou a segunda linha.
obrigado
qualquer outra duvida estou as ordens
sucesso
geraldo leal
GOSTEI 0
Marco Salles

Marco Salles

19/03/2011

"quando clico em um numero de 1 a 15 ele marca os botões,"
Marca como ?? Arbitrariamente ?? segundo uma logica ??
marcar seria alterar o Flat dele ???
O que esta em vermelho e azul são os buttons???

o que que vc quer dizer com marcar ???

Mas onde estão os edits nesta estrutura. Não da para visualizar ???



GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

[code] Bom dia Marcos, marcar quer dizer o que está feito na imagem. 15 numeros marcados nos botões
          isto quer dizer que cliquei no numero 15 ao lado direito dos botões, se eu clicasse no numero 10  ele
marcaria 10 botões, randomicamente.
e os edits estão ao lado do listbox do lado direito. quando marco os botões eles ficam como na imagem ou seja
fundos como estão.com as cores, dizendo os numeros pares e os numeros impares . quando estão marcados eu clico em adicionar e os mesmos vão para o listbox abaixo , como está na imagem. e quando clico estão no listbox eu clico eu salvar , e salvo um arquivo atraves de um save dialogo. o que quero, é quando eles estiverem no listbox
eu consigo mostra-los nos edits que estão na imagem do lado direito do listbox. e acima do dbnavigator. se eu pudesse usar um banco de dados, seria so salvar em uma tabela e mostrar atraves do dbnavaigator, mais não é o que preciso. Preciso de salvar em arquivo texto e mostrar nos edits passando os registros. que salvei no arquivo texto.e que estão no listbox.
qualquer outra coisa estou as ordens
sucesso
geraldo leal
[code]
GOSTEI 0
Marco Salles

Marco Salles

19/03/2011

ta mais se em cada linha do ListBox vai ter no máximo 15 numeros , então vc precisa de no maximo 15 edits para mostrar cada linha do ListBox

Porque que vc desenhou 25 edits???




GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

 Bom dia Marcos, o porque dos 25 edits, é que tenho numeros de 1 a 25 e escolho
de 1 a 15 entre os 25 . posso escolher o 1 - 2 - 5 - 6 -  7 - 12 - 17 - 18 - 19 - 20 - 21 - 22 - 23 -24 - 25. ok.
sucesso
geraldo leal
GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

 Bom dia Marcos, o porque dos 25 edits, é que tenho numeros de 1 a 25 e escolho
de 1 a 15 entre os 25 . posso escolher o 1 - 2 - 5 - 6 -  7 - 12 - 17 - 18 - 19 - 20 - 21 - 22 - 23 -24 - 25. ok.
sucesso
geraldo leal

 complementando marcos, cada numero deve ir para o edit correspondente ao mesmo. ou seja o numero 20 para o edit 20 o numero 25 para o edit 25 o numero 1 para o edit 1 e assim sucessivamente.
obrigado

GOSTEI 0
Marco Salles

Marco Salles

19/03/2011

então

duas consdiçoes iniciais

1) que os todos os edits que fizerem parte do processo sejem definidos como

edit1, edi2,.......ate edit25

2) Que o Arquvo Txt tenha a estrutura

(15) 03 - 04 - 05 - 06 - 07 - 09 - 10 - 13 - 15 - 16 - 20 - 21 - 23 - 24 - 25

ou Por exeplo

(01) 03

ou por exemplo

(02) 03- 04

e assim sucessivamente


Visto isto podemos implementar


procedure TForm1.AtribuirEdit(const Str:String);
var
 C:Tcomponent;
 Lista:TStrings;
 Linha:String;
 quant:Integer;
 i:Integer;
begin
 for C in Self DO
   if C is TEdit then
     TEdit(C).Clear;
 Lista:=TStringlist.Create;
 try
 Linha:=Str;
 quant:=strtoint(copy(linha,2,2));
 delete(Linha,1,5);
 Lista.StrictDelimiter:=True;
 Lista.Delimiter:='-';
 Lista.DelimitedText:=Linha;
 for I := 0 to pred(Lista.Count) do
   TEdit(form1.FindComponent('edit'+inttostr(strtoint(trim(Lista.Strings[i]))))).Text:=
      (Lista.Strings[i]);
 finally
   lista.Free;
 end;

end;


No evento OnClick do List Box chame a procedure

procedure TForm1.ListBox1Click(Sender: TObject);
begin
AtribuirEdit(TListBox(sender).Items.Strings[TListBox(sender).ItemIndex]);
end;


ps) Teste e rode

Os métodos de navegção ainda não foram implemtados

Isto é so para mostrar a idéia

se tiver mais edits no form tem que criar umas regras para que eles não sejem limpos pelo método



GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

[code/]
Bom dia Marcos
peguei o codigo que mandou e   coloquei no
public
 procedure AtribuirEdit(const Str:String);



procedure Tform1.AtribuirEdit(const Str: String);
 var
 C:Tcomponent;
 Lista:TStrings;
 Linha:String;
 quant:Integer;
 i:Integer;
begin
 //for C in Self DO  ////// esta linha, quando desmarco o codigo não roda
   if C is TEdit then
     TEdit(C).Clear;
 Lista:=TStringlist.Create;
 try
 Linha:=Str;
 quant:=strtoint(copy(linha,2,2));
 delete(Linha,1,5);
 //Lista.StrictDelimiter:=True;   ////// esta linha, quando desmarco o codigo não roda
 Lista.Delimiter:='-';
 Lista.DelimitedText:=Linha;
 for I := 0 to pred(Lista.Count) do
   TEdit(Frm_gerarcartoeslotofacil.FindComponent('edit'+inttostr(strtoint(trim(Lista.Strings[i]))))).Text:=
      (Lista.Strings[i]);
 finally
   lista.Free;
 end;
end;

este codigo abaixo, com as duas linhas marcadas acima, ele não roda(não passa aqui) quando clico na linha no listbox ele dá trava.
procedure Tform1l.ListApostasClick(Sender: TObject);
begin
AtribuirEdit(TListBox(sender).Items.Strings[TListBox(sender).ItemIndex]);
end;
e se achar necessario, te mando para o email, um exemplo.
sucesso
geraldo leal
[/code]

GOSTEI 0
Marco Salles

Marco Salles

19/03/2011

//for C in Self DO  ////// esta linha, quando desmarco o codigo não roda
   if C is TEdit then


sua versão do delphi é anterior aodelphi 2007

então substutua o codigo


begin
 for C in Self DO  ////// esta linha, quando desmarco o codigo não roda
   if C is TEdit then
     TEdit(C).Clear;


por

For i:=0 to pred(self.controlCount) do
  if self.controls[i] is TEdit then
     TEdit(self.controls[i]).clear;


o resto continua...




GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

[code/] Marcos boa tarde
funcionou agora com uma ressalva. se deixo esta linha ativa
Lista.StrictDelimiter:=True;
ele não compila, se comenta esta linha ele compina e funciona.
o meu delphi é 7
tirando esta linha esta funcionando, faltando agora a segunda parte, que é a de passar os registros no edit
se clicar de linha em linha ele vai mostrando as linhas, porem posso ter 500 linhas, e preciso que passe em um
botão tipo o db navigator como comentado anteriormente.
obrigado
sucesso
geraldo leal
[/code]
GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

[code/] Marcos boa tarde
funcionou agora com uma ressalva. se deixo esta linha ativa
Lista.StrictDelimiter:=True;
ele não compila, se comenta esta linha ele compina e funciona.
o meu delphi é 7
tirando esta linha esta funcionando, faltando agora a segunda parte, que é a de passar os registros no edit
se clicar de linha em linha ele vai mostrando as linhas, porem posso ter 500 linhas, e preciso que passe em um
botão tipo o db navigator como comentado anteriormente.
obrigado
sucesso
geraldo leal
[/code]
marcos mais uma coisa, tenho sim mais edits no form.
obrigado
GOSTEI 0
Marco Salles

Marco Salles

19/03/2011

AMigo esqueci que seu delphi é 7

Tem que mudar algumas coisas

infelizmente estou indo agora ( agora mesmo ) para SAMPA

volto so na quarta

e não da tempo de mais Nada

Fui , infelismente  vou ter que sair

até mais

Desculpa

para testar por enquanto vc pode fazer o seguinte

Desconsiderar esta Linha ( comentar ela ), mas em contrapartida o seu Arquivo , por enquanto
não pode ter espaço ... Tirar todos os espaços com Exceção do (15) 03 ..ETC..

(15) 03-04-05-06-07-09-10-13-15-16-20-21-23-24-25

FAZER ISTO COM AS DEMIAS LINHAS
 
GOSTEI 0
Geraldo Leal

Geraldo Leal

19/03/2011

[code/] Marcos boa tarde
funcionou agora com uma ressalva. se deixo esta linha ativa
Lista.StrictDelimiter:=True;
ele não compila, se comenta esta linha ele compina e funciona.
o meu delphi é 7
tirando esta linha esta funcionando, faltando agora a segunda parte, que é a de passar os registros no edit
se clicar de linha em linha ele vai mostrando as linhas, porem posso ter 500 linhas, e preciso que passe em um
botão tipo o db navigator como comentado anteriormente.
obrigado
sucesso
geraldo leal
[/code]
marcos mais uma coisa, tenho sim mais edits no form.
obrigado

Marcos uma outra coisa, se al inves de limpar os edits, colocasse cores , uma para os numeros pares e outra para
os numeros impares como estão nos botões.se tiver como, para mim é melhor ,e agradeço muito
sucesso
geraldo leal
 
GOSTEI 0
POSTAR