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.