Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Вниз
Случайный выбор. Найти похожие ветки
← →
Asdweb (2004-08-20 15:44) [0]Как сделать так, чтобы Timage выбирал случайный рисунок из
папки по истечению таймера?
Спасибо
← →
Anatoly Podgoretsky © (2004-08-20 15:52) [1]Random
← →
Afteam (2004-08-20 15:53) [2]1) ставишь таймер
2) в обработчике таймера пишешь что то типа:
var
L: TStringList;
R: Integer;
F: TSearchRec;
begin
L := TStringList.Create;
R := FindFirst("*.bmp", faAnyFile, F);
while R <> 0 do begin
if not(F.Attr and faDirectory) then
L.Add(F.Name);
R := FindNext(F);
end;
// не помню как пользоваться генератором случайных чисел...
Randomize;
Image1.Picture.LoadFromFile(L[Rnd(L.Count-1)]);
L.Free;
end;
← →
Afteam (2004-08-20 15:54) [3]Sorry.
FindClose(F) забыл :-)
← →
Asdweb (2004-08-20 21:02) [4]Спасибо!
← →
Asdweb (2004-08-20 21:07) [5]А можно ли также сменить фон рабочего стола?
мой код смены фона таков:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
St : string;
begin
St := "C:\1.Bmp";
SystemParametersInfo(SPI_SETDESKWALLPAPER,UINT(St),nil,SPIF_SENDCHANGE);
end;
end.
← →
saimon (2004-08-21 18:48) [6]Можно, но только ооооооооочень осторожно!!!!!!!!! ;)
(Если я тя правильно понял, то ты хочешь что-б они менялись через опр. промежуток времени??? Да??? тогода см. ниже)
Почему? Нагрузка будет на систему сильноватая, если менять эти обои слишком часто (если комп не мощный или ОЗУ мало). И после смены обоев надо (если не ошибаюсь) обновить рабочий стол (как не помню).
Как это сделать??? Просто, слепи свой код с кодом Afteam"a (Afteam (20.08.04 15:53) [2]).
Удачи...
← →
TUser © (2004-08-21 20:26) [7]
> не помню как пользоваться генератором случайных чисел
И как пользоваться файнд фёрстами.
Я бы делал так
i:=0;
try
if FindFirst = 0 then
repeat
if (sr.Attr and ...) = sr.Attr then
inc (i);
until Findnext <> 0;
finally
FindClose;
end;
i:=round(Random(i));
try
if FindFirst = 0 then
repeat
if (sr.Attr and ...) = sr.Attr then begin
dec (i);
if i = 0 then
Image1.Bitmap.LoadFromFile("..."+sr.Name);
end;
until Findnext <> 0;
finally
FindClose;
end;
Можно грузить результат в стринг лист, потом брать случайную строчку - это уже на любитетя.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c