Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];

Вниз

Delphi - Толи лыжи не едут толи я ... ненормальный   Найти похожие ветки 

 
Calligraff ©   (2008-12-22 12:21) [0]

Добрый день.
Помогите пожалуйста моим кипящим мозгам:


procedure TformMain.lvContactListClick(Sender: TObject);
var
  id: Integer;
  isfldr: String;
  NotCurr: Boolean;
begin
if lvContactList.ItemIndex < 0 then exit;
isfldr := lvContactList.Items.Item[lvContactList.ItemIndex].SubItems.Strings[2];
if isfldr = "1" then begin
   id := StrToInt(lvContactList.Items.Item[lvContactList.ItemIndex].SubItems.Strings[3]);
   NotCurr := not CList.CONTACT_LIST[id].FOLDEROPEN;
   CList.CONTACT_LIST[id].FOLDEROPEN := NotCurr;
   ViewContactList(CLIST);
end;
end;


допустим, что CList.CONTACT_LIST[id].FOLDEROPEN = TRUE

но при NotCurr := not CList.CONTACT_LIST[id].FOLDEROPEN переменной NotCurr присваивается тоже TRUE.

Я уже не знаю как быть


 
Медвежонок Пятачок ©   (2008-12-22 12:22) [1]

отладчик


 
Правильный$Вася   (2008-12-22 12:48) [2]


> NotCurr := not CList.CONTACT_LIST[id].FOLDEROPEN;
> CList.CONTACT_LIST[id].FOLDEROPEN := NotCurr;

зачем такие танцы?


 
{RASkov} ©   (2008-12-22 12:57) [3]

>   NotCurr := not CList.CONTACT_LIST[id].FOLDEROPEN;
>   CList.CONTACT_LIST[id].FOLDEROPEN := NotCurr;

А почему не так:
CList.CONTACT_LIST[id].FOLDEROPEN := not CList.CONTACT_LIST[id].FOLDEROPEN;
?
Собсно это не ответ на вопрос, но...
А Нот булевую перевернет по любому....


 
Calligraff ©   (2008-12-22 13:34) [4]


> А почему не так:CList.CONTACT_LIST[id].FOLDEROPEN := not
> CList.CONTACT_LIST[id].FOLDEROPEN;

так и было..
я расписал через переменную, чтобы понятнее было


 
Calligraff ©   (2008-12-22 13:35) [5]


> А Нот булевую перевернет по любому...

вот только не переворачивает...


 
@!!ex ©   (2008-12-22 14:01) [6]

> [5] Calligraff ©   (22.12.08 13:35)

У меня переворачивает. Что я делаю не так?


 
Сергей М. ©   (2008-12-22 14:02) [7]

ShowMessage("Перед NOT: " + IntToStr(Integer(CList.CONTACT_LIST[id].FOLDEROPEN)));
CList.CONTACT_LIST[id].FOLDEROPEN := not CList.CONTACT_LIST[id].FOLDEROPEN;
ShowMessage("После NOT: " + IntToStr(Integer(CList.CONTACT_LIST[id].FOLDEROPEN)));


Что видишь ?


 
Calligraff ©   (2008-12-22 14:03) [8]


> @!!ex ©   (22.12.08 14:01) [6]
> > [5] Calligraff ©   (22.12.08 13:35)У меня переворачивает.
>  Что я делаю не так?

шутник..

Не на самом деле все нормально было, но чем больше у меня становится кода, и обработок, то появляются вот такие глюки


 
Сергей М. ©   (2008-12-22 14:06) [9]


> на самом деле все нормально было


Т.е. лыжи едут как им и положено)


 
Calligraff ©   (2008-12-23 10:55) [10]

Вот так сделал и все заработало:

procedure TformMain.lvContactListClick(Sender: TObject);
var
  id: Integer;
  isfldr: String;
  NotCurr: Boolean;
begin
if lvContactList.ItemIndex < 0 then exit;
isfldr := lvContactList.Items.Item[lvContactList.ItemIndex].SubItems.Strings[2];
if isfldr = "1" then begin
   id := StrToInt(lvContactList.Items.Item[lvContactList.ItemIndex].SubItems.Strings[3]);
   NotCurr := CList.CONTACT_LIST[id].FOLDEROPEN;
   NotCurr := not NotCurr;
   CList.CONTACT_LIST[id].FOLDEROPEN := NotCurr;
   ViewContactList(CLIST);
end;
end;


NotCurr := not NotCurr;

Глюк одним словом


 
Сергей М. ©   (2008-12-23 11:22) [11]


> Calligraff ©   (23.12.08 10:55) [10]


Если FOLDEROPEN - это поле структуры, объявленное как boolean, то никаких глюков быть не должно и лыжи обязаны ехать.
А иначе на дворе лето и под ногами асфальт)


 
Calligraff ©   (2008-12-23 11:48) [12]


> Сергей М.

Красиво сказал :D


 
Calligraff ©   (2008-12-23 11:48) [13]

На самом деле я так понял, что это глюк Delphi 6.
дело в том, что я уже не первый раз уже с этим сталкиваюсь..


 
Skyle ©   (2008-12-23 11:51) [14]


> Calligraff ©   (23.12.08 11:48) [13]

Таки тема глюка не раскрыта.


 
Palladin ©   (2008-12-23 11:52) [15]

6 лет работаю в d6 и ниразу глюка с булевыми значениями не встретил. Глюки они скорее всего совсем не там где ты думаешь. Между прочим, мы с тобой в одном городе живем, если верить анкете. За разумную порцию пива, могу проконсультировать ) ну либо встретить, впервые за 6 лет, глюк, хотя очень сильно в этом сомневаюсь...


 
{RASkov} ©   (2008-12-23 11:53) [16]

> [13] Calligraff ©   (23.12.08 11:48)
> дело в том, что я уже не первый раз уже с этим сталкиваюсь..

Более странно, что ты один с этим сталкиваешься)


 
{RASkov} ©   (2008-12-23 11:56) [17]

Автор, "положи" сюда код, который можно скопировать и вставить в среду делфи, без дополнительного редактирования и который даст именно этот эффект(глюк)....


 
Сергей М. ©   (2008-12-23 12:02) [18]


> Calligraff ©   (23.12.08 11:48) [13]


> это глюк Delphi 6


Вот тебе твой "глюк":

var
 i: boolean;
 b: Boolean;
..
 i := Boolean(5);
 b := not i;
 if b then ShowMessage("true") else ShowMessage("false")


Он будет исправно "глючить" и в Д5, и в Д6, и в Д7)


 
Calligraff ©   (2008-12-23 12:17) [19]

Palladin, Где работаешь? Как зовут? Может знакомы даже :)


 
Palladin ©   (2008-12-23 12:23) [20]


> Calligraff ©   (23.12.08 12:17) [19]

Аська есть?


 
Calligraff ©   (2008-12-23 13:43) [21]

450-355-355



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

Форум: "Прочее";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.006 c
2-1231743195
b@v
2009-01-12 09:53
2009.02.22
ComboBox


15-1230157223
istok2
2008-12-25 01:20
2009.02.22
Прикладная учетная система...


15-1230055660
TUser
2008-12-23 21:07
2009.02.22
О теории кайфа


6-1199304455
istok
2008-01-02 23:07
2009.02.22
Мониторинг трафика


2-1231741847
abhtr
2009-01-12 09:30
2009.02.22
Как отмечать записи в TListBox





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский