Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.01.2014, 14:16
Аватар для nerZEROn
nerZEROn nerZEROn вне форума
Прохожий
 
Регистрация: 23.12.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Подсчет количества отмеченных строк в CheckListBox

Добрый день.
Подскажите, как подсчитать количество отмеченных строк в 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  
Старый 09.01.2014, 15:13
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от nerZEROn
Добрый день.
Подскажите, как подсчитать количество отмеченных строк в CheckListBox? Необходимо сделать подсчет и вывести это значение в Gauge.MaxValue (компонент из AlphaSkins).
Количество помеченных элементов вычисляй самостоятельно в цикле.

Вот пример функции подсчитывающей количество помеченных элементов в указанном 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);
Цитата:
Сообщение от nerZEROn
То есть с каждым выполненным CreateProcess, Gauge по задумке должен отображать ход выполнения.
С чего это сделан такой вывод?
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
nerZEROn (09.01.2014)
  #3  
Старый 09.01.2014, 15:48
Аватар для nerZEROn
nerZEROn nerZEROn вне форума
Прохожий
 
Регистрация: 23.12.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
С чего это сделан такой вывод?
С того, что после каждого этапа цикла CreateProcess мой Gauge увеличивается на 1 Gauge.MaxValue нужно для того, чтобы зафиксировать максимальное кол-во шагов цикла. По завершению цикла, Gauge показывает 100%.

У меня получилось сделать самому, но через занесение кол-ва отмеченных строк CheckListBox в Memo. А количество линий Memo присваивал TStrings. Но это не так красиво и удобно, как через функцию. Так что большое спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:15.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025