Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.297 c
1-31203
Dream
2003-06-28 12:43
2003.07.10
проблемы с memo ( смешно конечно но я по моему уже гоню )


8-31363
reticon
2003-03-15 18:04
2003.07.10
вывод текста


14-31409
yu-roman
2003-06-22 02:40
2003.07.10
Как уменьшить вес .exe файла


8-31369
spogi
2003-03-23 01:44
2003.07.10
FileListBox + problema=?


7-31520
Alex134
2003-04-23 22:50
2003.07.10
Проблемы с отладкой, вопрос серьезный





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский