![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
и посденее тоже не создает при ненахождении
|