Chcę wykonać, aby powtarzały mi się liczby po 2 razy. Chcę znaleźć np. taką drugą liczbę. Mając 20 pól, będę robił radnom(10). Ale niestety nie wiem jak wykonać by dana liczba powtórzyła się 2 razy?
Zapamiętaj wylosowaną liczbę do zmiennej i wpisz ją dwa razy w odpowiednie miejsca tabliczy czy czego tam chcesz.
Mam zamiar odkrywać Buttony, gdzie do każdego będzie przypisana liczba losowa. Dlatego muszą być 2 Buttony o tej samej wartości. Możesz mi to pokazać na przykładzie?
Piszesz, że chodzi o Pascala, a mi buttony sugerują, że chcesz zrobić albo aplikację okienkową albo coś w
trybie graficznym. Jednak jeżeli masz tablicę to najprostsze rozwiązanie nasuwa mi się takie jak poniżej.
//...
var
I, R : Byte;
Buttony : array[1..20] of Byte;
begin
Randomize;
I := Low(Buttony);
repeat
R := Random(10);
Buttony[I] := R;
Buttony[I + 1] := R;
I := I + 2;
until I > High(Buttony);
for I := Low(Buttony) to High(Buttony) do
begin
Writeln(' ', Buttony[I]);
end;
Readln;
end.
Dokładnie ma to być pod Buttony, czyli jak powinno wyglądać?
//...
var
I, R : Byte;
TButton : array[1..20] of TButton;
begin
Randomize;
I := Low(TButton);
repeat
R := Random(10);
TButton[I] := R;
TButton[I + 1] := R;
I := I + 2;
until I > High(TButton);
for I := Low(TButton) to High(TButton) do
begin
Writeln(' ', TButton[I]);
end;
Readln;
end.
Ale i na takim kodzie coś mi nie działa.
Po pierwsze poczytaj jakieś kursy, bo błądzisz po omacku i robisz wszystko trochę bezmyślnie, a raczej w programowaniu
nie ma zgadywania. TButton jak i wiele innych komponentów wizualnych ma własność Tag, którą można wykorzystać, tak
więc w Twoim przypadku powinieneś zastosowąc przykładowo taki kod. Oczywiście moduł StdCtrls ma być w sekcji uses.
Poza tym w aplikacji VCL nie korzystajej z konsoli - nie można stosować polecen typu: Write(ln) czy Read(ln) dla tekstu.
//...
const
Przyciskow_W_Rzedzie = 10;
var
I, R : Byte;
OdLewej, OdGory : integer;
ButtonsArr : array[1..20] of TButton;
begin
Randomize;
OdLewej := 8;
OdGory := 10;
for I := Low(ButtonsArr) to High(ButtonsArr) do
begin
ButtonsArr[I] := TButton.Create(Self);
with ButtonsArr[I] do
begin
Parent := Self;
Name := 'Btn' + IntToStr(I);
if (I > 1) and (I mod Przyciskow_W_Rzedzie = 1) then
begin
OdLewej := 8;
OdGory := OdGory + Height + 10;
end;
Top := OdGory;
Height := 26;
Width := 74;
Left := OdLewej;
OdLewej := OdLewej + Width + 10;
// Ewentualnie pozostałe własności dla przycisków
end;
end;
I := Low(ButtonsArr);
repeat
R := Random(10);
ButtonsArr[I].Tag := R;
ButtonsArr[I + 1].Tag := R;
I := I + 2;
until I > High(ButtonsArr);
for I := Low(ButtonsArr) to High(ButtonsArr) do
begin
with ButtonsArr[I] do
begin
Caption := IntToStr(Tag);
end;
end;
end;