Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 11:59   #1
nefor-аня
Новичок
Джуниор
 
Регистрация: 03.02.2010
Сообщений: 1
По умолчанию

картинка вставляется с помошью генератора

подскажите кто нибуть как вставить картинку рандомом. мне нужно чтобы из папки выбирались рандомом картинки

Последний раз редактировалось Stilet; 03.02.2010 в 12:18.
nefor-аня вне форума Ответить с цитированием
Старый 03.02.2010, 12:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Предположим у тебя в папке 1, которая лежит там же где и программа есть фотки, тогда пример:
Код:
unit Unit1;

interface

uses          jpeg,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, FileCtrl;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    FileListBox1: TFileListBox;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var     B:TPicture;
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var s:string;
begin
 s:=FileListBox1.Directory+'\'+FileListBox1.Items[random(FileListBox1.Items.Count-1)];
 b.LoadFromFile(s);
 Canvas.StretchDraw(ClientRect,B.Graphic);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 b:=TPicture.Create;
 FileListBox1.Directory:=ExtractFilePath(paramstr(0))+'\1';
 FileListBox1.Visible:=false;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 b.Free;
end;

end.
Покажет как загрузить случайным образом ту или иную фотку.
Смысл понял?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2010, 14:03   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

а зачем через файллистбокс? Нужны же картинки, уместнее будет реализовать через массив TBitmap (если картинки бмп) или TJpegImage

создаешь динамический массив картинок, ищешь файлы с нужным расширением при помощи функции FindFirst и FindNext, запоминаешь в массив пути, считаешь сколько файлов получилось - это и будет размерность массива - 1.
Затем грузишь в массив картинки (примерно так):
Код:
uses jpeg;
var
tn: array[0..5] of TJPEGImage;
i: integer;
begin
  for i := 0 to 5 do begin
    tn[i] := TJPEGImage.Create;
    tn[i].LoadFromFile(s[i]);
  end;
end;
случайный выбор:
Код:
randomize;
tn[random(5)] // картинка выбирается случайным образом из массива
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]

Последний раз редактировалось RUSt88; 03.02.2010 в 14:05.
RUSt88 вне форума Ответить с цитированием
Старый 03.02.2010, 14:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
уместнее будет реализовать через массив
Вот ты сначала попробуй так 200 000 картинок обработать а потом расскажешь как твой компьютер себя чувствовал при такой загрузке )
Загрузка картинок не очень медленный процесс.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2010, 14:46   #5
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

200 000 картинок - лишканул чего-то
предложу другой путь, картинки не загружаем, а создаем массив из имен файлов картинок, и также по рандому выбираем элемент массива, в к-ром есть всё необходимое для загрузки image
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 03.02.2010, 15:41   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а создаем массив из имен файлов картинок
Угу. Я для этого FileListBox как раз применил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация случайных чисел?! Evgeny_1 Фриланс 12 17.03.2010 14:23
Генерация случайных чисел от -1 до 1 Shketer Общие вопросы Delphi 4 19.12.2009 23:43
генератор случайных чисел на С++ ANTI Общие вопросы C/C++ 20 12.04.2009 13:02
Генератор случайных чисел psychopat Общие вопросы Delphi 11 18.02.2009 10:39
выборка случайных чисел furstenberg Общие вопросы Delphi 2 13.01.2008 21:07