Uygulama Bilgileri :
Delphi 2007
MySQL 5.5 (x64)
Windows 7 (x64)
Bağlantı Nesnesi : Devart - Unidac 2.6
Hazırladığım programda thread kullandım. Veritabanı bakiye toplamını thread kullanarak arka planda alıyorum. Birkaç kayıt girdikten sonra aşağıdaki hatayı alıyorum. Ortalama 3 - 4 kayıt girdikten sonra.

Delphiden bağımsız çalıştırdığımda : pure virtual function call hatasıda veriyor bazen
Thread ve Bakiye Hesaplama Kodu :
Kod: Tümünü seç
private
{ Private declarations }
public
{ Public declarations }
end;
Tfinansbakiyehesaplathread = class (TThread)
protected
Procedure Execute ; override;
end;
var
finansborc ,finansalacak : real;
.
.
.
.
procedure Tfinansbakiyehesaplathread.Execute;
begin
FreeOnTerminate:=True;
// Query Toplamları
.
finansborc := finansborc + UniQueryFinans6.FieldByName('tahsilatlar).AsCurrency;
.
end;
Procedure TForm1.bakiyehesapla;
var
NewThread: Tfinansbakiyehesaplathread;
begin
TdxStatusBarTextPanelStyle(dxRibbonStatusBar1.Panels.Items[8].PanelStyle).ImageIndex :=160;
Application.ProcessMessages;
NewThread:=Tfinansbakiyehesaplathread.Create(False);
TdxStatusBarTextPanelStyle(dxRibbonStatusBar1.Panels.Items[8].PanelStyle).ImageIndex :=108;
Application.ProcessMessages;
label11.caption:=formatfloat(',0.00;-,0.00',finansborc);
label12.caption:=formatfloat(',0.00;-,0.00',finansalacak);
label13.caption:=formatfloat(',0.00;-,0.00',abs(finansborc-finansalacak));
end;