Я с этим тоже ковыряюсь, но не так успешно - постоянно отвлекают. Единственно могу сказать, что прототипы функций кажется надо в хедере описывать (*.h). Это по поводу вызова FSetting->SettingPenaltyShow(); И с таким вызовом ее надо описывать в теле класса FSetting. Но может я и не прав.
В остальном пока у меня глухо, вопросы примерно те же...
СПАСИБИЩЕ!!!
Я разобрался как вызвать функцию с другой формы.
Значит так...
Есть 2 формы.
1 Главная
2 Настройки
На главной МаинМеню в котором прописан Show для формы настроек.
Мой вопрос был в том как открыть нужный мне блок настроек
Содержание меню..
Настройки >
открываем вкладку общие в окне настроек
открываем вкладку штрыфы в окне настроек
[/list]
Fry__ меня толкнул на следующую мысль
Я прописал нужные мне функции, как функции класса моей формы (чесно методом ВЕЛИКОГО НАУЧНОГО ТЫКА)
Unit главной формы
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "rUnit.h"
#include "ABOUT.h"
#include "dataU.h"
#include "settingU.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::rmh_helpClick(TObject *Sender)
{
fr_help->Execute();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::rmh_aboutClick(TObject *Sender)
{
AboutBox->ShowModal();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
Form1->Left=(Screen->Width/2)-(Form1->Width/2);
Form1->Top=(Screen->Height/2)-(Form1->Height/2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mm_PenaltyClick(TObject *Sender)
{
FSetting->Show();
FSetting->SettingPenaltyShow();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mm_GeneralClick(TObject *Sender)
{
FSetting->Show();
FSetting->SettingGeneralShow();
}
//---------------------------------------------------------------------------
Header формы настроек
//---------------------------------------------------------------------------
#ifndef settingUH
#define settingUH
//---------------------------------------------------------------------------
#include
#include
#include
#include
#include
#include
#include
#include
//---------------------------------------------------------------------------
class TFSetting : public TForm
{
__published: // IDE-managed Components
TTreeView *SettingTree;
TGroupBox *PanelPenalty;
TGroupBox *GroupBox1;
TGroupBox *Penalty_List;
TDBGrid *DBGrid1;
TButton *But_pen_add;
TButton *But_pen_edit;
TButton *But_pen_del;
TLabel *Label1;
TGroupBox *PanelGeneral;
void __fastcall SettingTreeClick(TObject *Sender);
void __fastcall FormShow(TObject *Sender);
void __fastcall SettingGeneralShow();
void __fastcall SettingPenaltyShow();
private: // User declarations
public: // User declarations
// void __fastcall SettingGeneralShow();
// void __fastcall SettingPenaltyShow();
__fastcall TFSetting(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TFSetting *FSetting;
//---------------------------------------------------------------------------
#endif
И наконец cpp формы настроек
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "settingU.h"
#include "dataU.h"
//---------------------------------------------------------------------------
//void SettingGeneralShow();
//void SettingPenaltyShow();
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFSetting *FSetting;
//---------------------------------------------------------------------------
__fastcall TFSetting::TFSetting(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
//-----------------------Функции интерфейса--------------------------------
//---------------------------------------------------------------------------
void __fastcall TFSetting::SettingGeneralShow()
{
FSetting->PanelPenalty->Visible=false;
FSetting->PanelPenalty->Enabled=false;
FSetting->PanelGeneral->Align=alClient;
FSetting->PanelGeneral->Enabled=true;
FSetting->PanelGeneral->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TFSetting::SettingPenaltyShow()
{
FSetting->PanelGeneral->Enabled=false;
FSetting->PanelGeneral->Visible=false;
FSetting->PanelPenalty->Align=alClient;
FSetting->PanelPenalty->Visible=true;
FSetting->PanelPenalty->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TFSetting::SettingTreeClick(TObject *Sender)
{
switch (SettingTree->Selected->Index)
{
case 0:SettingGeneralShow(); break;
case 1:SettingPenaltyShow(); break;
default: ShowMessage("ошибочка");
}
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TFSetting::FormShow(TObject *Sender)
{
Left=(Screen->Width/2)-(Width/2);
Top=(Screen->Height/2)-(Height/2);
// SettingGeneralShow();
// SettingTree->Selected->
}
//---------------------------------------------------------------------------
Обратите внимание на
- Вызов из меню на главной будет выглядеть так:
void __fastcall TForm1::mm_PenaltyClick(TObject *Sender)
{
FSetting->Show();
FSetting->SettingPenaltyShow();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::mm_GeneralClick(TObject *Sender)
{
FSetting->Show();
FSetting->SettingGeneralShow();
}
//---------------------------------------------------------------------------
- В хедаре настрое добавлены следующие протатипы
void __fastcall SettingGeneralShow();
void __fastcall SettingPenaltyShow();
- И описание Функций теперь будет выглядеть так
void __fastcall TFSetting::SettingGeneralShow()
{
FSetting->PanelPenalty->Visible=false;
FSetting->PanelPenalty->Enabled=false;
FSetting->PanelGeneral->Align=alClient;
FSetting->PanelGeneral->Enabled=true;
FSetting->PanelGeneral->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TFSetting::SettingPenaltyShow()
{
FSetting->PanelGeneral->Enabled=false;
FSetting->PanelGeneral->Visible=false;
FSetting->PanelPenalty->Align=alClient;
FSetting->PanelPenalty->Visible=true;
FSetting->PanelPenalty->Enabled=true;
}
//---------------------------------------------------------------------------
[/list]
Вот что я добавил
__fastcall TFSetting::