Тексты программ 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);