• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Tpagecontrol

  • Автор темы Автор темы valentofer
  • Дата начала Дата начала

valentofer

Active member
10.11.2007
37
0
И еще вопросик. Сразу извеняюсь за его тупость :)
Как узнать, какая из вкладок(tabsheet) в PageControl активна в данный момент???
 
Запоминай алгоритм.
В таких случаях пишешь в исходнике TPageControl становишься на эту надпись и жмешь Ctrl+F1. В итоге попадаешь в раздел справки по этой компаненте и только природная лень или полное незнание англиского языка может тебе помешать догадаться что искомые свойства называются ActivePage или ActivePageIndex.
 
попробовал, на buttonclick:
label1.caption:= inttostr(pagecontrol1.activepageindex);

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

valentofer
Выложи код, ошибка у тебя гдето еще, приведенный способ работоспособен, только что на всякий случай перепроверил.
 
вылаживаю:
Код:
TabInd:integer;
begin
TabInd:= TOtgruzkaViewFrame(CurrentFrame).sPageControl1.ActivePageIndex;
Label1.Caption:=inttostr(TabInd);
все вроде правильно :rolleyes:
 
Видимо все дело в этом:
TOtgruzkaViewFrame(CurrentFrame)
1. Ты уверен что CurrentFrame имеет тип TOtgruzkaViewFrame?
Посмотри что вернет (CurrentFrame is TOtgruzkaViewFrame)
2. Ты уверен что переменная CurrentFrame при данном обращении уже создана или еще создана?
Проверь так Assigned(CurrentFrame)

P.S. В обоих случаях результат логический.
 
точно, не выполняестся:
Код:
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;
А почему??
вот так создается у меня фрэйм:
Код:
 if Assigned(CurrentFrame) then FreeAndNil(CurrentFrame);
CurrentFrame := TOtgruzkaViewFrame.Create(MainForm);
MainForm.UpdateFrame(Sender);
поидее в CurrentFrame будет TOtgruzkaViewFrame, но почему тогда не проходит IF в предыдущем коде???
 
Потому что вам еще рано программы писать. Надо сначала на кошках тренироваться, тогда вопросы глупые перестанете задавать и все больше ответы находить будете.
Модератор: удалено. // вы себе помочь не пожете, о какой помощи другим вы говорите? успокойтесь.

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

P.S. Тему считаю решенной.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab