Tpagecontrol

Тема в разделе "Delphi - Компоненты", создана пользователем valentofer, 29 май 2008.

  1. valentofer

    valentofer Active Member

    Регистрация:
    10 ноя 2007
    Сообщения:
    38
    Симпатии:
    0
    И еще вопросик. Сразу извеняюсь за его тупость :)
    Как узнать, какая из вкладок(tabsheet) в PageControl активна в данный момент???
     
  2. Silver Wind

    Silver Wind Гость

    Запоминай алгоритм.
    В таких случаях пишешь в исходнике TPageControl становишься на эту надпись и жмешь Ctrl+F1. В итоге попадаешь в раздел справки по этой компаненте и только природная лень или полное незнание англиского языка может тебе помешать догадаться что искомые свойства называются ActivePage или ActivePageIndex.
     
  3. etc

    etc Гость

    А зачем Ctrl?
     
  4. valentofer

    valentofer Active Member

    Регистрация:
    10 ноя 2007
    Сообщения:
    38
    Симпатии:
    0
    попробовал, на buttonclick:
    label1.caption:= inttostr(pagecontrol1.activepageindex);

    В результате в лэйбл выводится не индексы вкладок, а какаета "порнография" )))
    по нажатии на кнопку в лэйбле "4444888" ))) Бред какойто :rolleyes:
     
  5. Silver Wind

    Silver Wind Гость

    Просто привычка от какой-то другой среды, но работает и так, так что както не задумывался.

    valentofer
    Выложи код, ошибка у тебя гдето еще, приведенный способ работоспособен, только что на всякий случай перепроверил.
     
  6. valentofer

    valentofer Active Member

    Регистрация:
    10 ноя 2007
    Сообщения:
    38
    Симпатии:
    0
    вылаживаю:
    Код (Text):
    TabInd:integer;
    begin
    TabInd:= TOtgruzkaViewFrame(CurrentFrame).sPageControl1.ActivePageIndex;
    Label1.Caption:=inttostr(TabInd);
    все вроде правильно :rolleyes:
     
  7. Silver Wind

    Silver Wind Гость

    Видимо все дело в этом:
    1. Ты уверен что CurrentFrame имеет тип TOtgruzkaViewFrame?
    Посмотри что вернет (CurrentFrame is TOtgruzkaViewFrame)
    2. Ты уверен что переменная CurrentFrame при данном обращении уже создана или еще создана?
    Проверь так Assigned(CurrentFrame)

    P.S. В обоих случаях результат логический.
     
  8. valentofer

    valentofer Active Member

    Регистрация:
    10 ноя 2007
    Сообщения:
    38
    Симпатии:
    0
    точно, не выполняестся:
    Код (Text):
    procedure TOtgruzka_Frame.sBitBtn1Click(Sender: TObject);
    var
    RecNom, TabInd:integer;
    begin
    if assigned(CurrentFrame) and (CurrentFrame is TOtgruzkaViewFrame) then
    TabInd:= TOtgruzkaViewFrame(CurrentFrame).sPageControl1.ActivePageIndex; // не выполняется почемуто?!
    RecNom := OtgruzkaConnect.ADOTable1_Mashine.RecNo;
    Label1.Caption:=inttostr(TabInd);
    //OtgruzkaEditForm.ShowModal;
    end;
    А почему??
    вот так создается у меня фрэйм:
    Код (Text):
     if Assigned(CurrentFrame) then FreeAndNil(CurrentFrame);
    CurrentFrame := TOtgruzkaViewFrame.Create(MainForm);
    MainForm.UpdateFrame(Sender);
    поидее в CurrentFrame будет TOtgruzkaViewFrame, но почему тогда не проходит IF в предыдущем коде???
     
  9. valentofer

    valentofer Active Member

    Регистрация:
    10 ноя 2007
    Сообщения:
    38
    Симпатии:
    0
    Модератор: удалено. // вы себе помочь не пожете, о какой помощи другим вы говорите? успокойтесь.

    Silver Wind, вам спасибо, наставили на путь истинный :rolleyes: Ошибку нашел, она заключалась в том что CurrentFrame была обьявлена 2 раза (в разных юнитах), поэтому перед выполнением вышеизложенного кода происходило переопределение CurrentFrame.

    P.S. Тему считаю решенной.
     

Поделиться этой страницей