Fórum QuickReport - Está sumindo um registro... #345684
08/09/2007
0
Pessoal, tô com um problema de cair os cabelos. Já três dias tentando fazer um relatório no QReport e não tô conseguindo. Não tenho tempo de aprender o Rave (até que tentei, mas não deu e não vou quebrar a cabeça para aprender, por gentileza, pelo menos por enquanto me mostrem onde estou errando.
Observação: Não uso Banco de Dados!!!
Tenho dois Tform, um chama-se Form1 e o outro Form2.
Componentes do Form1:
Um botão (Visualizar) e uma ListBox com números de loterias.
Componentes do Form2:
QR1: TQuickRep;
DetailBand1: TQRBand;
PageHeaderBand1: TQRBand;
QRSysData2: TQRSysData;
E o restante trata-se de TQRLabel (onde coloco textos), e o TQRShape (onde deixo Enabled True ou False, para marcar as dezenas dos jogos).
Quero deixar claro que o restante do código está tudo bonito, sem erros, o problema é somente com o QuickReport, alguma coisa que estou fazendo de errado ou um possível BUG nele que creio que não seja.
===========================================================
Form1:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
T1,T2 : integer;
begin
Form2 := TForm2.Create(Nil);
Form2.Lista_Impares := TStringList.Create;
Form2.Lista_Pares := TStringList.Create;
Form2.Lista_Impares.Clear;
Form2.Lista_Pares.Clear;
Form2.Lista_Impares.Sort;
Form2.Lista_Pares.Sort;
try
for i := 0 to ListBox1.Items.Count -1 do
begin
if TestaParaPar(i) = True then
Form2.Lista_Pares.Add(ListBox1.Items.Strings[i])
else
Form2.Lista_Impares.Add(ListBox1.Items.Strings[i]);
end;
T1 := Form2.Lista_Pares.Count;
T2 := Form2.Lista_Impares.Count;
Form2.Total := T1 + T2;
Form2.QR1.PreviewModal;
finally
Form2.Lista_Pares.Free;
Form2.Lista_Impares.Free;
Form2.Release;
Form2 := Nil;
end;
end;
==================================================================
Form2:
Type
...
Private
ExisteJogo1,
ExisteJogo2 : Boolean;
CurrentIndex : integer;
Dezenas : Boolean;
MD : integer;
NVolante : String;
{ Private declarations }
Public
Total : integer;
Lista_Impares,
Lista_Pares : TStringList;
{ Public declarations }
end;
(* Não sei nem o que colocar pois já fiz de tantas maneira e não deu certo, o código não gera erro nem na compilação nem na execução, o que acontece é que, se eu tenho um registro na ListBox1 não aparece nada no Preview, se tem dois registros também não acontece nada, se tem três ou acima aparece beleza, só que fica um jogo de fora. *)
(* Cada cartela da LotoFácil tem o lado direito que é um jogo e do outro lado que é outro jogo, ou seja, dois jogos num só volante, e é porisso que uso uma Lista (pares) e outra lista (Impares). *)
// Vou tentar colocar do jeito que fiz:
procedure TForm2.QR1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurrentIndex := 0;
end;
procedure TForm2.QR1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := (CurrentIndex < Total);
if MoreData then
begin
try
Dezenas := False;
ExisteJogo1 := False;
ExisteJogo2 := False;
NVolante := IntToStr(CurrentIndex);
case Length(Str_NVolante) of // Colocando os zeros a esquerda
1: NVolante := ´0000´ + IntToStr(CurrentIndex);
2: NVolante := ´000´ + IntToStr(CurrentIndex);
3: NVolante := ´00´ + IntToStr(CurrentIndex);
4: NVolante := ´0´ + IntToStr(CurrentIndex);
end;
Dezenas := (Pos(´01´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´02´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´03´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´04´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´05´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´06´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´07´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´08´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´09´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´10´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´11´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´12´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´13´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´14´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´15´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´16´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´17´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´18´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´19´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´20´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´21´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´22´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´23´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´24´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´25´, Lista_Pares.Strings[CurrentIndex]) > 0);
if Dezenas = True then
begin
ExisteJogo1 := True;
Dezenas := False; // Para iniciar False para o jogo 2
(* Jogo 1 do Volante - Cada volante tem dois jogos *)
D01.Enabled := Pos(´01´, Lista_Pares.Strings[CurrentIndex]) > 0;
D02.Enabled := Pos(´02´, Lista_Pares.Strings[CurrentIndex]) > 0;
D03.Enabled := Pos(´03´, Lista_Pares.Strings[CurrentIndex]) > 0;
D04.Enabled := Pos(´04´, Lista_Pares.Strings[CurrentIndex]) > 0;
D05.Enabled := Pos(´05´, Lista_Pares.Strings[CurrentIndex]) > 0;
D06.Enabled := Pos(´06´, Lista_Pares.Strings[CurrentIndex]) > 0;
D07.Enabled := Pos(´07´, Lista_Pares.Strings[CurrentIndex]) > 0;
D08.Enabled := Pos(´08´, Lista_Pares.Strings[CurrentIndex]) > 0;
D09.Enabled := Pos(´09´, Lista_Pares.Strings[CurrentIndex]) > 0;
D10.Enabled := Pos(´10´, Lista_Pares.Strings[CurrentIndex]) > 0;
D11.Enabled := Pos(´11´, Lista_Pares.Strings[CurrentIndex]) > 0;
D12.Enabled := Pos(´12´, Lista_Pares.Strings[CurrentIndex]) > 0;
D13.Enabled := Pos(´13´, Lista_Pares.Strings[CurrentIndex]) > 0;
D14.Enabled := Pos(´14´, Lista_Pares.Strings[CurrentIndex]) > 0;
D15.Enabled := Pos(´15´, Lista_Pares.Strings[CurrentIndex]) > 0;
D16.Enabled := Pos(´16´, Lista_Pares.Strings[CurrentIndex]) > 0;
D17.Enabled := Pos(´17´, Lista_Pares.Strings[CurrentIndex]) > 0;
D18.Enabled := Pos(´18´, Lista_Pares.Strings[CurrentIndex]) > 0;
D19.Enabled := Pos(´19´, Lista_Pares.Strings[CurrentIndex]) > 0;
D20.Enabled := Pos(´20´, Lista_Pares.Strings[CurrentIndex]) > 0;
D21.Enabled := Pos(´21´, Lista_Pares.Strings[CurrentIndex]) > 0;
D22.Enabled := Pos(´22´, Lista_Pares.Strings[CurrentIndex]) > 0;
D23.Enabled := Pos(´23´, Lista_Pares.Strings[CurrentIndex]) > 0;
D24.Enabled := Pos(´24´, Lista_Pares.Strings[CurrentIndex]) > 0;
D25.Enabled := Pos(´25´, Lista_Pares.Strings[CurrentIndex]) > 0;
Jogo1.Caption := Copy(Lista_Pares.Strings[CurrentIndex],1,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],5,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],9,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],13,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],17,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],21,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],25,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],29,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],33,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],37,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],41,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],45,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],49,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],53,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],57,2);
end;
Dezenas := (Pos(´01´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´02´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´03´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´04´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´05´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´06´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´07´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´08´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´09´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´10´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´11´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´12´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´13´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´14´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´15´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´16´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´17´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´18´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´19´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´20´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´21´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´22´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´23´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´24´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´25´, Lista_Impares.Strings[CurrentIndex]) > 0);
if Dezenas = True then
begin
ExisteJogo2 := True;
Dezenas := False;
(* Abaixo, usei porque, se não existe o´ jogo 1´, significa (provavelmente certo) queseja o último volante, e com isso, o volante deve ser impresso do lado esquerdo, e não, deixar o lado esquerdo sem jogo e o lado direito com jogo, creio que a casa lotérica (o equipamento) nãofaça questão, mas por estética, é bem melhor deixar assim como faço *)
if ExisteJogo1 = False then
begin
(* Jogo 1 do Volante - Cada volante tem dois jogos *)
D01.Enabled := Pos(´01´, Lista_Impares.Strings[CurrentIndex]) > 0;
D02.Enabled := Pos(´02´, Lista_Impares.Strings[CurrentIndex]) > 0;
D03.Enabled := Pos(´03´, Lista_Impares.Strings[CurrentIndex]) > 0;
D04.Enabled := Pos(´04´, Lista_Impares.Strings[CurrentIndex]) > 0;
D05.Enabled := Pos(´05´, Lista_Impares.Strings[CurrentIndex]) > 0;
D06.Enabled := Pos(´06´, Lista_Impares.Strings[CurrentIndex]) > 0;
D07.Enabled := Pos(´07´, Lista_Impares.Strings[CurrentIndex]) > 0;
D08.Enabled := Pos(´08´, Lista_Impares.Strings[CurrentIndex]) > 0;
D09.Enabled := Pos(´09´, Lista_Impares.Strings[CurrentIndex]) > 0;
D10.Enabled := Pos(´10´, Lista_Impares.Strings[CurrentIndex]) > 0;
D11.Enabled := Pos(´11´, Lista_Impares.Strings[CurrentIndex]) > 0;
D12.Enabled := Pos(´12´, Lista_Impares.Strings[CurrentIndex]) > 0;
D13.Enabled := Pos(´13´, Lista_Impares.Strings[CurrentIndex]) > 0;
D14.Enabled := Pos(´14´, Lista_Impares.Strings[CurrentIndex]) > 0;
D15.Enabled := Pos(´15´, Lista_Impares.Strings[CurrentIndex]) > 0;
D16.Enabled := Pos(´16´, Lista_Impares.Strings[CurrentIndex]) > 0;
D17.Enabled := Pos(´17´, Lista_Impares.Strings[CurrentIndex]) > 0;
D18.Enabled := Pos(´18´, Lista_Impares.Strings[CurrentIndex]) > 0;
D19.Enabled := Pos(´19´, Lista_Impares.Strings[CurrentIndex]) > 0;
D20.Enabled := Pos(´20´, Lista_Impares.Strings[CurrentIndex]) > 0;
D21.Enabled := Pos(´21´, Lista_Impares.Strings[CurrentIndex]) > 0;
D22.Enabled := Pos(´22´, Lista_Impares.Strings[CurrentIndex]) > 0;
D23.Enabled := Pos(´23´, Lista_Impares.Strings[CurrentIndex]) > 0;
D24.Enabled := Pos(´24´, Lista_Impares.Strings[CurrentIndex]) > 0;
D25.Enabled := Pos(´25´, Lista_Impares.Strings[CurrentIndex]) > 0;
Jogo1.Caption := Copy(Lista_Impares.Strings[CurrentIndex],1,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],5,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],9,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],13,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],17,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],21,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],25,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],29,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],33,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],37,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],41,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],45,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],49,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],53,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],57,2);
end
else
begin
(* Jogo 2 do Volante - Cada volante tem dois jogos *)
D26.Enabled := Pos(´01´, Lista_Impares.Strings[CurrentIndex]) > 0;
D27.Enabled := Pos(´02´, Lista_Impares.Strings[CurrentIndex]) > 0;
D28.Enabled := Pos(´03´, Lista_Impares.Strings[CurrentIndex]) > 0;
D29.Enabled := Pos(´04´, Lista_Impares.Strings[CurrentIndex]) > 0;
D30.Enabled := Pos(´05´, Lista_Impares.Strings[CurrentIndex]) > 0;
D31.Enabled := Pos(´06´, Lista_Impares.Strings[CurrentIndex]) > 0;
D32.Enabled := Pos(´07´, Lista_Impares.Strings[CurrentIndex]) > 0;
D33.Enabled := Pos(´08´, Lista_Impares.Strings[CurrentIndex]) > 0;
D34.Enabled := Pos(´09´, Lista_Impares.Strings[CurrentIndex]) > 0;
D35.Enabled := Pos(´10´, Lista_Impares.Strings[CurrentIndex]) > 0;
D36.Enabled := Pos(´11´, Lista_Impares.Strings[CurrentIndex]) > 0;
D37.Enabled := Pos(´12´, Lista_Impares.Strings[CurrentIndex]) > 0;
D38.Enabled := Pos(´13´, Lista_Impares.Strings[CurrentIndex]) > 0;
D39.Enabled := Pos(´14´, Lista_Impares.Strings[CurrentIndex]) > 0;
D40.Enabled := Pos(´15´, Lista_Impares.Strings[CurrentIndex]) > 0;
D41.Enabled := Pos(´16´, Lista_Impares.Strings[CurrentIndex]) > 0;
D42.Enabled := Pos(´17´, Lista_Impares.Strings[CurrentIndex]) > 0;
D43.Enabled := Pos(´18´, Lista_Impares.Strings[CurrentIndex]) > 0;
D44.Enabled := Pos(´19´, Lista_Impares.Strings[CurrentIndex]) > 0;
D45.Enabled := Pos(´20´, Lista_Impares.Strings[CurrentIndex]) > 0;
D46.Enabled := Pos(´21´, Lista_Impares.Strings[CurrentIndex]) > 0;
D47.Enabled := Pos(´22´, Lista_Impares.Strings[CurrentIndex]) > 0;
D48.Enabled := Pos(´23´, Lista_Impares.Strings[CurrentIndex]) > 0;
D49.Enabled := Pos(´24´, Lista_Impares.Strings[CurrentIndex]) > 0;
D50.Enabled := Pos(´25´, Lista_Impares.Strings[CurrentIndex]) > 0;
Jogo2.Caption := Copy(Lista_Impares.Strings[CurrentIndex],1,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],5,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],9,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],13,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],17,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],21,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],25,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],29,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],33,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],37,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],41,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],45,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],49,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],53,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],57,2);
end;
end;
if (ExisteJogo1 = True) or (ExisteJogo2 = True) then
NVolante.Caption := ´Volante: ´ + NVolante;
finally
Application.ProcessMessages;
Inc(CurrentIndex);
end;
end;
end;
(* Bom, desculpem se tiver faltando algum ´end´ ou esteja fora do alinhamento, na compilação tá tudo beleza e também na execução, se faltou alguma coisa foi aqui agora tentando colocar como tá no código, etc... o Problema deve ser a lógica, examinem aí para me ajudar onde estou errando! Agradeço muito, sou iniciante e uso o Delphi somente como Hoby, esse é meu primeiro programa comercial que tô tentando fazer para ganhar um trocado, pois estou desempregado :) *)
(* Desculpem meus HERROS de português, além de estar escrevendo rápido, meu português é ruim mesmo. *)
(* Aguardo uma possível compaixão pelo meu problema, e uma solução inimaginável, :) *)
Onjahyr - onjahyr@gmail.com
Observação: Não uso Banco de Dados!!!
Tenho dois Tform, um chama-se Form1 e o outro Form2.
Componentes do Form1:
Um botão (Visualizar) e uma ListBox com números de loterias.
Componentes do Form2:
QR1: TQuickRep;
DetailBand1: TQRBand;
PageHeaderBand1: TQRBand;
QRSysData2: TQRSysData;
E o restante trata-se de TQRLabel (onde coloco textos), e o TQRShape (onde deixo Enabled True ou False, para marcar as dezenas dos jogos).
Quero deixar claro que o restante do código está tudo bonito, sem erros, o problema é somente com o QuickReport, alguma coisa que estou fazendo de errado ou um possível BUG nele que creio que não seja.
===========================================================
Form1:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
T1,T2 : integer;
begin
Form2 := TForm2.Create(Nil);
Form2.Lista_Impares := TStringList.Create;
Form2.Lista_Pares := TStringList.Create;
Form2.Lista_Impares.Clear;
Form2.Lista_Pares.Clear;
Form2.Lista_Impares.Sort;
Form2.Lista_Pares.Sort;
try
for i := 0 to ListBox1.Items.Count -1 do
begin
if TestaParaPar(i) = True then
Form2.Lista_Pares.Add(ListBox1.Items.Strings[i])
else
Form2.Lista_Impares.Add(ListBox1.Items.Strings[i]);
end;
T1 := Form2.Lista_Pares.Count;
T2 := Form2.Lista_Impares.Count;
Form2.Total := T1 + T2;
Form2.QR1.PreviewModal;
finally
Form2.Lista_Pares.Free;
Form2.Lista_Impares.Free;
Form2.Release;
Form2 := Nil;
end;
end;
==================================================================
Form2:
Type
...
Private
ExisteJogo1,
ExisteJogo2 : Boolean;
CurrentIndex : integer;
Dezenas : Boolean;
MD : integer;
NVolante : String;
{ Private declarations }
Public
Total : integer;
Lista_Impares,
Lista_Pares : TStringList;
{ Public declarations }
end;
(* Não sei nem o que colocar pois já fiz de tantas maneira e não deu certo, o código não gera erro nem na compilação nem na execução, o que acontece é que, se eu tenho um registro na ListBox1 não aparece nada no Preview, se tem dois registros também não acontece nada, se tem três ou acima aparece beleza, só que fica um jogo de fora. *)
(* Cada cartela da LotoFácil tem o lado direito que é um jogo e do outro lado que é outro jogo, ou seja, dois jogos num só volante, e é porisso que uso uma Lista (pares) e outra lista (Impares). *)
// Vou tentar colocar do jeito que fiz:
procedure TForm2.QR1BeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
CurrentIndex := 0;
end;
procedure TForm2.QR1NeedData(Sender: TObject;
var MoreData: Boolean);
begin
MoreData := (CurrentIndex < Total);
if MoreData then
begin
try
Dezenas := False;
ExisteJogo1 := False;
ExisteJogo2 := False;
NVolante := IntToStr(CurrentIndex);
case Length(Str_NVolante) of // Colocando os zeros a esquerda
1: NVolante := ´0000´ + IntToStr(CurrentIndex);
2: NVolante := ´000´ + IntToStr(CurrentIndex);
3: NVolante := ´00´ + IntToStr(CurrentIndex);
4: NVolante := ´0´ + IntToStr(CurrentIndex);
end;
Dezenas := (Pos(´01´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´02´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´03´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´04´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´05´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´06´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´07´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´08´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´09´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´10´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´11´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´12´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´13´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´14´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´15´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´16´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´17´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´18´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´19´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´20´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´21´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´22´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´23´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´24´, Lista_Pares.Strings[CurrentIndex]) > 0) or
(Pos(´25´, Lista_Pares.Strings[CurrentIndex]) > 0);
if Dezenas = True then
begin
ExisteJogo1 := True;
Dezenas := False; // Para iniciar False para o jogo 2
(* Jogo 1 do Volante - Cada volante tem dois jogos *)
D01.Enabled := Pos(´01´, Lista_Pares.Strings[CurrentIndex]) > 0;
D02.Enabled := Pos(´02´, Lista_Pares.Strings[CurrentIndex]) > 0;
D03.Enabled := Pos(´03´, Lista_Pares.Strings[CurrentIndex]) > 0;
D04.Enabled := Pos(´04´, Lista_Pares.Strings[CurrentIndex]) > 0;
D05.Enabled := Pos(´05´, Lista_Pares.Strings[CurrentIndex]) > 0;
D06.Enabled := Pos(´06´, Lista_Pares.Strings[CurrentIndex]) > 0;
D07.Enabled := Pos(´07´, Lista_Pares.Strings[CurrentIndex]) > 0;
D08.Enabled := Pos(´08´, Lista_Pares.Strings[CurrentIndex]) > 0;
D09.Enabled := Pos(´09´, Lista_Pares.Strings[CurrentIndex]) > 0;
D10.Enabled := Pos(´10´, Lista_Pares.Strings[CurrentIndex]) > 0;
D11.Enabled := Pos(´11´, Lista_Pares.Strings[CurrentIndex]) > 0;
D12.Enabled := Pos(´12´, Lista_Pares.Strings[CurrentIndex]) > 0;
D13.Enabled := Pos(´13´, Lista_Pares.Strings[CurrentIndex]) > 0;
D14.Enabled := Pos(´14´, Lista_Pares.Strings[CurrentIndex]) > 0;
D15.Enabled := Pos(´15´, Lista_Pares.Strings[CurrentIndex]) > 0;
D16.Enabled := Pos(´16´, Lista_Pares.Strings[CurrentIndex]) > 0;
D17.Enabled := Pos(´17´, Lista_Pares.Strings[CurrentIndex]) > 0;
D18.Enabled := Pos(´18´, Lista_Pares.Strings[CurrentIndex]) > 0;
D19.Enabled := Pos(´19´, Lista_Pares.Strings[CurrentIndex]) > 0;
D20.Enabled := Pos(´20´, Lista_Pares.Strings[CurrentIndex]) > 0;
D21.Enabled := Pos(´21´, Lista_Pares.Strings[CurrentIndex]) > 0;
D22.Enabled := Pos(´22´, Lista_Pares.Strings[CurrentIndex]) > 0;
D23.Enabled := Pos(´23´, Lista_Pares.Strings[CurrentIndex]) > 0;
D24.Enabled := Pos(´24´, Lista_Pares.Strings[CurrentIndex]) > 0;
D25.Enabled := Pos(´25´, Lista_Pares.Strings[CurrentIndex]) > 0;
Jogo1.Caption := Copy(Lista_Pares.Strings[CurrentIndex],1,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],5,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],9,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],13,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],17,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],21,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],25,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],29,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],33,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],37,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],41,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],45,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],49,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],53,2) + ´-´ +
Copy(Lista_Pares.Strings[CurrentIndex],57,2);
end;
Dezenas := (Pos(´01´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´02´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´03´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´04´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´05´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´06´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´07´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´08´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´09´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´10´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´11´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´12´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´13´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´14´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´15´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´16´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´17´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´18´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´19´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´20´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´21´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´22´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´23´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´24´, Lista_Impares.Strings[CurrentIndex]) > 0) or
(Pos(´25´, Lista_Impares.Strings[CurrentIndex]) > 0);
if Dezenas = True then
begin
ExisteJogo2 := True;
Dezenas := False;
(* Abaixo, usei porque, se não existe o´ jogo 1´, significa (provavelmente certo) queseja o último volante, e com isso, o volante deve ser impresso do lado esquerdo, e não, deixar o lado esquerdo sem jogo e o lado direito com jogo, creio que a casa lotérica (o equipamento) nãofaça questão, mas por estética, é bem melhor deixar assim como faço *)
if ExisteJogo1 = False then
begin
(* Jogo 1 do Volante - Cada volante tem dois jogos *)
D01.Enabled := Pos(´01´, Lista_Impares.Strings[CurrentIndex]) > 0;
D02.Enabled := Pos(´02´, Lista_Impares.Strings[CurrentIndex]) > 0;
D03.Enabled := Pos(´03´, Lista_Impares.Strings[CurrentIndex]) > 0;
D04.Enabled := Pos(´04´, Lista_Impares.Strings[CurrentIndex]) > 0;
D05.Enabled := Pos(´05´, Lista_Impares.Strings[CurrentIndex]) > 0;
D06.Enabled := Pos(´06´, Lista_Impares.Strings[CurrentIndex]) > 0;
D07.Enabled := Pos(´07´, Lista_Impares.Strings[CurrentIndex]) > 0;
D08.Enabled := Pos(´08´, Lista_Impares.Strings[CurrentIndex]) > 0;
D09.Enabled := Pos(´09´, Lista_Impares.Strings[CurrentIndex]) > 0;
D10.Enabled := Pos(´10´, Lista_Impares.Strings[CurrentIndex]) > 0;
D11.Enabled := Pos(´11´, Lista_Impares.Strings[CurrentIndex]) > 0;
D12.Enabled := Pos(´12´, Lista_Impares.Strings[CurrentIndex]) > 0;
D13.Enabled := Pos(´13´, Lista_Impares.Strings[CurrentIndex]) > 0;
D14.Enabled := Pos(´14´, Lista_Impares.Strings[CurrentIndex]) > 0;
D15.Enabled := Pos(´15´, Lista_Impares.Strings[CurrentIndex]) > 0;
D16.Enabled := Pos(´16´, Lista_Impares.Strings[CurrentIndex]) > 0;
D17.Enabled := Pos(´17´, Lista_Impares.Strings[CurrentIndex]) > 0;
D18.Enabled := Pos(´18´, Lista_Impares.Strings[CurrentIndex]) > 0;
D19.Enabled := Pos(´19´, Lista_Impares.Strings[CurrentIndex]) > 0;
D20.Enabled := Pos(´20´, Lista_Impares.Strings[CurrentIndex]) > 0;
D21.Enabled := Pos(´21´, Lista_Impares.Strings[CurrentIndex]) > 0;
D22.Enabled := Pos(´22´, Lista_Impares.Strings[CurrentIndex]) > 0;
D23.Enabled := Pos(´23´, Lista_Impares.Strings[CurrentIndex]) > 0;
D24.Enabled := Pos(´24´, Lista_Impares.Strings[CurrentIndex]) > 0;
D25.Enabled := Pos(´25´, Lista_Impares.Strings[CurrentIndex]) > 0;
Jogo1.Caption := Copy(Lista_Impares.Strings[CurrentIndex],1,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],5,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],9,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],13,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],17,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],21,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],25,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],29,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],33,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],37,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],41,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],45,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],49,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],53,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],57,2);
end
else
begin
(* Jogo 2 do Volante - Cada volante tem dois jogos *)
D26.Enabled := Pos(´01´, Lista_Impares.Strings[CurrentIndex]) > 0;
D27.Enabled := Pos(´02´, Lista_Impares.Strings[CurrentIndex]) > 0;
D28.Enabled := Pos(´03´, Lista_Impares.Strings[CurrentIndex]) > 0;
D29.Enabled := Pos(´04´, Lista_Impares.Strings[CurrentIndex]) > 0;
D30.Enabled := Pos(´05´, Lista_Impares.Strings[CurrentIndex]) > 0;
D31.Enabled := Pos(´06´, Lista_Impares.Strings[CurrentIndex]) > 0;
D32.Enabled := Pos(´07´, Lista_Impares.Strings[CurrentIndex]) > 0;
D33.Enabled := Pos(´08´, Lista_Impares.Strings[CurrentIndex]) > 0;
D34.Enabled := Pos(´09´, Lista_Impares.Strings[CurrentIndex]) > 0;
D35.Enabled := Pos(´10´, Lista_Impares.Strings[CurrentIndex]) > 0;
D36.Enabled := Pos(´11´, Lista_Impares.Strings[CurrentIndex]) > 0;
D37.Enabled := Pos(´12´, Lista_Impares.Strings[CurrentIndex]) > 0;
D38.Enabled := Pos(´13´, Lista_Impares.Strings[CurrentIndex]) > 0;
D39.Enabled := Pos(´14´, Lista_Impares.Strings[CurrentIndex]) > 0;
D40.Enabled := Pos(´15´, Lista_Impares.Strings[CurrentIndex]) > 0;
D41.Enabled := Pos(´16´, Lista_Impares.Strings[CurrentIndex]) > 0;
D42.Enabled := Pos(´17´, Lista_Impares.Strings[CurrentIndex]) > 0;
D43.Enabled := Pos(´18´, Lista_Impares.Strings[CurrentIndex]) > 0;
D44.Enabled := Pos(´19´, Lista_Impares.Strings[CurrentIndex]) > 0;
D45.Enabled := Pos(´20´, Lista_Impares.Strings[CurrentIndex]) > 0;
D46.Enabled := Pos(´21´, Lista_Impares.Strings[CurrentIndex]) > 0;
D47.Enabled := Pos(´22´, Lista_Impares.Strings[CurrentIndex]) > 0;
D48.Enabled := Pos(´23´, Lista_Impares.Strings[CurrentIndex]) > 0;
D49.Enabled := Pos(´24´, Lista_Impares.Strings[CurrentIndex]) > 0;
D50.Enabled := Pos(´25´, Lista_Impares.Strings[CurrentIndex]) > 0;
Jogo2.Caption := Copy(Lista_Impares.Strings[CurrentIndex],1,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],5,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],9,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],13,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],17,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],21,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],25,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],29,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],33,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],37,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],41,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],45,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],49,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],53,2) + ´-´ +
Copy(Lista_Impares.Strings[CurrentIndex],57,2);
end;
end;
if (ExisteJogo1 = True) or (ExisteJogo2 = True) then
NVolante.Caption := ´Volante: ´ + NVolante;
finally
Application.ProcessMessages;
Inc(CurrentIndex);
end;
end;
end;
(* Bom, desculpem se tiver faltando algum ´end´ ou esteja fora do alinhamento, na compilação tá tudo beleza e também na execução, se faltou alguma coisa foi aqui agora tentando colocar como tá no código, etc... o Problema deve ser a lógica, examinem aí para me ajudar onde estou errando! Agradeço muito, sou iniciante e uso o Delphi somente como Hoby, esse é meu primeiro programa comercial que tô tentando fazer para ganhar um trocado, pois estou desempregado :) *)
(* Desculpem meus HERROS de português, além de estar escrevendo rápido, meu português é ruim mesmo. *)
(* Aguardo uma possível compaixão pelo meu problema, e uma solução inimaginável, :) *)
Onjahyr - onjahyr@gmail.com
Onjahyr
Curtir tópico
+ 0
Responder
Posts
11/09/2007
Onjahyr
Ninguém sabe? :lol:
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)