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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
6-1199280101
Venkin
2008-01-02 16:21
2009.02.22
отправить картинку на radikal.ru (INDY)


1-1207894891
webpauk
2008-04-11 10:21
2009.02.22
проблема Listview


3-1215427949
REA
2008-07-07 14:52
2009.02.22
Вложенный запрос с 2мя параметрами


2-1231487437
321
2009-01-09 10:50
2009.02.22
abstracts methods


4-1205435861
Guest312
2008-03-13 22:17
2009.02.22
Ole перехват?