Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.10.2010, 20:37
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию ICQpeg.Pages[i].Hint = UIN

мы ищем есть ли вкладка с Hint = UIN
и как нам сделать если мы нашли то в мемо находящийся в этой вкладке добавляем (GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') :'+ Msg)
может так?
Код:
for i := 0 to ICQpeg.PageCount - 1
do
if ICQpeg.Pages[i].Hint = UIN then begin
  TMemo(ICQpeg.Page.hint = UIN)Lines.Add(GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') :'+ Msg);
  Exit;
  end;
Ответить с цитированием
  #2  
Старый 21.10.2010, 21:35
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

чтото мне подсказывает что такое равно не прокатит
Ответить с цитированием
  #3  
Старый 21.10.2010, 22:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

угу, не прокатит.
подробно, где находится то Memo, куда тебе надо добавит информацию.
Ответить с цитированием
  #4  
Старый 22.10.2010, 07:36
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

у меня есть несколько вкладок в кажой 1 мемо,
для пирмера вот так
Код:
TMemo(ICQpeg.ActivePage.Controls[0]).Lines.Add
находим мемо в активной вкладке и добавляем в него, а мне нужно если найдена вкладка с Hint = UIN то мы добавляем текст в мемо который находится во вкладке в которой Hint = UIN
Ответить с цитированием
  #5  
Старый 22.10.2010, 08:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Видими вам нужно это:
Код:
Var i: Integer;
    Control: TControl;
begin
 for i := 0 to Form8.ComponentCount - 1
 do if Assigned(TControl(Form8.Components[i]).Parent)
    then begin
         Control := TControl(Form8.Components[i]);
         if (Control.Parent.Name = 'TabSheet3') and (Control.ClassType = TMemo)
         then begin
              TMemo(Control).Text := 'Привет от TabSheet3';
              Break;
              end;
    end;
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 22.10.2010, 11:36
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

не то, тут с Form, ClassType и т.д.
Ответить с цитированием
  #7  
Старый 22.10.2010, 13:16
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Код:
Var i: Integer;
begin
for i := 0 to ICQpeg.PageCount - 1
do
if ICQpeg.Pages[i].Hint = UIN then begin
 Control := ICQpeg.Pages[i].
if (Control.Parent.hint = UIN)
         then begin
              TMemo(Control).Lines.Add(GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') :'+ Msg);
             Break;
              end;

эмм так имеете ввиду?
Ответить с цитированием
  #8  
Старый 22.10.2010, 18:57
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Сообщение от ALexandr555
не то, тут с Form, ClassType и т.д.
Ну соображалку то включите. Замените проверяемое свойство и всех делов:
Было:
Код:
if (Control.Parent.Name = 'TabSheet3') and (Control.ClassType = TMemo)

А для проверки хинта так:
Код:
if (Control.Parent.Hint = UIN) and (Control.ClassType = TMemo)
И потом как понимать это?
Цитата:
не то, тут с Form, ClassType и т.д.
У вас, что PageControl в воздухе висит? Он у вас расположен на форме, а вкладки хоть и имеют родителя TPageControl на этой-же форме располагаются.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #9  
Старый 22.10.2010, 19:03
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Код:
Var
 i: Integer;
 Control: TControl;

begin
for i := 0 to ICQpeg.PageCount - 1
do
if ICQpeg.Pages[i].Hint = UIN then begin
 Control := ICQpeg.Pages[i].
if Control.Parent.Hint = UIN) and (Control.ClassType = TMemo)         then begin
              TMemo(Control).Lines.Add(GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') :'+ Msg);
             Break;
              end;

ну а так будет работать?
Ответить с цитированием
  #10  
Старый 22.10.2010, 20:41
Аватар для ALexandr555
ALexandr555 ALexandr555 вне форума
Специалист
 
Регистрация: 09.10.2010
Адрес: Тольятти
Сообщения: 803
Версия Delphi: Delphi 7
Репутация: 2064
По умолчанию

Код:
procedure TfrmMain.ICQClientMessageRecv(Sender: TObject; Msg, UIN: String);
var
i: integer;
Control: TTabSheet;
begin
for i := 0 to ICQpeg.PageCount - 1
do
if ICQpeg.Pages[i].Hint = UIN then begin
Control := TTabSheet(ICQpeg.Pages[i]);
if (Control.Parent.Hint = UIN) and (Control.ClassType = TMemo)      then begin
              TMemo(Control).Lines.Add(GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') :'+ Msg);
             Break;
              end
вот не работает не добавляет
Ответить с цитированием
  #11  
Старый 22.10.2010, 22:58
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Ну если вы хотите именно через TTabSheet тогда надо так:
Код:
procedure TForm8.FormCreate(Sender: TObject);
Var i,j: Integer;
    Control: TControl;
begin
 for i := 0 to PageControl1.PageCount - 1
 do begin
    if PageControl1.Pages[i].Hint = UIN
    then begin
         for j := 0 to TTabSheet(PageControl1.Pages[i]).ControlCount - 1
         do begin
            Control := TTabSheet(PageControl1.Pages[i]).Controls[j];
            if Control.ClassType = TMemo
            then begin
                 TMemo(Control).Lines.Add(GetNickFor(StrToInt(UIN)) + ' (' + UIN + ') :'+ Msg);
                 Break;
                 end;
            end;
         Break;
         end;
    end;
end;
PS: Вы зря для сообщений TMemo взяли, более перспективный компонент TRichEdit. Там можно и шрифтом/цветом выделить и эмоции картинками отображать.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 23.10.2010 в 00:11.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025