Главная страница
    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.036 c
4-1090339359
parovoZZ
2004-07-20 20:02
2004.09.05
TranslateMessage()


1-1092927783
makssim
2004-08-19 19:03
2004.09.05
Как запретить вводить в комбобокс польз. данные?


14-1092851409
Piter
2004-08-18 21:50
2004.09.05
Подскажите элемент HTML


1-1092936808
3APA3A
2004-08-19 21:33
2004.09.05
Правильное использование Dispose()...


14-1092593139
Profi
2004-08-15 22:05
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский