Так что ж ты хочешь? У тебя же текст берется из едитов 1-й формы в момент создания 3-й формы, т.е. однократно!
void __fastcall TForm3::FormCreate(TObject *Sender)
{
Label14->Caption=Form1->Edit2->Text;
}
Событие OnCreate срабатывает после создания формы Form3. У тебя формы создаются последовательно: 1-ая, 2-ая, 3-я:
Application->CreateForm(__classid(TForm1), &Form1);
Application->CreateForm(__classid(TForm2), &Form2);
Application->CreateForm(__classid(TForm3), &Form3); // тут!
Значит, Label14 обновляется всего один раз - когда создалась форма №3. Чтобы динамически обновлять Label14 на форме 3 при изменении Edit2 на форме 1, тебе надо прописать в OnChange этого едита:
Form3->Label14->Caption = Edit2->Text;
А переменная a здесь никакой роли не играет.
PS. Общее замечание к проекту: проект плохо организован. Везде глобальные переменные, нет классовых методов + перегруженность визуальными компонентами. Как вариант, лучше создавать контролы динамически.