![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Добрый день.
Подскажите, как подсчитать количество отмеченных строк в CheckListBox? Необходимо сделать подсчет и вывести это значение в Gauge.MaxValue (компонент из AlphaSkins). Код такой: Код:
for i := 0 to MainForm.asCheckListBox.Items.Count - 1 do
begin
if MainForm.asCheckListBox.Checked[i] then
begin
Ident := sl[i];
Value := InstallINI.ReadString(PChar('All'), Ident, '');
...
MainForm.asInstGauge.MaxValue := ?;
...
if CreateProcess(PChar(ExePath), PChar(CmdLine), nil, nil, False, 0, nil, nil, SI, PI) then
try
while True do
begin
if (WaitForSingleObject(PI.hProcess, 100) <> WAIT_TIMEOUT) then Break;
end;
finally
MainForm.asInstGauge.Progress := ?;
Application.ProcessMessages;
CloseHandle(PI.hProcess);
CloseHandle(PI.hThread);
end;
end;
end;То есть с каждым выполненным CreateProcess, Gauge по задумке должен отображать ход выполнения. |
|
#2
|
||||
|
||||
|
Цитата:
Вот пример функции подсчитывающей количество помеченных элементов в указанном CheckListBox: Код:
function CalcChecked(CheckListBox: TCheckListBox): Integer;
var
i: Integer;
begin
Result := 0;
for i := 0 to CheckListBox.Count - 1 do
if CheckListBox.Checked[i] then Inc(Result);
end;Код:
asInstGauge.MaxValue := CalcChecked(asCheckListBox); Цитата:
|
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
nerZEROn (09.01.2014)
| ||
|
#3
|
||||
|
||||
|
Цитата:
Gauge.MaxValue нужно для того, чтобы зафиксировать максимальное кол-во шагов цикла. По завершению цикла, Gauge показывает 100%.У меня получилось сделать самому, но через занесение кол-ва отмеченных строк CheckListBox в Memo. А количество линий Memo присваивал TStrings. Но это не так красиво и удобно, как через функцию. Так что большое спасибо! |