Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> pagecontrol поиск и проверка. 
V
    Опции темы
Sanchezzz
  Дата 19.7.2007, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 5
Всего: 60



задача состоит в следующем...  чет я уже не знаю как сделать... 
MSGT, сообшение
SUIN, имя номера типа аси. точнее это и есть закладки для аси...
FNick имя

нужно проверить пользователя в списке список в listview каптион содержит номер а его суб итем имя... 
проверяем сперва если он в списке если он есть проверяе нет ли его на закладках pagecontro а по названию закладок.. формат такой для списков listview "имя (2222996)" притом если она уже создана в закладках не создаем ее заново а переходем на нее и добавляем текс в контрол htmllite  ну можно и мемо. все закладки создаются динамически .. есть и такой если в свиске не сушествует похожей записи. то когда приходит сообшение от не известного контакта.. то формат такой "(2222968)" . проверяем с помощью поиска по ззакладкам по свойству названия (Caption) если он есть то переходим на него и делаем его активным добавляем текст в мемо на нужной закладки..
если не создан то создаем закладку с  мемо и добавляем туда. 
Если закладки созданы с такимже именем надо сделать чтоб они не созывались. вроде кода должно не много быть...Заранее спасибо

вот что до этого накатал. но не правильно. приблизительно понять можно что я хочу..

Код

var
 i,z,v: Integer;
 MSGT,SUIN,FNick:string;
 ListItem: TListItem;
 WB: THtmlviewer;

begin
MSGT:=sendmsg.Text;
SUIN:=edit1.Text;

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];
end;
if pagecontrol1.PageCount > 0 then
for i := 0 to PageControl1.PageCount - 1 do begin
if pagecontrol1.Pages[i].Caption=Fnick+' ('+SUIN+')' then begin
PageControl1.ActivePageIndex:=i;
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), '');
WB.VScrollBarPosition:=MaxInt;
end;
end;
end;
if pagecontrol1.PageCount > 0 then
for v := 0 to PageControl1.PageCount - 1 do begin
if pagecontrol1.Pages[v].Caption='('+SUIN+')' then begin
PageControl1.ActivePageIndex:=v;
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), '');
WB.VScrollBarPosition:=MaxInt;
end;
end;
end;
if pagecontrol1.PageCount > 0 then
for z := 0 to PageControl1.PageCount - 1 do begin
if pagecontrol1.Pages[z].Caption <> '('+suin+')' then exit;
CreateTAb('',suin);
WB := THtmlviewer(pagecontrol1.ActivePage.Controls[0]);
WB.LoadTextFromString(MSGT);//PChar(MSGT), Length(MSGT), '');
WB.VScrollBarPosition:=MaxInt;
end; 



это как создаются закладки
Код

function tform1.CreateTab(uNick, sCaption: string): TTabSheet;
var
 ts: TTabSheet;
 HT: Thtmlviewer;
begin

 SetCapture(ListView2.Handle);
 ts := TTabSheet.Create(PageControl1);
 Result := ts;
 try

   ts.PageControl := PageControl1;
   ts.Parent := PageControl1;
   ts.Caption := Format('%s (%s)', [unick,sCaption]);

   ts.PageIndex := PageControl1.ActivePageIndex + 1;

      HT := Thtmlviewer.Create(ts);

   TControl(HT).Parent := ts;

   HT.Align := alClient;
   HT.Visible := True;
   PageControl1.ActivePage := ts;

 except
   ts.Free;
 end;
end; 


у кого нет HtmlLite или HtmlViewer то мемо...  smile пример ...



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Sanchezzz
  Дата 20.7.2007, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 5
Всего: 60



почему то на мои вопросы мало отвечаю может я не правильно излагаю их или много хочу..
все я пишу что то похожие на миранду и квип. когда сообщение проходит о на приходит в таком формате.. текс сообшения в строковом формате и номер от кого.. надо реализовать поиск по
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 в конец странице курсор.
------
сама задача в общем не сложна но чет какой то геморрой.. поиском по название по странице. и если ее нет то создать а если есть то переходим. 


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
lukas
Дата 20.7.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



организовывать поиск по визуальным компонентам извращение в данном случае.. лучше завести отдельные списки хотябы типа TStringList чтобы не париться с поиском... Советую все это грохнуть, хорошенько подумать, и написать заново. 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Sanchezzz
  Дата 20.7.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 5
Всего: 60



почему ? если задача такая что мне заранее создать n-ое количество закладок... тогда  это не будет то что я хочу..
я думаю эта не такая сложная задача найти заголовок и проверить. как напишу код выложу. как по вашему изврошенсво... TStringList мне и нафиг не нужен в моей задачи. чем он мне поможет если узеры хоронятся у меня в listview и по колонкам расписаны данные... я с читаю что можно написать иначе. Жду еще ответов.. smile 
добавлено 

все всем спасибо кто суда глядел вопрос решён я все сделал. smile 

Это сообщение отредактировал(а) Sanchezzz - 21.7.2007, 01:19


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0896 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.