Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2010, 17:42   #1
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
Вопрос Потеря позиции (Index)

Еще одна часть моей проблемы:
Код:
dr.Parent.FindChildControl(dr.Directory);
  dr.ItemIndex:=3;
  for i:=1 to dr.Count-dr.ItemIndex+1 do
    begin
    stree.Items.AddChild(stree.Items[0],dr.Items[dr.ItemIndex]);
    stree.Items.Item[stree.Items.GetFirstNode.Index+i].Selected:=True;
    stree.Selected.ImageIndex:=1;
    stree.Selected.SelectedIndex:=1;

    dr.ItemIndex:=dr.ItemIndex+1;
    childFolders:=childFolders+1;
    childFolder[i]:=stree.Items.Item[0].Text+'\'+dr.Items[dr.ItemIndex];
    childFolderIndex[i]:=stree.Items.Item[stree.Items.GetFirstNode.Index+i].Index;
  end;
Айтимы с dr (directory list) перекидываются в дерево stree (TreeView). Каждому перекинутому айтиму присваиваю индекс картинки равный единице (SelectIndex и ImageIndex). Но почему-то не присваивается ImageIndex самому первому айтиму, а вот Selected - присваивается о_О как так, если у них индексы одинаковы? Я вот сижу пытаюсь понять - никак. По проверке сообщением, показалось, что у меня цикл лишний один раз повторяется в начале, если так - то как убрать это? (глядишь, может это повлияет на индексы).
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Старый 16.06.2010, 19:21   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Код:
for i:=1 to dr.Count-dr.ItemIndex+1 do
    begin
//AddChild это функция, которая возвращает добавляемый Item
// который можно и нужно использовать
    ritm:=stree.Items.AddChild(stree.Items[0],dr.Items[dr.ItemIndex]);
    ritm.Selected:=True;
    ritm.ImageIndex:=1;
    ritm.SelectedIndex:=1;

    dr.ItemIndex:=dr.ItemIndex+1;
    childFolders:=childFolders+1;
    childFolder[i]:=stree.Items.Item[0].Text+'\'+dr.Items[dr.ItemIndex];
    childFolderIndex[i]:=ritm.Index;
  end;
Код:
stree.Selected.ImageIndex:=1; // присвоение первому из выделенных
   stree.Selected.SelectedIndex:=1;
MultiSelect =True
добавили
выделили(выделен 1)
добавили
выделили(выделено 2)
добавили
выделили(выделено 3)
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 16.06.2010 в 19:25.
evg_m вне форума Ответить с цитированием
Старый 16.06.2010, 19:41   #3
Sensizu
Otsukitakitte
Форумчанин
 
Аватар для Sensizu
 
Регистрация: 01.10.2009
Сообщений: 126
По умолчанию

evg_m, Ваш код несомненно правильный, но проблему он не решил. Но вот я порылся в коде и увидел, что другой цыкл блокирует это первое действие... Я его исправил и всё работает =)
Помог - ставь плюс.
$("question").onAnswer(function() { $(this).getItWright(true); });
Sensizu вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потеря данных Марина520 Microsoft Office Word 0 13.06.2010 22:48
Потеря значений. С++ Снежинкина Помощь студентам 0 27.05.2010 13:03
Потеря переменной Amen PHP 2 27.10.2009 02:26
Потеря фокуса окна в приложении Dr.Badnezz Общие вопросы Delphi 4 01.12.2008 23:18
Потеря данных в Grid chingiz БД в Delphi 8 29.07.2007 00:17