Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Вниз

Random Как сделать?   Найти похожие ветки 

 
Inan61   (2002-10-18 22:20) [0]

На форме имеется 30 панелей, имитирующих экз.билеты. Необходимо по нажатию на кнопку пронумеровать их от 1 до 30 случайным образом. Как сделать?
Помогите, если можете. Заранее спасибо.


 
TTCustomDelphiMaster   (2002-10-18 22:40) [1]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1034946854&n=3


 
Inan61   (2002-10-18 23:35) [2]

А нельзя ли обойтись без массивов и флагов? Есть пример, но в нём при присвоении номеров они повторяются. Как его модернизировать?
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
Randomize;
for i:=0 to ComponentCount-1 do
begin
if (Components[i] is TPanel) then
(Components[i] as TPanel).Caption:=IntToStr(Random(29)+1);
end;
end;


 
Pat   (2002-10-19 00:52) [3]

>Как его модернизировать?
С помощью массивов и флагов :-))
Можно добавлять в StringList и при генерации следующего числа проверять IndexOf()


 
k   (2002-10-19 02:29) [4]

мне пришла идея (дурацкая - знаю)
только одно условие
ведь у TPanel есть св-во tag? задействуем его...
короче назначаем

//и зачем ты все компоненты перебираешь?
//чего бы массив не сделать?
const PanelCount = 30;
FPanels:array[1..PanelCount] of TPanel;
//создаешь их, размещаешь, св-ву Parent := self;

for i:=1 to PanelCount do FPanels.Tag:=i;
//пронумеровали их по порядку

теперь перетасуем их (точнее их теги)

var n1,n2:integer;
temptag:TPanel;
for i:=1 to 1000 do
begin
n1 := Random(30)+1; ан-но n2
temptag := Panels[n1].tag;
Panels[n1].tag := Panels[n2].tag;
Panels[n2].tag := TempTag;
end;

теперь номер тэга можно и в название вывести...
такова идея...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
1-101254
Pat
2002-10-22 00:48
2002.10.31
Динамическое создание форм


3-101135
Kurt
2002-10-10 11:36
2002.10.31
Как передавать параметры в ADOQuery если несколько параметров в з


4-101560
Danger
2002-09-17 01:21
2002.10.31
Как заблочить правую кнопку мыши в Веб Броузере?


6-101401
Ryser
2002-08-27 11:53
2002.10.31
Передача команды из приложения на Linux сервер


14-101522
Volly
2002-10-11 14:16
2002.10.31
Как зарегистрировать программу?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский