السلام عليكم ورحمة الله وبركاته
المثال الذي وجدته لكم أثناء تصفحي لأحد المواقع الاجنبية ، يتميز بإمكانيته على نطق وقراءة الكلمات الموجدة بالسجلات.
شرح طريقة عمله :-
المثال يتكون من نموذج بمسمى frmTextToSpeech عليه مربعي نص غير منتظمين تم تسميتهما txtQuote و txtAuthor بالإضافة إلى زر أمر بأسم cmdSpeak والذي يقبع أسفل منه الكود التالي :
Private Sub cmdSpeak_Click() 'On Error Resume Next Dim strValue As String Dim strQuote As String Dim strAuthor As String If Me.cmdSpeak.Caption = "&Get Random Quote" Then ' get quote strValue = GetRandomQuote If InStr(1, strValue, ":") Then Me.txtQuote = Split(strValue, ":")(0) Me.txtAuthor = Split(strValue, ":")(1) Me.cmdSpeak.Caption = "&Speak" End If Else ' speak quote Me.ctlDirectSS.AudioReset Me.ctlDirectSS.Speak Me.txtQuote & " Author: " & Me.txtAuthor Me.cmdSpeak.Caption = "&Get Random Quote" End If End Sub
الكود أعلاه يبدأ عمله بمجرد النقر على زر أمر cmdSpeak ، حيث يقوم على إستجلاب بيانات أحد السجلات من حقلي Quote و Author بصورة عشوائية من جدو ل tblQuotes وإظهارها على مربعي النص الغير منتظمين بمساعدة الوحدة النمطية الخاصة التالية ثم القيام بقراءة النصوص المعروضة فيهما :
Private Function GetRandomQuote() As String
On Error Resume Next
Dim rs As ADODB.Recordset
Dim strSQL As String
Dim lngMaxID As Long
Dim lngID As Long
Dim strOut As String
Set rs = CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
' get the maximum ID in tblQuotes
strSQL = "SELECT Max(tblQuotes.ID) AS MaxOfID FROM tblQuotes"
rs.Open strSQL, CurrentProject.Connection
If rs.State = 1 Then
If Not rs.BOF Then
lngMaxID = rs("MaxofID")
End If
rs.Close
End If
' get a random positive number that is <= MaxID
Randomize
lngID = CLng(lngMaxID * Rnd + 1)
' use this random number to get a quote
strSQL = "SELECT Quote, Author FROM tblQuotes WHERE ID = " & lngID
rs.Open strSQL, CurrentProject.Connection
If rs.State = 1 Then
If Not rs.BOF Then
strOut = rs("Quote") & ":" & rs("Author")
End If
rs.Close
End If
Set rs = Nothing
GetRandomQuote = strOut
End Functionأرجو الإحاطة أن المثال يحتاج إلى مكتبة الربط المسماة XVoice.dll وكذلك المرجع المسمى Microsoft Dirct Speech Sysnthesis ليستطيع نطق الكلمات والعمل بصورة جيدة.
ومن يحتاج إلى ملف مكتبة الربط فيمكن إنزاله بالنقـر هنـا
(للأسف المثال غير قادر على نطق الكلمات العربية) :angry:
أتمنى أن أكون قد وفقت في شرح المثال وأن يكون مفيدا لكم والله الموفق .



