Текущий архив: 2008.10.12;
Скачать: CL | DM;
Вниз
Проблема с условием else Найти похожие ветки
← →
krolic (2008-09-08 14:18) [0]Добрый день. Помогите найти ошибку.
Если делать цикл так, то нужные строки окрашивает в красныйOpen;
IBQuery.First;
while not (IBQuery.Eof) do
begin
Zapr:=FieldByName("max").AsString;
for i:=0 to ListView1.Items.Count-1 do
if ListView1.Items[i].SubItems[4] = Zapr then
begin
ListView1.Items[i].Data := Pointer(clRed); ListView1.Invalidate; //Красим строку в красный цвет
end;
DataModule1.IBQShared.Next;
end;
Close;
Если добавить условие, то красит все в зеленый, хотя должны быть и красные
Open;
IBQuery.First;
while not (IBQuery.Eof) do
begin
Zapr:=FieldByName("max").AsString;
for i:=0 to ListView1.Items.Count-1 do
if ListView1.Items[i].SubItems[4] = Zapr then
begin
ListView1.Items[i].Data := Pointer(clRed); ListView1.Invalidate; //в красный
end
else
begin
ListView1.Items[i].Data := Pointer(clGreen); ListView1.Invalidate; //в зеленый
end;
DataModule1.IBQShared.Next;
end;
Close;
← →
Медвежонок Пятачок © (2008-09-08 14:23) [1]И причем здесь "красит в красный", если нет ни намека на сам код раскраски?
← →
Медвежонок Пятачок © (2008-09-08 14:25) [2]Кроме того, это что за ребусы?
IBQuery.First;
while not (IBQuery.Eof) do
begin
Zapr:=FieldByName("max").AsString;
for i:=0 to ListView1.Items.Count-1 do
if ListView1.Items[i].SubItems[4] = Zapr then
begin
ListView1.Items[i].Data := Pointer(clRed); ListView1.Invalidate; //Красим строку в красный цвет
end;
DataModule1.IBQShared.Next;
← →
krolic (2008-09-08 14:30) [3]Да дело не в раскраске. Дело в том, что в первый код отличается от второго вот чем
1кодfor i:=0 to ListView1.Items.Count-1 do
if Условие1 then
begin
Красим строку в красный цвет
end;
2код
for i:=0 to ListView1.Items.Count-1 do
if Условие1 then
begin
Красим строку в красный цвет
end
else
begin
в зеленый
end;
В результате первого кода, он красит строки в красный, которые удовлетворяю условию1.
А в результате второго кода он все красит в зеленый,несмотря на Условие1.
Мне нужно найти ошибку во втором коде.
← →
Медвежонок Пятачок © (2008-09-08 14:31) [4]В результате первого кода, он красит строки в красный
Твой приведенный здесь код ничего не красит.
← →
krolic (2008-09-08 14:31) [5]На эти ребусы смотреть не надо, надо смотреть на [3] сообщение
← →
Медвежонок Пятачок © (2008-09-08 14:33) [6]кроме того, в подготовке данных для раскраски участвует как минимум два датасета. один из которых никто не позиционирует перед началом вычислений. То есть результат не прогнозируем.
← →
Медвежонок Пятачок © (2008-09-08 14:34) [7]Твой приведенный здесь код не имеет никакого отношения к раскраске. А ты в нем ищешь философский камень.
← →
krolic (2008-09-08 14:34) [8]Считай, что вместо красит написано ShowMessage("Красный") и ShowMessage("Зеленый")
← →
Медвежонок Пятачок © (2008-09-08 14:35) [9]Считай, что ты нашел ошибку.
← →
KilkennyCat © (2008-09-08 14:36) [10]во-первых, так красивше:
begin
Zapr:=FieldByName("max").AsString;
for i:=0 to ListView1.Items.Count-1 do
if ListView1.Items[i].SubItems[4] = Zapr then
ListView1.Items[i].Data := Pointer(clRed)
else
ListView1.Items[i].Data := Pointer(clGreen);
ListView1.Invalidate;
DataModule1.IBQShared.Next;
end;
во-вторых, в чем проблема? условие просто выполняется всегда false...
← →
Anatoly Podgoretsky © (2008-09-08 14:40) [11]Дурдом какой то.
← →
Сергей М. © (2008-09-08 14:41) [12]
> Проблема с условием else
>
> krolic (08.09.08 14:18)
И какая же тут проблема ?
Если "в зеленый", значит выполняется соотв.условие, а именно
ListView1.Items[i].SubItems[4] <> Zapr
← →
Медвежонок Пятачок © (2008-09-08 14:45) [13]Проблема кролика в том, что он верит, что отличие двух вариантов заключается исключительно в else
← →
Palladin © (2008-09-08 14:45) [14]:) обычная стандартная проблема... у аффтора... с логикой...
← →
Германн © (2008-09-08 14:46) [15]
> Проблема с условием else [D7, XP]
>
> krolic (08.09.08 14:18)
>
> Добрый день. Помогите найти ошибку.
Это глюк Д7. Переходи на Д2009.
← →
Johnmen © (2008-09-08 14:47) [16]Это тот же перец, что и
http://delphimaster.net/view/3-1220246663/
известный, как Finjy или Dagir. На sql.ru как Dagirov.
Все серии здесь
http://delphimaster.net/view/3-1220246663/
Видно его столь же дурную ветку про массивы удалили, так на sql.ru побирается
http://sql.ru/forum/actualthread.aspx?tid=593221
← →
krolic (2008-09-08 14:47) [17]1код f
or i:=0 to ListView1.Items.Count-1 do
if Условие1 then
begin
Красим строку в красный цвет
end;
2код
for i:=0 to ListView1.Items.Count-1 do
if Условие1 then
begin
Красим строку в красный цвет
end
else
begin
в зеленый
end;
В том то и проблема, что в результате первого кода, он красит, например, 3 и 5 строки в красный. А в результате второго кода все строки в зеленый, хотя 3 и 5 должны быть красными.
← →
Медвежонок Пятачок © (2008-09-08 14:47) [18]Один датасет позиционируем на first, из второго читаем значение, третьему делаем next.
Все как у райкина. Каждый отвечает за свои пуговицы.
← →
Сергей М. © (2008-09-08 14:52) [19]
> 3 и 5 должны быть красными
С какого перепугу "должны" ?
← →
Медвежонок Пятачок © (2008-09-08 14:54) [20]Видимо виноват эффект Доплера
← →
Amoeba © (2008-09-08 14:59) [21]Этот товарищ уже и сюда с этим вопросом влез
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=65014
← →
krolic (2008-09-08 15:01) [22]Должны в результате условия
if Условие1 then
begin
Красим строку в красный цвет
end
← →
Сергей М. © (2008-09-08 15:03) [23]Ба, да это оказывается подружка !
На троих, видать, соображают - krolic, Finjy и Dagir)
← →
krolic (2008-09-08 15:04) [24]АМЁБА тебе не все равно, где я задаю вопросы.Если не чем помочь, то не мешайся под ногами!!!
← →
Johnmen © (2008-09-08 15:04) [25]Ну Оксане Белолипецких щас навалится туча народу отвечать. Причем исключительно кодом...:)
← →
Медвежонок Пятачок © (2008-09-08 15:06) [26]Должны в результате условия
Если должны и не отдают, то есть сервис соответсвующий.
Пацаны там за определенный процент работают.
← →
krolic (2008-09-08 15:06) [27]А вот с именем не угадал
← →
Johnmen © (2008-09-08 15:08) [28]
> А вот с именем не угадал
Да понятно, что целая банда чайников задает вопросы главного самовара по всему инету...:)
← →
Сергей М. © (2008-09-08 15:09) [29]krolic (08.09.08 15:01) [22]
> Должны в результате условия
> if Условие1 then
> begin
> Красим строку в красный цвет
> end
>
Ничего они никому не "должны".
Если условие истинно, то "красим в красный", иначе "не красим в красный" или "красим в некрасный".
Третьего не дано.
Если видишь зеленый, то верь глазам своим - условие ложно.
← →
b z (2008-09-08 15:10) [30]По понедельникам может быть все. :)
← →
имя (2008-09-08 15:21) [31]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2008.10.12;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.018 c