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

Вниз

Случайный выбор.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.022 c
1-1092992924
Zhekson
2004-08-20 13:08
2004.09.05
Оттенки цветов


3-1092217610
Руслан
2004-08-11 13:46
2004.09.05
А можно ли в DBGride использовать заголовки как кнопки(например


14-1091360013
vidiv
2004-08-01 15:33
2004.09.05
Будет ли такое работать в ТУРБО Паскале.


11-1080267569
Alek Aaz
2004-03-26 05:19
2004.09.05
размер исполняемого кода


4-1089953351
Сергей Ю.
2004-07-16 08:49
2004.09.05
"Снятие" экрана