Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

list   Найти похожие ветки 

 
леха   (2004-10-29 18:59) [0]

Имеется listview в котором выводится информация о  разделах жесткого диска.
В первой колонке (точнее Listview.Colums[0]) расположен checkboxed, а за ним имя диска
(например С:\). Нужно отследить какие checkboxed находятся в cbChecked и поместить название
выделенного диска в LISTBOX.


 
alena.svt ©   (2004-10-29 19:28) [1]

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
S: string;
begin
with ListView1 do
for I:= 0 to Items.Count -1 do
if Items[i].Checked = True then
begin
ListBox1.Items.Add(ListView1.Items[I].Caption);
................................
end;
end;


 
VMcL ©   (2004-10-29 19:43) [2]

>Items[i].Checked = True

Это для пущей надежности?


 
alena.svt ©   (2004-10-29 19:45) [3]

Нет дело вкуса


 
VMcL ©   (2004-10-29 21:32) [4]

>>alena.svt ©  (29.10.04 19:45) [3]

Плохой вкус, потому что вместо
test al, al
jz +$xy

как в случае if Items[i].Checked then
будет
cmp al, 1
jnz +$xy


Причем даже при включенной оптимизации (D6).


 
alena.svt ©   (2004-10-29 22:00) [5]

VMcL ©   (29.10.04 21:32) [4]
asm - это то чего я побаиваюсь даже начать понимать
Если не трудно объясни и каковы последствия = True?


 
GuAV ©   (2004-10-29 22:17) [6]

alena.svt ©   (29.10.04 22:00) [5]
asm - это то чего я побаиваюсь даже начать понимать

ИМХО зря.

alena.svt ©   (29.10.04 22:00) [5]
Если не трудно объясни и каковы последствия = True?

небольшая потеря производительности.

плюс нестандартные значения true, например boolean(5), могут не считаться true (конечно их надо избегать или описывать не как boolean, но такие ошибки встречаются).


 
VMcL ©   (2004-10-29 23:48) [7]

>>GuAV ©  (29.10.04 22:17) [6]

>>небольшая потеря производительности.

По большому счету, это даже не самое важное, поскольку потеря быстродействия в общем-то незначительна, особенно для бизнес-приложений. Более важно - это читабельность кода.

Я считаю сравнения типа
if a = True then
if a = False then
if a <> True then
if a <> False then

т. е. сравнения булевых выражений с булевой константой извращениями людей, которые не очень хорошо знают язык, и мешают его нормально понимать другим.

Можно писать и так
if a < True then
if a > False then

но зачем гланды удалять через задний проход?


 
alena.svt ©   (2004-10-30 07:49) [8]

VMcL ©   (29.10.04 23:48) [7]
if a then
if not a then
Не учитывая потерю производительности, а только читабильность
if a = false then мне кажется более читабельной
Так все - же дело вкуса?


 
VMcL ©   (2004-10-30 10:31) [9]

>>alena.svt ©  (30.10.04 07:49) [8]

Конструкции
if Button1.Enabled then
if not Button1.Enabled then

более понятны с точки зрения естественно языка
"если кнопка видима, то"
"если кнопка невидима, то"

if Button1.Enabled = false then
"если "кнопка видима" является ложью, то"


 
Anatoly Podgoretsky ©   (2004-10-30 11:20) [10]

Учитывая, что имеет 4 разных варианта логических типов, то можно серьезно пострадать с такими конструкциями и уже многие пострадали


 
VMcL ©   (2004-10-30 12:59) [11]

>>Anatoly Podgoretsky ©  (30.10.04 11:20) [10]

В смысле WordBool, LongBool и т. п?


 
GuAV ©   (2004-10-30 14:12) [12]

VMcL ©   (30.10.04 12:59) [11]

В смысле WordBool, LongBool и т. п?


Да в этом случае возможно либо true <> true либо true = true.
Я например сталкивался с объявлением внешней функции с boolean заместо BOOL... это грабли.


 
alena.svt ©   (2004-10-30 16:52) [13]

Я так поняла , что зависит ни от читабельности и ни от вкуса
А все зависит от конкретной ситуации.
?


 
GuAV ©   (2004-10-30 17:13) [14]

alena.svt ©   (30.10.04 16:52) [13]
А все зависит от конкретной ситуации.


Никакой зависимости, всегда лучше без " = true"

Кроме возможно вкуса. Но следует вырабатывать правильный вкус.


 
Игорь Шевченко ©   (2004-10-30 19:40) [15]

GuAV ©   (30.10.04 14:12) [12]


> Я например сталкивался с объявлением внешней функции с boolean
> заместо BOOL... это грабли.


Сдается мне, что это внешняя функция не совсем корректно описана или себя ведет :)


 
GuAV ©   (2004-10-30 21:13) [16]


> Сдается мне, что это внешняя функция не совсем
> корректно описана или себя ведет :)


Именно. Некоррекно описана. Надо не Boolean а BOOL.
Одной ветки думаю нам хватит, пишите сюда http://delphimaster.net/view/4-1099137400/



Страницы: 1 вся ветка

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.064 c
3-1098081686
cad2206
2004-10-18 10:41
2004.11.14
Номер записи в отфильтрованой таблице???


11-1082719819
BolikDimon
2004-04-23 15:30
2004.11.14
Использование KOL в БД-приложениях


3-1097071045
denis24
2004-10-06 17:57
2004.11.14
размножение сессий на сервере БД


1-1099401968
Жекасиымси
2004-11-02 16:26
2004.11.14
утилита FC


1-1099031346
NewDelpher
2004-10-29 10:29
2004.11.14
Как правильно дождаться завершения потока?