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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
1-43508
Tatyana
2004-02-28 23:14
2004.03.14
SaveDialog.FileName := OpenDialogFileName .....


7-43929
Pirate
2003-12-25 17:49
2004.03.14
DDE-how to use this roolezz?


3-43352
Пубертанец
2004-02-13 10:24
2004.03.14
Лишние пробелы в DB-компонентах


3-43382
Yermek
2004-01-25 21:58
2004.03.14
Paradox в сети


14-43805
Kair
2004-02-23 09:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский