![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про потоки и выходы из них [D4, D6, WinME]
Коля © (2002-07-08 00:54:00)Помнится на уроках паскаля учитель что GoToпользоватся плохо, это портит приграмму ну а если использовать эту функцию для выхода из цыкла, то будет еще хуже. Да и exitиспользовать не велят в цыклах.. Напрашивается вопрос, а как тогда правильно прервать цикл или перепрыгуть его часть???
Вот код:
for i:= 0 to FileListbox1.Items.Count -1 do
begin
if FileListbox1.Selected[i] then
begin
//проверяю, есть ли такой файл в ListBox"e
for ii:= 0 to Listbox1.Items.Count -1 do
begin
if Listbox1.Items[ii] = FileListbox1.Selected[i] then
exit; //вот этот екзит и хочется заменит на что- нибудь другое
Listbox1.Items.Add(FileListbox1.Items[i]);
exit;
end;
Тут MultiSelect = False; поэтому если один выделенный файл будут найдет, необходимо прекратить поток.
А тут дело немного усложняется MultiSelect = True; поэтому если файл найден в ListBox"e то поток не прекращять а переходить к следующему..
for i:= 0 to FileListbox1.Items.Count -1 do
begin
if FileListbox1.Selected[i] then
begin
//проверяю, есть ли такой файл в ListBox"e
for ii:= 0 to Listbox1.Items.Count -1 do
begin
if Listbox1.Items[ii] = FileListbox1.Selected[i] then
gotonem;
Listbox1.Items.Add(FileListbox1.Items[i]);
end;
nem:
end;
Пожалуйста объясните что к чему буду очень благодарен!
777 (2002-07-08 01:10:00) [1]1) break
2)
...
var Found:boolean;
...
found:=false;
for ii:= 0 to Listbox1.Items.Count -1 do
begin
if (Listbox1.Items[ii] <> FileListbox1.Selected[i])and(found=false)then Listbox1.Items.Add(FileListbox1.Items[i])else
found:=true;
end;