2016-03-24 10 views
0

Ben VBA uyumlu Sax Temel Motorunda iletişim tanımlanan aşağıdaki OptionGroup (yerelleştirme uygulaması Passolo içinde komut dosyası için gömülü) adres:VBA uyumlu Sax Basic Engine'de bir OptionGroup için bir olay işleyicisini nasıl tanımlarım?

Sub Main 
    . 
    . 
    Begin Dialog UserDialog 690,404,"Export and Import Text Files" ' %GRID:10,7,1,1 
     . 
     . 
     OptionGroup .ExportImport 
      OptionButton 30,77,190,14,"Export for translation",.optExport 
      OptionButton 20,221,190,14,"Import translations",.optImport 

ben seçiminde değişiklik yakalamak için bir olay işleyicisi atamak istiyoruz ki Mevcut seçime bağlı olarak iletişim kutusundaki bazı diğer kontrolleri etkinleştirebilir/devre dışı bırakabilirim.

OptionGroup için bir olay işleyicisini nasıl tanımlarım? OptionGroup düzeyinde mi yoksa OptionButton düzeyinde mi (yani, her radyo düğmesi için bir olay işleyicisi) tanımlanmalı mı?

+0

Bunun VBA olduğundan ve VB.NET olmadığından emin misiniz? Eğer VBA ise, kullandığınız uygulamayı lütfen belirtiniz. VBA değilse, lütfen gönderinizi uygun şekilde düzenleyin –

+0

@MacroMan VB.NET gibi görünmüyor, ancak [this] gibi görünüyor (http://stackoverflow.com/q/22050996/11683). – GSerg

+0

@GSerg, bir tesadüf metninin biraz * fazla * fazlasının kabul edildi –

cevap

1

Sax Basic/WinWrap Basic'de, bildiğim olay işleyicisine en yakın şey (dialogfunc) prototipidir. Sizin uygulaması case 2 yılında OptionGroup değerlere değişiklikleri ele olmalıdır:

Sub Main 
Begin Dialog UserDialog 690,404, "Export and Import Text Files",.ExpImpDlgFunct 
    OptionGroup .ExportImport 
     OptionButton 30,77,190,14,"Export for translation",.optExport 
     OptionButton 30,221,190,14,"Import translations",.optImport 
     OKButton 30,280,60,20 
End Dialog 
Dim dlg As UserDialog 
Dialog dlg 
End Sub 

Private Function ExpImpDlgFunct(DlgItem$, Action%, SuppValue&) As Boolean 
Select Case Action% 
Case 1 ' Dialog box initialization 
Case 2 ' Value changing or button pressed 
    If DlgItem = "ExportImport" Then 
     Select Case SuppValue 
     Case 0: 
      PSL.Output("Export") 
     Case 1: 
      PSL.Output("Import") 
     End Select 
    End If 
    Rem DlgFunc = True ' Prevent button press from closing the dialog box 
Case 3 ' TextBox or ComboBox text changed 
Case 4 ' Focus changed 
Case 5 ' Idle 
    Rem DlgFunc = True ' Continue getting idle actions 
Case 6 ' Function key 
End Select 
End Function 
: Bir radyo düğmesini seçtiğinizde üst radyo düğmesi SuppValue 0.

Passolo Mesajları penceresine irade çıktı metninde aşağıdaki örnekte dialogfunc olacak

here iletişim kutusu ve here iletişim kutularına ilişkin ek örnekleri bulabilirsiniz.

+0

Teşekkürler, bu hile yapmak gibi görünüyor! – Pep

İlgili konular