Текущий архив: 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.014 c