Тексты программ 409

if (SR.Nameo'.') and (SR.NameO'. . ') then PFL".Insert(NewStrfSR.Name)) ;

FindNext(SR) end;

if AllExe then begin

AllExe := False;

WC := '*.EXE' ;

goto Rep end;

Self.NewList(PFL) end;

^————————————;

procedure TFileListBox.HandleEvent;

{Обработчик событий окна выбора файлов: использует клавишу Insert для пометки файла} var

S: String;

begin

TListBox.HandleEvent(Event);

if (Event.What = evKeyDown) then case Event.KeyCode of

Itblns: begin {Нажата клавиша Insert) ^ S := GetText(Focused,255); {Получаем выбор} PFL^.AtFree(Focused) ; {Удаляем файлиз коллекции} if S[Length(s)] =#251 then

DemarkF(s) {Убираем пометку} else

MarkF(s); {Добавляем пометку} PFL".Insert(NewStr(S)); {Вставляема колл} Event.KeyCode := kbDown; {Имитируем сдвиг} Draw; {указателя вниз} TListBox.HandleEvent(Event) ;

end;

koGrayPlus: {Серый "+" как "Выбрать все"]

Message(@Self,evCommand,cmAll,@Self) end

end; {TFileListBox.HandleEnent} ^____———_—————^

Procedure TFileListBox.MarkFfvar s: String);

{Помещает в строку S маркер выбора} begin

while Length(s)<MarkL do s : = s+' ';

s :" s+#251 end;

____———————.——;

Procedure TFileListBox.DeraarkF(var s: String);

{Удаляет маркер выбора из строки S} begin

while (s[Length(s)]=#251) or (s[Length(s)]=• •) do

System.Delete(s,Length(s),1) end;

{

+—_-----—-----------—----—-—----+

¦ Обработка команды "Удалить файл" \

+—————————————————————.——+

;

Procedure DelFile(ss: String);