Po pierwsze i przede wszystkim SpeedButton nie jest kontrolkÄ… lecz komponentem - obiektem klasy TSpeedButton.
Stan przycisku SpeedButton możesz zmienić właściwość Down tegoż obiektu, niemniej jednak właściwość AllowAllUp musi byś ustawiona na true, w przeciwnym razie komponent nie powróci do swojego stanu i nic tutaj nie pomoże.
Można posłużyć się jednak pewną sztuczką. Zostawiasz AllowAlUp na false tak jak chcesz, ale w zdarzeniu OnClose formularza Form2 przed zmianą stany przycisku, czyli przed ustawieniem SpeedButton->Down = false; najpierw ustawiasz AllowAllUp na true, potem Down na false i przywracasz AllowAllUp na false.
Kod może wyglądać tak:
Dla Form1 (Unit1.cpp)- Kod: Zaznacz cały
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h" // <--- tutaj odwołanie do Form2
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
Dla Form2 (Unit2.cpp)- Kod: Zaznacz cały
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Form1->SpeedButton1->AllowAllUp = true;
Form1->SpeedButton1->Down = false;
Form1->SpeedButton1->AllowAllUp = false;
}
//---------------------------------------------------------------------------
speedbutton.rar
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.