Предлагаю свой вариант с эффектом прозрачности форм. Сначала запускается вторая форма, затем кнопкой она уничтожается и запускает первую форму с "проявлением" =========================================== | Код | 1. Основной файл:
#include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Unit1.cpp", Form1); USEFORM("Unit2.cpp", Form2); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; } ======================================================= 2. Файл главной формы:
#include <vcl.h> #pragma hdrstop
#include "Unit1.h" #include "Unit2.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
} //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { TForm2 *F = new TForm2(Application); F->Show(); this->Transparent(0); } //--------------------------------------------------------------------------- void __fastcall TForm1::Transparent(int Transparency) { long ExtStyle = GetWindowLong(this->Handle, GWL_EXSTYLE); SetWindowLong(this->Handle, GWL_EXSTYLE, ExtStyle | WS_EX_LAYERED); SetLayeredWindowAttributes(this->Handle, 0 , (255 * Transparency) / 100,LWA_ALPHA); } =================================================================== 3. Файл второй формы (с кнопкой): #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::Button1Click(TObject *Sender) { Close(); for(int i=0;i<105;i+=5) Form1->Transparent(i);
} //--------------------------------------------------------------------------- void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } //---------------------------------------------------------------------------
|
Это сообщение отредактировал(а) SVN74 - 30.10.2008, 21:53
|