Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Bitmap в Image   Найти похожие ветки 

 
Rim   (2004-02-29 14:50) [0]

Нужна помощь.В ресурсном файле в Bitmap 10 картинок.На форме 5 Image.Загружаю из Bitmap в Image методом случайных чисел.Как сделать чобы изображения в Image не повторялись?


 
Mihey   (2004-02-29 15:00) [1]

Функция заполнения массива случайными неповторяющимися числами:

procedure FillArray(var A: array of Integer);
var

I, S, R: Integer;
begin

for I := 0 to High(A) do A[I] := I;
for i := High(A) downto 0 do begin
R := Random(I);
S := A[R]; A[R] := A[I]; A[I] := S;
end;
end;

Заполняешь массив длиной в 10 элементов (SetLength(a, 10)), загружаешь первые пять.


 
Maxud   (2004-02-29 15:18) [2]


> Rim (29.02.04 14:50)

Создавай сразу весь массив случайных чисел, потом бери из массива, допустим, первое значение и удаляй его из массива (или помечай как использованное). Если все использовал, поторяй операцию заново.


 
Rim   (2004-02-29 15:47) [3]

Я начинающий. Объясните как это применить, если можно попонятней.


 
Maxud   (2004-02-29 16:15) [4]

Вот, на коленке:
const
N = 10;
ResArray: array[0..N-1] of ShortString = (
"","","","","","","","","","");// в кавычках имена ресурсов

var IndexArray: array of integer;
...
function FillIndexArray(Count: integer);// заполняем массив
var i, r, t: integer;
begin
SetLength(IndexArray, Count-1);
for i := 0 to Count-1 do
IndexArray[i]:= i; // начальная инициализация
for i := 0 to Count-1 do // смешиваем
begin
r := Random(Count);
t := IndexArray[r];
IndexArray[r] := IndexArray[i];
IndexArray[i] := t;
end;
end;

function GetNextName: string;
begin
Result := ResArray[IndexArray[0]];
if Length(IndexArray)>1 then
Move(IndexArray[1], IndexArray[0], (Length(IndexArray)-1) * SizeOf(Integer))
else
FillIndexArray(N);
end;

// где-нибудь в OnCreate пропиши
// вызовы Randomize и FillIndexArray(N)


 
Maxud   (2004-02-29 16:15) [5]

Вот, на коленке:
const
N = 10;
ResArray: array[0..N-1] of ShortString = (
"","","","","","","","","","");// в кавычках имена ресурсов

var IndexArray: array of integer;
...
function FillIndexArray(Count: integer);// заполняем массив
var i, r, t: integer;
begin
SetLength(IndexArray, Count-1);
for i := 0 to Count-1 do
IndexArray[i]:= i; // начальная инициализация
for i := 0 to Count-1 do // смешиваем
begin
r := Random(Count);
t := IndexArray[r];
IndexArray[r] := IndexArray[i];
IndexArray[i] := t;
end;
end;

function GetNextName: string;
begin
Result := ResArray[IndexArray[0]];
if Length(IndexArray)>1 then
Move(IndexArray[1], IndexArray[0], (Length(IndexArray)-1) * SizeOf(Integer))
else
FillIndexArray(N);
end;

// где-нибудь в OnCreate пропиши
// вызовы Randomize и FillIndexArray(N)


 
Maxud   (2004-02-29 16:18) [6]

Блин, когда кнопка "Удалить сообщение" появится? Нафлудил тут :(



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

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.013 c
14-43778
ИМХО
2004-02-17 14:05
2004.03.14
Люди Касперского знают все форматы???


1-43438
malkolinge
2004-03-01 13:07
2004.03.14
Указатель за витруальный метод предка.


14-43869
Sergey_Masloff
2004-02-18 22:43
2004.03.14
последний номер Мир ПК


14-43814
Soft
2004-02-20 23:37
2004.03.14
Принципы эзотерического подхода к литературе.


9-43240
[Baradoo]
2003-01-14 21:54
2004.03.14
Огонь или как его реализовать в игре...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский