| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > pagecontrol поиск и проверка. |
| Автор: Sanchezzz 19.7.2007, 23:56 | ||||
| задача состоит в следующем... чет я уже не знаю как сделать... MSGT, сообшение SUIN, имя номера типа аси. точнее это и есть закладки для аси... FNick имя нужно проверить пользователя в списке список в listview каптион содержит номер а его суб итем имя... проверяем сперва если он в списке если он есть проверяе нет ли его на закладках pagecontro а по названию закладок.. формат такой для списков listview "имя (2222996)" притом если она уже создана в закладках не создаем ее заново а переходем на нее и добавляем текс в контрол htmllite ну можно и мемо. все закладки создаются динамически .. есть и такой если в свиске не сушествует похожей записи. то когда приходит сообшение от не известного контакта.. то формат такой "(2222968)" . проверяем с помощью поиска по ззакладкам по свойству названия (Caption) если он есть то переходим на него и делаем его активным добавляем текст в мемо на нужной закладки.. если не создан то создаем закладку с мемо и добавляем туда. Если закладки созданы с такимже именем надо сделать чтоб они не созывались. вроде кода должно не много быть...Заранее спасибо вот что до этого накатал. но не правильно. приблизительно понять можно что я хочу..
это как создаются закладки
у кого нет HtmlLite или HtmlViewer то мемо... |
| Автор: Sanchezzz 20.7.2007, 20:40 |
| почему то на мои вопросы мало отвечаю может я не правильно излагаю их или много хочу.. все я пишу что то похожие на миранду и квип. когда сообщение проходит о на приходит в таком формате.. текс сообшения в строковом формате и номер от кого.. надо реализовать поиск по listview что и делается... if ListView2.Items.Count > 0 then for i := 0 to ListView2.Items.Count - 1 do if ListView2.Items.Item[i].Caption = SUIN then // если есть совпадения то берем инфу begin ListItem := ListView2.Items.Item[i]; FNick := ListView2.Items.Item[i].SubItems[LV_INDEX_NICK]; получаем ник LV_INDEX_NICK]номер колонки скажем 1 end; теперь начнем поиск по pagecontrol по его Pages if pagecontrol1.PageCount > 0 then for i := 0 to PageControl1.PageCount - 1 do begin if pagecontrol1.Pages[i].Caption=Fnick+' ('+SUIN+')' then begin // если такая закладка найдена пиреходим на нее и добавляем текс в динамический созданный на ней memo или htmllite PageControl1.ActivePageIndex:=i; // переходим на этот Pages with PageControl1 do if ActivePage.ControlCount > 0 then if ActivePage.Controls[0] is THtmlviewer then begin WB := THtmlviewer(ActivePage.Controls[0]); WB.LoadTextFromString(MSGT);//PChar(MSGT), Length(MSGT), ''); // memo.lines.add(MSGT); WB.VScrollBarPosition:=MaxInt; // 'это убрать можно это для полунка на htnlviewer в конец странице курсор. ------ сама задача в общем не сложна но чет какой то геморрой.. поиском по название по странице. и если ее нет то создать а если есть то переходим. |
| Автор: lukas 20.7.2007, 22:31 |
| организовывать поиск по визуальным компонентам извращение в данном случае.. лучше завести отдельные списки хотябы типа TStringList чтобы не париться с поиском... Советую все это грохнуть, хорошенько подумать, и написать заново. |
| Автор: Sanchezzz 20.7.2007, 22:44 |
| почему ? если задача такая что мне заранее создать n-ое количество закладок... тогда это не будет то что я хочу.. я думаю эта не такая сложная задача найти заголовок и проверить. как напишу код выложу. как по вашему изврошенсво... TStringList мне и нафиг не нужен в моей задачи. чем он мне поможет если узеры хоронятся у меня в listview и по колонкам расписаны данные... я с читаю что можно написать иначе. Жду еще ответов.. добавлено все всем спасибо кто суда глядел вопрос решён я все сделал. |