Как устранить зависание при печати Quick
Report в потоке.
Компилятор: C++ Builder
Для этого необходимо вызывать методы и
свойства VCL через Synchronize().
Следующий пример демонстрирует это:
//-------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
//-------------------------------------------------------------------
// Метод Synchronize используется следующим образом:
//
// Synchronize(UpdateCaption);
//
// где UpdateCaption выглядит примерно так:
//
// void __fastcall PrintQReport::UpdateCaption()
// {
// Form1->Caption = "Updated in a thread";
// }
//-------------------------------------------------------------------
__fastcall PrintQReport::PrintQReport(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//-------------------------------------------------------------------
void __fastcall PrintQReport::Execute()
{
//---- Поместите сюда код потока ----
Synchronize(Print);
}
//-------------------------------------------------------------------
void __fastcall PrintQReport::Print()
{
Form1->QuickRep1->Print();
}
//-------------------------------------------------------------------
|