Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
ВнизListView Найти похожие ветки
← →
Vint_XXX (2003-06-27 10:29) [0]Как сделать так что бы При клике на какой-нибудь итем происходило какое-нибудь событие, а при клике на другой итем другое и так далее.
← →
Кот Бегемот (2003-06-27 10:35) [1]А ты сделай какой-нибудь обработчик клика и выбирай какой-нибудь их каких-нибудь итемов ты кликал.
← →
Palladin (2003-06-27 10:36) [2]:)
← →
Vint_XXX (2003-06-27 10:39) [3]пробовал, не работает
← →
Palladin (2003-06-27 10:48) [4]значит это не возможно
← →
Vint_XXX (2003-06-27 10:51) [5]возможно, я хочу сделать так что при нажатии на конкретный итем (а их будет около 5000) в TMemo будет выводится текст различный для каждого итема
← →
Palladin (2003-06-27 10:53) [6]ну ты же пробовал и у тебя не работает, значит не возможно
← →
Vint_XXX (2003-06-27 10:55) [7]я не пробовал, я не знаю как это сделать, но я видел работоспособный пример оной программы.
← →
mrcat (2003-06-27 10:57) [8]Vint_XXX © (27.06.03 10:51)
WM_NOTIFY
+HDN_ITEMCLICK
← →
Vint_XXX (2003-06-27 10:57) [9]mrcat не понял???
← →
Palladin (2003-06-27 10:58) [10]ах значит уже не пробовал... выше немножко другое написано...
ну раз не пробовал, наверно стоит попробовать? как ты думаешь?
← →
Vint_XXX (2003-06-27 10:59) [11]я пробовалсделать то но не другое, то работает, другое нет
← →
Palladin (2003-06-27 11:02) [12]ты посмоти внимательней на вкладке Events в Object Inspector у TListView есть пониже замечательное событие...
← →
mrcat (2003-06-27 11:03) [13]Vint_XXX © (27.06.03 10:57)
что не понятно, конкретно?
← →
Vint_XXX (2003-06-27 11:05) [14]mrcat не понятно что ты написал
Palladin какое? у меня Delphi с собой нет
← →
Юрий Федоров (2003-06-27 11:06) [15]А если один сделать евент на разный итем при клике но текст разный в мемо?
← →
Palladin (2003-06-27 11:07) [16]будешь удивлен, но оно так и называется TListView.OnSelectItem
есть свойсво TListView.Selected если будешь на OnClick писать обработчик
← →
Vint_XXX (2003-06-27 11:13) [17]Юрий Федоров извини за тупой вопрос, но как???
← →
Юрий Федоров (2003-06-27 11:15) [18]Каждому итему соответствует текст, который нужно вывести в мемо.
При событии TListView.OnSelectItem ты получаешь выделенный элемент. У него есть св-во Data : pointer, в котором можно хранить в виде PChar указатель на нужный текст. Это лишь один из многочисленных вариантов
← →
DVM (2003-06-27 11:18) [19]
> Vint_XXX ©
Вообще-то не мешало бы книжку по Делфи почитать. Неважно какую. А то, чувствую, релиза Вашей замечательной проги мы не увидим:)
Я вот всю жизнь мечтал о проге, чтобы был ЛистВью и Мемо и тыкая мышкой в ЛистВью я бы видел разный текст в Мемо. Сам пробовал писать, но не нашел обработчиков событий.:)
← →
Digitman (2003-06-27 11:40) [20]
> Vint_XXX
procedure TФорма.MyListViewChange(Sender: TObject; Item: TListItem; Change: TItemChange);
begin
case Item.Index of
0: (кликнули на 0-м итеме, в Мемо вывожу такой-то текст);
1: (кликнули на 1-м итеме, в Мемо вывожу другой текст);
...
N: (кликнули на N-м итеме, в Мемо вывожу N-ный текст);
end;
end;
← →
DVM (2003-06-27 11:42) [21]
> Digitman ©
у него их 5000... Не годится:)
← →
Digitman (2003-06-27 11:46) [22]
> DVM
это почему же ?) незай уточняет задачу - можно ж и без case обойтись) ... да и нужно)))
← →
Vint_XXX (2003-06-27 12:23) [23]у меня сорти ровка идет не по нумеру итемов, а по их названию, но бог с ней, с сортировкой.
>Юрий Федоров © (27.06.03 11:15)
>Каждому итему соответствует текст, который нужно вывести в мемо.
>При событии TListView.OnSelectItem ты получаешь выделенный
>элемент. У него есть св-во Data : pointer, в котором можно
>хранить в виде PChar указатель на нужный текст. Это лишь один
>из многочисленных вариантов
Как в этот поинтер впихнуть текст?
← →
Digitman (2003-06-27 12:29) [24]
> Vint_XXX
текст "впихивается" не в "пойнтер", а в область памяти, которая должна быть выделена перед этим любым удобным способом (например, GetMem), и указатель на которую собственно и должен быть записан и храниться в св-ве Data.
в момент "клика" в событии OnChange() ты получаешь ссылку на Item: TTreeItem, получаешь адрес местонахождения в памяти строки по значению св-ва PChar(Item) и - пользуешь строку !
← →
Palladin (2003-06-27 12:29) [25]намекать бесполезно...
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
Memo1.Text:=Item.Caption
end;
← →
Юрий Федоров (2003-06-27 12:32) [26]Весь вопрос в том, откуда ты берешь этот самый текст, в каком виде он присутствует в программе?
Вообще см. DVM © (27.06.03 11:18),
тут именно книга нужна, F1 недостаточно
← →
Vint_XXX (2003-06-27 12:35) [27]Digitman Я прекрасно понимая что такое getmem и как оно реализуется, но есть такая трабла, у меня оно в данном случае не работает
← →
Юрий Федоров (2003-06-27 12:42) [28]три этапа.
1. Заполнение св-ва TListItem.Data
var s: string; //тут текст
ListItem.Data:=StrNew(s);
2. Заполнение мемо :
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
Selected: Boolean);
begin
if Selected then
Memo1.Lines.Text:=PChar(Item.Data);
end;
3. Освобождение памяти
procedure TForm1.ListView1Deletion(Sender: TObject;
Item: TListItem);
begin
StrDispose(PChar(Item.Data));
end;
Хотя если уже и getmem не работает, то ничто не спасет отца русской демократии :-)
← →
Digitman (2003-06-27 12:43) [29]
> Vint_XXX
> есть такая трабла, у меня оно в данном случае не работает
в каком случае-то ?) никаких "случаев" я не вижу)
Ни кода ни ..
← →
Кот Бегемот (2003-06-27 13:43) [30]Удалено модератором
← →
Zemal (2003-06-27 13:55) [31]Удалено модератором
← →
Vint_XXX (2003-06-27 15:13) [32]в конце - концов я енто реализовал но немного по другому. Я создал файл, в котором должно быть обязательно четное кол-во строк: в первой строке идет название итема, во второй инфа о нем (та которая в TMemo), в третей название, в четвертой инфа и т д,
потом всче это нумерую, нечетные строки переходят в итемы а четные в переменную. Потом обрабатываю событие TListView.OnSelectItem и при выбранном нужном итеме в TMemo идет о нем вся инфа (главное не забыть в TMemo WorldWrap)
← →
Digitman (2003-06-27 15:26) [33]
> Vint_XXX
а какое отношение все это имеет к изначальной теме вопроса ?
никакого)
если уж на то пошло, то нет никакой необходимости хранить подобную инф-цию в отд.файле
при заранее спроектированном (на этапе дизайна) образе дерева "название итема" (т.е. его св-во Caption) будет автоматически сохранено в ресурсах формы.
а "инфу о нем" вполне можно записать в ресурсы той же формы отдельным ("вручную" создаваемым) элементом соответствующего ресурса-списка.
можно вообще и не заниматься этой ерундой с файлами и ресурсами, если содержимое дерева после загрузки не планируется модифицировать.
достаточно создать статический массив строк, каждый элемент которого будет иметь индекс, соответствующий нужному индексу treeitem"а.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.01 c