unit random_dialog; interface uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls, Buttons, ExtCtrls,main, {$IFNDEF kiosk} Dialogs, {$ENDIF} olespeech,randomfromalbums; type Trnd_dialog = class(TForm) includelist: TListBox; Label1: TLabel; all: TButton; none: TButton; OKBtn: TButton; cancel: TButton; randomcountlabel: TLabel; procedure CancelBtnClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormActivate(Sender: TObject); procedure noneClick(Sender: TObject); procedure allClick(Sender: TObject); procedure includelistClick(Sender: TObject); function cb(c : integer) : boolean; procedure OKBtnClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var dicex : integer; rnd_dialog: Trnd_dialog; randalb : integer; randtrack : integer; n : integer; dice : Tbitmap; hh,hhh,h : string; tst : integer; wereok : boolean; trash : integer; cancel_op : boolean; slistcount : string; implementation {$R *.DFM} procedure Trnd_dialog.CancelBtnClick(Sender: TObject); begin cancel_op:=true; rnd_dialog.close; end; procedure Trnd_dialog.FormCreate(Sender: TObject); begin okbtn.enabled:=true; end; procedure Trnd_dialog.FormActivate(Sender: TObject); begin initrandom; includelist.items:=mainform.dAlbumlist.items; mainform.playlist.visible:=true; label1.caption:='Include the following in the play list:-'; Cancel.caption:='&Finished'; all.enabled:=true; none.enabled:=true; okbtn.enabled:=true; includelist.enabled:=true; cancel_op:=false; randomcountlabel.caption:='0 tracks in list'; end; procedure Trnd_dialog.noneClick(Sender: TObject); var n : integer; begin for n:=0 to includelist.items.count-1 do begin includelist.itemindex:=n; includelist.selected[n]:=false; includelistclick(nil); end; end; procedure Trnd_dialog.allClick(Sender: TObject); var n : integer; begin for n:=0 to includelist.items.count-1 do begin includelist.itemindex:=n; includelist.selected[n]:=true; includelistclick(nil); end; end; procedure Trnd_dialog.includelistClick(Sender: TObject); begin if includelist.itemindex=-1 then exit; if (includelist.selected[includelist.itemindex]=true) then randomcountlabel.caption:=inttostr(addalbum(includelist.itemindex))+' tracks in list' else randomcountlabel.caption:=inttostr(removealbum(includelist.itemindex))+' tracks in list'; end; function Trnd_dialog.cb(c : integer) : boolean; begin randomcountlabel.caption:='Added '+inttostr(c)+' tracks.'; application.processmessages; if cancel_op=true then result:=true else result:=false; end; procedure Trnd_dialog.OKBtnClick(Sender: TObject); begin cancel.caption:='Enough'; makerandom(cb); close; end; end.