|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
проверить имеется ли...
Как проверить имеется ли у нас вкладка в PageControl1 с названием "х"
и если не имеется то мы создаем вкладку с таким названием Код:
var ts: TTabSheet; begin "тут проверка" ts: = TTabSheet.Create(PageControl1); ts.Caption: = "х"; end |
#2
|
||||
|
||||
очень нужно
|
#3
|
||||
|
||||
Код:
for i := 0 to PageControl1.PageCount - 1 do if PageControl1.Pages[i].Caption = 'x' then ShowMessage('Нашли!'); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
||||
|
||||
for i := 0 to PageControl1.PageCount - 1
я не пойму для чего это |
#5
|
||||
|
||||
Цитата:
Если его убрать, то будет осуществляться проверка только 1й панели... ЗЫ "панели" - вкладки в PageControl Помогаю за Спасибо |
#6
|
||||
|
||||
Код:
procedure TfrmMain.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String); var i: integer; begin AddEvent('От ' + GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') принято сообщение: [' + Msg + ']'); for i := 0 to PageControl1.PageCount - 1 do if PageControl1.Pages[i].Caption = GetNickFor(StrToInt(UIN)) then ShowMessage('Нашли!') else TTabSheet.Create(ICQpeg); ICQts := TTabSheet.Create(ICQpeg); ICQts.PageControl := ICQpeg; ICQts.Parent := ICQpeg; ICQts.Caption := GetNickFor(StrToInt(UIN)); ICQts.PageIndex := 1; end; не выходит он каждый раз создает новую вкладку |
#7
|
||||
|
||||
Код:
procedure TfrmMain.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String); var i: integer; begin AddEvent('От ' + GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') принято сообщение: [' + Msg + ']'); for i := 0 to PageControl1.PageCount - 1 do if PageControl1.Pages[i].Caption = GetNickFor(StrToInt(UIN)) then begin ShowMessage('Нашли!') Exit; end; TTabSheet.Create(ICQpeg); ICQts := TTabSheet.Create(ICQpeg); ICQts.PageControl := ICQpeg; ICQts.Parent := ICQpeg; ICQts.Caption := GetNickFor(StrToInt(UIN)); ICQts.PageIndex := 1; end; Так работать должно, но это не идеал Помогаю за Спасибо |
#8
|
||||
|
||||
пардон
Код:
procedure TfrmMain.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String); var i: integer; begin AddEvent('От ' + GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') принято сообщение: [' + Msg + ']'); for i := 0 to PageControl1.PageCount - 1 do if PageControl1.Pages[i].Caption = GetNickFor(StrToInt(UIN)) then ShowMessage('Нашли!') else TTabSheet.Create(ICQpeg); ICQts := TTabSheet.Create(ICQpeg); ICQts.PageControl := ICQpeg; ICQts.Parent := ICQpeg; ICQts.Caption := GetNickFor(StrToInt(UIN)); ICQts.PageIndex := 1; end; это работает просто не то указано было, он находит, выводит сообщение и создает еще, тоесть else чтото не работает |
#9
|
|||
|
|||
Ну так правильно, судя по коду, он создает лист столько раз сколько раз не находит лист с указанным названием. Если закладка найдена, то надо покидать цикл поиска, к примеру, тем способом что указал v1s2222.
|
#10
|
||||
|
||||
так мне нужно если закладка надена то ничего не делать, если найдена то создать
|
#11
|
||||
|
||||
Создает всегда потому, что ты не напиал else begin...end:
Код:
procedure TfrmMain.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String); var i: integer; begin AddEvent('От ' + GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') принято сообщение: [' + Msg + ']'); for i := 0 to PageControl1.PageCount - 1 do if PageControl1.Pages[i].Caption = GetNickFor(StrToInt(UIN)) then ShowMessage('Нашли!') else begin TTabSheet.Create(ICQpeg); ICQts := TTabSheet.Create(ICQpeg); ICQts.PageControl := ICQpeg; ICQts.Parent := ICQpeg; ICQts.Caption := GetNickFor(StrToInt(UIN)); ICQts.PageIndex := 1; end; end; И вот по последнему вопросу (если вкладка не найдена, то создаем): Код:
procedure TfrmMain.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String); var i: integer; begin AddEvent('От ' + GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') принято сообщение: [' + Msg + ']'); for i := 0 to PageControl1.PageCount - 1 do if PageControl1.Pages[i].Caption <> GetNickFor(StrToInt(UIN)) then begin TTabSheet.Create(ICQpeg); ICQts := TTabSheet.Create(ICQpeg); ICQts.PageControl := ICQpeg; ICQts.Parent := ICQpeg; ICQts.Caption := GetNickFor(StrToInt(UIN)); ICQts.PageIndex := 1; end; end; Помогаю за Спасибо |
#12
|
||||
|
||||
ну верхний варинт лучше если она найдена ниче не делаем иначе, тоесть не найдена создаем
|
#13
|
||||
|
||||
нет верхнее не верно он так вобще ничего не создает
|
#14
|
||||
|
||||
и посденее тоже не создает при ненахождении
|