FlushEvents
Bu fonksiyon birden fazla uygulamanın aynı anda işletimi esnasında, bir uygulamadan diğerlerine işletim zamanı sağlamaktadır. Kullanımı
Function FlushEvents()
Parametreler Fonksiyonun parametresi yoktur. Geri Dönüş Değeri Geri dönüş değeri önemsizdir. Dikkat Edilecek Hususlar Windows 3.x sürümü ile karşımıza çıkan multitasking dediğimiz çokgörevlilik özelliği sayesinde, aynı anda birden fazla uygulama çalıştırılabilmektedir. Bu fonksiyon aynı anda ayrı pencerelerde çalışmakta olan uygulamalarda çalışma zamanı tahsisi ile ilgili düzenleme yapmaktadır. Always® terminalinde de birden fazla uygulamanın aynı anda ayrı pencerelerde çalıştığını düşünelim. Aktif uygulamanın oldukça zaman alıcı bir döngüde iş yaparken, son kullanıcı, başka bir Always® uygulaması penceresini kullanmak istediğinde, pencereler arası geçişi sağlıklı olması için bu fonksiyonun kullanımına ihtiyaç bulunmaktadır. Çünkü bazı durumlarda aktif uygulama, diğer uygulamaya geçişte pencere oluşumunu bloke edebilmekte, oluşumunu tamamlamamış pencere dahilindeki uygulamanın kullanımı da imkansız olmaktadır. Çok fazla gerekmediği takdirde kullanılmaması gereken bir fonksiyondur. Örnek Aşağıdaki örnek c:\Always\UserReportDevices\devusr_xl.ser (Excel için kullanıcı tanımlı device driver servisi) dosyasından alınmıştır. Bu örnekte, "ReceiveData" fonksiyonu ile Excel'e, OLE kanalından, bir döngü içerisinde yoğun veri iletildiğini varsayarsak, bu arada, sisteme ve kullanıcıya, Always® in kilitlenmediği hissini vermek için, FlushEvents komutu kullanılmaktadır.
Function ReceiveData(Instance As Number, Command As String, Params As String) As Bool
' The only method of passing data from the report to the driver service is to
' use this function.
' Repsrv32 and devusr32 hand-in-hand handle the data passing mechanism.
' The report runs the method SendToDevice, Repsrv32 and devusr32 maps this
' request to the Device Instance associated with the report.
' Command and Params contents and format is negotiated between the user device
' writer and the report writer. It is a good idea to clearly document these
' commands and params.
Dim cell As Object
Dim r As Number
Dim c As Number
Dim cmd As String
Dim pos As Number
pos:=FindStr(Command, ";")
if pos=0 Then
Return
EndIf
cmd:=Mid(Command,1,pos-1)
Command:=Erase(Command, 1, pos)
' We currently have one command
if cmd="WriteToCell" Then
c:=Val(Command)
pos:=FindStr(Command, ";")
Command:=Erase(Command, 1, pos)
r:=Val(Command)
cell:=xlo[Instance].GetProp("Cells",r,c)
cell.SetProp("Value", Params)
cell.Close()
frms[Instance].rc.valuestr:=Format(r,"n;0") & ", " & Format(c,"n;0")
' Flush events is used to give the impression that
' Always is not crashed but running
FlushEvents()
EndIf
ReceiveData:= TRUE
EndFunction
Last updated