Witam, obiecałem pomóc koledze w napisaniu programu na zaliczenie, kiedyś troszkę uczyłem się TP, ale to było ze 4 lata temu. Do rzeczy.
Program ma losować 6 liczb z 49, jak to w lotto, napisałem program konsolowy i jak najbardziej działa. Niestety nie wiedziałem, że przerzucenie tego na wersję okienkową będzie dla mnie aż tak trudne. Chcę wyświetlić wynik losowania w komponencie Label (jeśli nie w Label to w czym lepiej?), niestety nazwa tego komponentu nie znika, a ciąg wylosowanych liczb pojawia się obok tej nazwy. Nie mam pojęcia w jaki sposób mogę tego uniknąć. Drugi problem dotyczy również wyswietlania. Program ma opcję wyboru ile zestawów liczb ma wylosować. losując raz jest wszystko ok, ale jak chcesz wylosować dwa zestawy to są one wyswietlanie w jednej linii. Co zrobić by wyświetlały się jeden zestaw pod drugim? Przeczytałem, że należy użyć '+#13#10' ale niestety w moim przypadku ta funkcja powoduje wyświetlanie jednej liczby pod drugiej a nie zestawu pod zestawem. Takie masło maślane ale mam nadzieję, że ktoś mnie zrozumie. DOmyślam się, że znak nowej linii powinien znaleźć się za wyswietleniem wyniku a przed koncem pętli, ale nie potrafię tego wrzucić w kod tak, by program nie wywalał błędu.
Trzecia rzecz, algorytm losowania znalazłem na którejś ze stron. Czy jest on odpowiedni? Oczywiscie działa, ale może jest jakiś lepszy czy można go prościej napisać. Jak już mówiłem na programowaniu znam się tyle co na balecie, czyli nic, więc bardzo proszę o jakieś podpowiedzi.
Oto kod:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
ExtCtrls, Grids;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
Label10: TLabel;
Label11: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
x,ile,koszt,pom,i,j,liczby:integer;
tab:array[1..100]of integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
ile:=StrToInt(Edit1.text);
koszt:=3;
x:=(ile)*(koszt);
repeat
for i:=1 to 6 do
begin
repeat
pom:=1;
tab[i]:=random(49)+1;
for j:=1 to i do
begin
if i<>j then if tab[i]=tab[j]then pom:=0;
end;
until (pom=1);
end;
for i:=6 downto 1 do
begin
for j:=2 to i do
begin
if tab[j]<tab[j-1] then
begin
pom:=tab[j];
tab[j]:=tab[j-1];
tab[j-1]:=pom;
end;
end;
end;
for i:=1 to 6 do Label11.Caption:=IntToStr(tab[i]) + ' '; //wyświetlanie wyniku losowania
ile:=ile-1;
until ile=0;
Label8.Caption:=IntToStr(x) +' zl';
Label5.Caption := DateToStr(Date);
Label6.Caption:=TimeToStr(Time);
Label9.Caption:=DateToStr(Date+1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Label11.Caption:='';
end;
end.