Co do tego wskaźnika na Form1 to jeżeli np. obiekt SQL znajduje się na formularzu Form1, to nie musisz pisać Form1->SQL->... wystarczy samo SQL->...
Jeżeli np. obiekt SQL znajduje się na Form1 a Ty odwołujesz się do niego z Form2 to nie ma rady musisz adresować obiekt poprzez Form1->SQL.
Możesz stworzyć funkcję, która jako argument będzie posiadała wskaźnik na obiekt SQL, ale adresując ten wskaźnik, jeżeli funkcja i obiekt nie są przypisane do klasy formularza Form1 musisz używać adresowania poprzez Form1->SQL->...
Zakładam, że SQL to obiekt typu TSQLDataSet
(na przyszłość podawaj pełną nazwę obiektu by nie trzeba się domyślać), przykład i wywołanie funkcji:
// przykładowa funkcja
- Kod: Zaznacz cały
//w pliku nagłówkowym np. Unit2.h sekcja private:
private:
void __fastcall FunkcjaSQL(TSQLDataSet *SQL); // deklaracja funkcji
//-------------------------
//w pliku źródłowym np. Unit1.cpp
#include "Unit1.h" // zawiadomienie o formularzu Form1
void __fastcall Form2::FunkcjaSQL(TSQLDataSet *SQL) // definicja funkcji
{
SQL->CommandText = insert;
if(SQL->ExecSQL(True) == 1)
{
ShowMessage("Nowy dystrybutor został dodany!");
}
}
Wywołanie funkcji - zakładając, że funkcja i jej wywołanie znajdują się na tym samym formularzu np. Form2
- Kod: Zaznacz cały
void __fastcall TForm2::Button1Click(TObject *Sender)
{
FunkcjaSQL(Form1->SQL);
}
Co do tego ComboBox to postępujesz podobnie:
- Kod: Zaznacz cały
void __fastcall TForm1::Funkcja(TComboBox *ComboBox)
{
ComboBox->... coś tam ...
}
//---------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Funkcja(ComboBox1);
}
//---------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Funkcja(ComboBox2);
}
Koniecznie przeczytaj artykuł
w serwisie Cyfrowy
Baron w dziale
teoria
Przekazywanie obiektów i funkcji pomiędzy formularzami.Pomocny może też być artykuł:
Cyfrowy
Baron dział:
teoria
Funkcje