Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.047 c
8-1087242022
DimDim
2004-06-14 23:40
2004.09.05
TRxGIFAnimator и проблемы с ним


3-1092294860
REA
2004-08-12 11:14
2004.09.05
IB описания полей


14-1092823518
WondeRu
2004-08-18 14:05
2004.09.05
Люди, туплю уже час......


14-1092662426
nasty
2004-08-16 17:20
2004.09.05
создание справочной системы по спроектированным классам


1-1092907415
Maxim____
2004-08-19 13:23
2004.09.05
массив объектов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский