[ Previous document | Content Table | Next document ]

11  OpenOffice.org Basic ve Dialogları

 

Bu belgede mavi olarak yazılan kısımlar tarafımdan ilave edilmiştir. İngilizce olarak bilinmesi faydalı olan terimlerin yanına mavi yazıyla türkçesi yazılmıştır.

OpenOffice.org  Basic macro ve Dialoglarını yaratmak ve düzenlemek için destek sunar.  Belgenin devamında OpenOffice.org Basic programlama ortamının kullanımını yada kısaca Basic IDE'sini göreceğiz.

11.1  OpenOffice.org Basic ile ilk adımlar

Adım Adım Öğretici ( Tutorial )

Bu kısım Basic IDE'sini geliştiricilerin kullanmasını sağlayan bir öğreticidir. Basic IDE'sinde bir program yazmak ve hata gidermek (debug) için gerekli adımları ve bir Basic iletişimi dizaynını açıklar. Bütün araçlar ve seçenekler için tam bir referans 11.2 OpenOffice.org Basic and Dialoglar - OpenOffice.org Basic IDE. kısmında Standart kütüphane içinde bir modül yaratılması bahsinde bulunabilir.

  1. Yeni bir Writer belgesi yaratın ve kaydedin, örneğin, FirstStepsBasic.odt.

  2. Araçlar – Makrolar – Makroları düzenle – OpenOffice.org Basic Tıklayın.

OpenOffice.org Basic Makroları iletişim kutusu görülür.  Makrodan listesi makro depolarından gelen makro Basic kodlarını gösterir. Burda daima Makrolarım ve OpenOffice.org Makroları  container'ları depoları ve her yüklenmiş olan belge için bir basic kütüphanesi vardır.

Screenshot showing the Macro dialogIllustration 11.1: Macro dialog

Yukarıdaki örnekte sadece FirstStepsBasic.odt belgesi yüklenmiş olduğu görülmektedir. Bu nedenle, Makrolarım,  OpenOffice.org Makroları  ve FirstStepsBasic.odt  Container'ları depoları görülmektedir. Makrolarım ve  FirstStepsBasic.odt container depolarının her ikiside  Standard olarak adlandırılan bir kütüphane içerir.OpenOffice.org Makroları  container deposu openofis kurulumuyla gelen kütüphaneleri içerir ki bunların çoğuda auto pilot'dur. Uygulamanın Standard kütüphaneleri ve tüm açık belgelerin kütüphaneleri daima yüklenirler. İletişim penceresinde seçilebilir durumdadırlar. Diğer kütüphaneler uygulamada kullanılmadan önce yüklenmelidirler.

Kütüphaneler asıl Basic kaynak kodu içeren modüllere sahiptir. Şimdi ikinci adımımızda ise kaynak kodumuz için FirstStepsBasic.odt belgemizin Standard kütüphanesinde yeni bir modül yaratacağız. 

  1. Makrodan listesinde FirstStepsBasic.odt  gelin.

  2. Belgenin altındaki Standard'ı seçin ve yeni düğmesine basın.

OpenOffice.org Module1 adıyla yeni bir modül yaratmak isteyip istemediğinizi soran bir iletişim kutusu çıkaracaktır. 

  1. Kabul etmek için tamama basın.  

Basic kaynak düzenleyicisi Main adlı bir  Sub (subroutine) içeren bir pencereyle açılır. Subrutin bir program kümesindeki alt programdır işlenmesi bitince ana programa döner

Screenshot showing the Basic source editor windowIllustration 11.2: Basic source editor window

Basic düzenleyici durum çubuğunda Main sub'ının FirstStepsBasic.Standard.Modul1 bir parçası olduğu görülür. Şayet Basic düzenleyici menüsünde  Araçlar – Makrolar – Makroları düzenle – OpenOffice.org Basic'i seçerseniz.  FirstStepsBasic.odt belgesinin Standard kütüphanesi altında Module1 adıyla modül yaratılmış olduğunu görürsünüz.

Screenshot showing the Macro dialog containing a docment macroIllustration 11.3

Şayet Makrodan liste kutusunda bir modül  seçilirse, Sağdaki listede sub ve fonksiyonlar görülür, su anda Sub main görülmektedir. Bir sub yada yada fonksiyon seçiliyken Düzenle düğmesi tıklanırsa Basic düzenleyici pencereyi açar ve seçilmiş olan sub yada fonksiyon gösterilir.

Bir Basic UNO program'ı yazılması ve hata giderimi ( Debugging)

Aşağıdaki kaynak kodu Basic düzenliyici penceresine girin. Bu örnek kullanıcıya bir grafik dosyasının yerini sorar ve belgemizde imlecin bulunduğu yere ekler. Daha sonra bu örnek grafik ekle auto pilot'u ( Sihirbaz )olarak geliştirilecektir.(BasicAndDialogs/FirstStepsBasic.odt

Sub Main 

    ' Grafik dosyasını kullanıcıya sor _ işareti satırın devam etmekte olduğunu gösterir

    sGraphicUrl = InputBox("Please enter the URL of a graphic file","Import Graphics","file:///")

    if sGraphicURL = "" then  ' Kullanıcı iptal'e bastı

        exit sub

    endif

 

    ' document modeline ulaşım için

    oDoc = ThisComponent

 

    ' Dökumanının metin servisine ulaşmak

    oText = oDoc.getText()

 

    'Belge servis sağlayıcı grafik nesnesi örneği oluştur.

    ' create an instance of a graphic object using the document service factory

    oGraphicObject = oDoc.createInstance("com.sun.star.text.GraphicObject")

 

    ' Grafik URL adresini ayarla

    oGraphicObject.GraphicURL = sGraphicURL

 

    ' Şu anki imleç konumunu getir ve ondan bir metin imleci yarat

    oViewCursor = oDoc.getCurrentController().getViewCursor()

    oCursor = oText.createTextCursorByRange(oViewCursor.getStart())

 

    ' Şu anki imleç konumuna grafiği ekle

    oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)       

End Sub 

Şayet bir kelime için yardım istiyorsanız metin imleci kelimenin üzerinde iken F1 tuşuna basın. OpenOffice.org online yardımı Basic dili için yardım desteği içerir. 

oDoc = ThisComponent ile başlayan satır ile document modeline ulaşılır, ve biz OpenOffice.org Basic  UNO tümleşimini kullanırız.  ThisComponent Basic kodundan bir Document modeline ulaşım için kullanılan kestirme yoldur. Daha önceden FirstStepsBasic.odt belgesinde module1'i yaratmış olduğumuz için Basic kodu FirstStepsBasic.odt belgesi içine gömülmüştür.Makrolarım deposunda global bir kütüphane değildir, ve dolayısıyla Thiscomponent FirstStepsBasic.odt document modelini temsil eder.

Tip graphics marks a hint section in the text

Document kütüphanelerinin dışında şu anki belgeyi getirmek için ThisComponent veya StarDesktop.CurrentComponent yöntemini kullanın. Şayet açık olan bir belgeye ulaşmak istiyorsanız şu anki belge olmasa dahi StarDesktop.Components üzerinde bileşenleri enumarate yapmalısınız ( sıralamak listelemek )yinelemelisiniz. Bu bileşenlerin URL özelliklerinin kontrolü için aşağıdakine benzer bir kod lazımdır :

oComps = StarDesktop.Components 

oCompsEnum = oComps.createEnumeration() 

 

while oCompsEnum.hasMoreElements() 

    oComp = oCompsEnum.nextElement()

    ' Sadece URL özelliği olan bileşenler not all desktop components are necessarily models with a URL

    if HasUnoInterfaces(oComp, "com.sun.star.frame.XModel") then

        print oComp.getURL()

    endif

wend 

Breakpoint icon

Programın debug edilmesi için imleci oDoc = ThisComponent satırına getirin ve makro çubuğunda Breakpoint ikonunu ( Kesme noktası ) tıklayın.

Run icon

Makro çalıştır ikonunu yüklü olan modülün ilk sub'ını çalıştırır. ve uygulama ilk breakpoint'de durur.

Single Step icon

Single Step ( İçine bas) ikonu ile program adımlama modu ile yürütülür.

Macros icon

Makrolar ikonu ile ilk makrodan başka bir makroda yürütülebilir. Bunun için; OpenOffice.org Basic Makrolar  iletişiminde isteğiniz modüldeki istenilen makroyu seçtikten sonra çalıştır düğmesine basın .

Debug sırasında Basic değişkenlerinin değerlerini izlemek için Basic düzenleyici İzle alanında bir değişken ismi girin ve enter tuşuna basın. Ya da fare imleci ile değişkenin üzerine gelindiğinde ipucu olarak o değişkenin değeri görülebilir. Örneğimizde sGraphicUrl and oGraphicObject değişkenlerini izlemeye alıyoruz:

Screenshot showing a macro in the source editor windowIllustration 11.4

Artık Çalışma anında OpenOffice.org 2.0 Basic debugger ile UNO nesnelerinide incelemek mümkündür. 

Kullanıcı ara birimi ile bir Sub çağrılması

Bir  Makro özelleştirilmiş ikonlarla, menü girişi ile, klavye kısayolları ile resim gibi belge nesneleri ile veya belge olaylarıyla gibi yöntemlerle çalıştıtılabilir.Tüm bu girişlerin ayarlanması Makro iletişimindeki Ata butonuna basarak Özelleştir iletişiminde düzenlenebilir. Ya da Araçlar - Özelleştir menü komutuyla ayarlanabilir.

Main Sub'ına araç çubuğu ikonu atamak için, Araçlar - Özelleştir yoluyla açılan özelleştir iletişiminde Araç çubukları sekmesini açın Araç çubukları sekmesi aşağıdaki görünür:

Screenshot of the Customize Toolbars dialogIllustration 11.5

Araç çubukları sekmesinde Ekle düğmesine basın. Komutekle iletişimi ortaya çıkar Kategori listesinde OpenOffice.org Makrolarını seçerek FirstStepsBasic.odt listesini genişletin. FirstStepsBasic.Standard.Module1 seçildiğinde komullar listesi Sub Main için bir Main girişini gösterir. Ekle düğmesine basarak araç çubuğuna eklersiniz..

Artık belgemizde örnek makromuzu çalıştırabiliriz. 

Kısım 11.2.3 OpenOffice.org Basic and Dialoglar - OpenOffice.org Basic IDE - GUI olaylarına makro atanması Kullanıcı arabiriminde makronuzun ulaşılabilir olması için diğer seçenekleri açıklar..

Basit bir Dialog

Dialog Yaratılması

Basic IDE'sinde bir iletişim kutusu yaratmak için, Basic kaynak kodu düzenleyicisinde pencere altında bulunan Module1 sekmesi üzerinde sağ tıklayın ve Ekle - Basic İletişimi 'ni Dialog1 adlı yeni bir pencer açar:

Screenshot of the Basic GUI editorIllustration 11.6
Controls icon

Formumuza komut düğmesi, seçenek düğmesi gibi kontrol elemanlarının ilavesi için iletişim dizayn araçlarına ihtiyaç duyarız. Kontrol ekle ikonuna tıklayarak açılır pencerede kontrolleri görüp seçebiliriz. Eğer araç kutusu pencere başlığından tutulup çalışma alanına sürüklenirse pencere daima açık olarak kalır.

İlk örnekte olduğu gibi sadece basit bir girdi kutusuyla çalışan iletişim yerine iletişimi bir dosyayı seçmek için kullanıcıya daha kullanışlı bir şekle getirebiliriz.  Ekstra olarak kullanıcı resim ekledikten sonra resimin nereye sabitleneceğini kontrol edebilir. Bunun için iki adımlı bir sihirbaz iletişimi yaratacağız. 

File Selection

Araç kutusu penceresinde Dosya seçimi ikonunu seçin. Form üzerinde sol tıklayıp sürükleyerek dosya seçimi öğesinin yerini ve boyutlarını belirleyin.

Properties icon

Özellikler ikonu özellikler iletişimini görüntüler böylece kontrolleri düzenleyebilir, ayrıca iletişim sırasında meydana gelen olaylar için gerekli olan kodları yazabiliriz.

Button icon

Sonra,  << Back ve Next >> Düğmelerini iletişim adımları arasında gezilebilmesi için ekleyin, ve bir  Finish ve Cancel düğmesi ekleyin.  Düğme ikonunu seçin ve sol fare düğmesini kullanarak düğme boyutunu ayarlayın. Düğmeler CommandButton1 gibi öntanımlı metinlerle etiketlenmiştir. Şayet özellikler iletişim penceresi açılmaz ise yeni oluşturulmuş olan düğmeyi çift tıklayarak açabilirsiniz. yeni etiket alanında düğme etiketlerini girin. İsim alanı kontrolün program tarafından bilinen adıdır ve görüntülenen isim ile alakası yoktur aynı şekilde Back ve next tuşlarını adlandırın. and name the dialog step buttons Back and Next . << Back düğmesi için etkin özelliğini evet olarak ayarlayın. Basic dilinde çalışma zamanında nesne.enabled=false olarak ulaşılır. düğme etiketini değitirmek için  CommandButton1.label="Cancel" tekniği kullanılır.

Label icon

Etiket aracını kullanarak bir etiket ekleyin.. "Select Graphics File" gibi.

Şimdi form aşağıdaki örnekteki gibi görünür: 

Screenshot of a custom dialogIllustration 11.7
Activate Test Mode icon

Formu Araç kutusunda bulunan Test kip açık/kapalı ikonu ile test edebilirsiniz. Testiniz bittiği zaman Formun kapat düğmesine basarak yada form başlığında kapata basarak kapatabilirsiniz.

İletişimi düzenlemek için; örneğin etiketi klikleyin kontrolün dış sınırında yeşil tutamaklar oluşur böylece kontrolü taşıyabilir veya etiketini değiştirebilirsiniz. Yeşil tutamaklarla kontrolü yeniden boyutlandırabilirsiniz.  Özellikler iletişim penceresi iletişimin başka özelliklerini de ayarlamaya yarar. ileşimi bu buradn boyutlandırabilr. konumlandırabilirsiniz.

Olay yönetimi (Adding Event Handlers)

Şimdi formu açmak ve düğmelere işlev kazandırmak için gerekli kodları yazacağız. createUnoDialog() nesnesinin execute() metodunu kullanarak bir formun görüntülenmesini sağlarız. Bir form iletişim nesnesi yaratarak formumuzu görüntüleyebiliriz endExecute()metodu ile de formumuzu kapatır ve işleyişine son veriririz.

Tip graphics marks a hint section in the text

Finish ve Cancel düğmesi  için düğme türünü Cancel  (İptal) olarak ayarlamakla formu kapatmakta mümkündür. Execute metodu Cancel için 0 OK için 1 değeri ile geri döner.

GUI elemanlarına işlevsellik kazandırmak için Sub'lar geliştirin ve bunları GUI elemanlarına bağlayın. Formumuzdaki düğmele işlev kadandırmak için Basic IDE Penceresi altında bulunan Module1 sekmesine tıklayın. Aşağıdaki sub kodlarını Sub main üstüne kopyalayın. Private değişken oDialog  Subların dışında tanımlanmıştır. Formumuzun yüklenmesinden sonra Module1'deki bütün Sub ve fonksiyonlar tarafından erişilebilir olması sağlanmıştır.  (BasicAndDialogs/FirstStepsBasic.odt)

Private oDialog as Variant  ' private, module-wide variable Variant değişkenler bir nesneyi sayıyı yada metini tutabilir aynı değişkene çeşitli tipler aktaracaksak yararlıdır

 

Sub RunGraphicsWizard 

    oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1)

    oDialog.execute

End Sub 

 

Sub CancelGraphicsDialog 

    oDialog.endExecute()

End Sub 

 

Sub FinishGraphicsDialog 

    Dim sFile as String, sGraphicURL as String

 

    oDialog.endExecute()

 

    sFile = oDialog.Model.FileControl1.Text

 

    ' Bir FileControlu sistem yolu içerir ve dosya URL'si haline çevrilmesi gereklidir

    ' Bu nedenle ConvertToURL Basic fonksiyonu kullanıyoruz

    sGraphicURL = ConvertToURL(sFile)

 

    ' Grafik ekle

    ' Document modeline eriş

    oDoc = ThisComponent

    ' Document metin servisine eriş

    oText = oDoc.getText()

    ' Belge servis sağlayıcı grafik nesnesi örneği oluştur (document service factory)

    oGraphicObject = oDoc.createInstance("com.sun.star.text.GraphicObject")

    ' Grafik URL'sini ayarla

    oGraphicObject.GraphicURL = sGraphicURL

    ' GUI'de şuanki imleç pozisyonunu getir ve ondan bir metin imleci yarat

    oViewCursor = oDoc.getCurrentController().getViewCursor()

    oCursor = oText.createTextCursorByRange(oViewCursor.getStart())

    ' Grafik nesnesini imleç konumuna ekle

    oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)       

End Sub 

 

Sub Main 

        ...

End Sub 

Cancel düğmesini seçin ve özellikler iletişim penceresinde olaylar sekmesine tıklayın. Başlatırken form alanındaki sağ taraftaki Makro ata iletişiminde (...)  düğmesine tıklayın. FirstStepsBasic.odt.Standard.Module1, CancelGraphicsDialog yordamını seçin ve ekle düğmesini tıklatarak düğmemize  yordamı bağlayın

Screenshot showing the Assign Macro dialogIllustration 11.8

Finish  düğmesi içinde aynı yöntem kullanılarak FinishGraphicsDialog yordamı ile ilişkilendirin.

Run icon

 Run ikonu seçilirse şimdi form görüntülenir ve  Finish ve Cancel düğmeleri çalışır.

AutoPilot Formları Dialogs

Son adımda iki sayfalı küçük bir AutoPilot yaratacağız.. The OpenOffice.org Formları Autopilot sayfaları için basit bir işlem anlayışına sahiptir. Dialogdaki Her form ve her kontrol sayfa kontrolü için  Page (Step) Adım özelliğine sahiptir. Normal olarak iletişimler sayfa 0'da olurlar fakat başka bir sayfa olarak ayarlanabilirler, örneğin sayfa1 Sayfa1'deki Tüm kontrolleri sadece sayfa1de görüntülemek için  Adım 1 değerine sahip olmalıdr. Aynı şekilde kontollerin sayfa2'de görüntülenmesi için 2 değeri olmalıdır.Şayet Form Sayfa0'da ise tüm kontroller görüntülenir. Bir kontrolün sayfa özelliği 0 olarak ayarlanmışsa tüm form sayfalarında gözükür.

Böylece ikinci bir sayfa yaratılması için kullanılır.  Ctrl Tuşuna basılı tutarken Label ve filecontrol elemanlarını klikleyerek ikisini de seçin. Özellikler iletişiminde Page  Sayfa(Basamak)  özelliği için 1 değerini girin ve enter tuşuna basarak değişimi uygulayın. Form dış çerçevesini tıklatarak özellikler iletişimini açın Page değerini 2 olarak girin ve enterleyin. Label  ve filecontrol kaybolur çünkü şimdi sayda2'deyiz. Sadece düğmeler sayfa0 da oldukları için görüntülenir.

Sayfa2'de, "Anchor"  adlı label etiket ekleyin ve iki adet option buttons seçenek düğmesi ekleyin"Etiket için "at Paragraph" ve "as Character"belirleyin. "At paragraph" için State Durum alanında toggle etkin olarak belirleyek varsayılan olarak bu seçeneğin seçilmesini sağlayın. Yeni kontroller otomatik olarak Page sayfa 2 özelliğini alırlar. Page2 bittiğinde Dialog'u 1 olarak ayarlayalım. Çünkü uygulamanın başlangıcında 1 numaralı sayfayı istiyoruz.

Screenshot of the Insert Graphic WizardIllustration 11.9

Aşağıdaki Sub'lar << Back and Next >> düğmeleriyle çalışması gereken yordamlardır.  FinishGraphicsDialog  yordamı kullanıcı tarafından seçilen yeni grafiği dosyaya eklemek içindir. GUI'de Page (Step) olan özellik. API'de step   (BasicAndDialogs/FirstStepsBasic.odt)

Sub BackGraphicsDialog 

    oDialog.Model.Step = 1

    oDialog.Model.Back.Enabled = false

    oDialog.Model.Next.Enabled = true

End Sub 

 

Sub NextGraphicsDialog 

    oDialog.Model.Step = 2

    oDialog.Model.Back.Enabled = true

    oDialog.Model.Next.Enabled = false

End Sub 

 

Sub FinishGraphicsDialog 

    Dim sGraphicURL as String, iAnchor as Long

    oDialog.endExecute()

    sFile = oDialog.Model.FileControl1.Text

    ' State = Selected corresponds to 1 in the API Seçilmiş ise State = 1 değerine sahiptir

    if oDialog.Model.AsCharacter.State = 1 then

        iAnchor = com.sun.star.text.TextContentAnchorType.AS_CHARACTER

    elseif oDialog.Model.AtParagraph.State = 1 then

        iAnchor = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH

    endif

    ' Dosya seçimi kontrolü bir sistem yolu ile döner ve onu dosya URL'si ne çevirmeliyiz

    ' Bunun için MakeFileURL fonksiyonu kullanırız

    sGraphicURL = MakeFileURL(sFile)

    ' Belge modeline erişim temini

    oDoc = ThisComponent

    ' Belge metin servisini al

    oText = oDoc.getText()

    ' Belge servis sağlayıcı grafik nesnesi örneği oluştur (document service factory)

    oGraphicObject = oDoc.createInstance("com.sun.star.text.GraphicObject")

    ' Grafik URL'sini ayarla

    oGraphicObject.GraphicURL = sGraphicURL

    oGraphicObject.AnchorType = iAnchor

    ' GUI'de Şu anki imleç pozisyonunu al ve metin imleci yarat.

    oViewCursor = oDoc.getCurrentController().getViewCursor()

    oCursor = oText.createTextCursorByRange(oViewCursor.getStart())

    ' Gfafiği matin başına ekle

    oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)               

End Sub 

11.2  OpenOffice.org Basic IDE

Bu bölüm OpenOffice.org Basic tümleşik geliştirme ortamının (IDE)bütün özelliklerini açıklar. Basic ve Dialog kütüphanelerinin nasıl yönetileceğini, Basic IDE'sindeki araçlarla Basic makrolarının ve dialoglarının kullanımı anlatılacaktır, ve olaylara Basic makroları atanması için çeşitli yöntemler değerlendirilecektir.

11.2.1  Basic ve Dialog Kütüphanelerinin yönetimi

Kütüphane yönetimine kullanıcı ara biriminde ana giriş noktası Araçlar - Makrolar - Makroları düzenle - OpenOffice.org Basic  menü elemanıdır. Bu seçenekle OpenOffice.org Basic Makroları dilog kutusunu açarki bu dilogda kullanıcı Basic Ve Dialoglarla ilgili tüm operasyonları yürütebilir.

OpenOffice.org Basic Makroları Dialoğu

Aşağıdaki resim örnek bir Makro dialoğunu gösterir. Buradan makroları çalıştırabilir, yaratabilir, çalıştırabilir, silebilir, UI olaylarına makro atayabilir ve Basic Kütüphaneleri,ve modüllerini yönetebilirsiniz.. 

Screenshot of the Macro dialog with a second standard mouleIllustration 11.10
Görüntülenen Bilgi

Makrodan ağaç görünümü kısmı dialoğun açılmış olduğu andaki tüm kütüphane yapısını gösterir.  OpenOffice.org Kütüphane organizasyonu (düzenleyici) hakkındaki detaylar için 11.4 OpenOffice.org Basic and Dialogs - Advanced Library Organization kısmına bakın...

Bu dialogda Basic yada Dialog kütüphaneleri arasında ayrım gözetilmezken Kütüphane düzenleme API'sinde farklı olarak uygulanır.  

Note graphics marks a special text section

API kullanarak Sadece Basic yada dialog kütüphaneleri hazırlamak mümkün olmasına rağmen  bu kullanım normal değildir. Çünkü grafiksel kulanıcı arabirimi sadece Basic ve Dialog kütüphanelerinin eş zamanlı olarak yaratılmasına izin verir. ( 11.2.1 OpenOffice.org Basic and Dialogs - OpenOffice.org Basic IDE -  Basic ve Dialog Kütüphaneleri  - Macro Düzenleyici Dialoğu   kısmına bakın ) Bununla birlikte, dialog  sade Basic veya sade Dialog olarak dağıtılabilir, but they are not marked in any way.

Makrodan ağacı üç kademeli bir yapı olarak görüntülenmir:

Library container -> library -> library element Kütüphane deposu -> Kütüphane -> Kütüphane elemanı  

Eğer bir kütüphane şifre korumalı ise ve kullanıcı onu yüklemek için çift tıklatırsa, Şifreyi soran bir iletişim görünecektir. Kütüphane kullanıcı doğru şifreyi girdiğnde yüklenecek ve görüntülenecektir.Bir şifre korumalı kütüphane API kullanılarak yüklenirse, örneğin BasicLibraries.loadLibrary("Library1") çağrısıyla, yüklendiği gibi gösterilir Grileştirilmemiş olarak. Fakat doğru şifre girilene kadar ağaç görünümü açılıp içi görülemez. ( 11.4 OpenOffice.org Basic and Dialogları - Gelişmiş kütüphane yönetimi).

 

Orta sütun (düzenleme alanı) makrolar hakkında bilgileri görüntülerki bunlar seçilmiş olan modüle ait Sub ve Fonksiyonların listesidir. Makro adı bulunan Düzenleme alanında  bir sub veya fonksiyon seçilebilir. Şayet Makrodan iletişim kutusunda herhangi bir modül seçilmemişse düzenleme alanı ve liste boş kalır. İstenilen adı düzenleme alanına yazabilirsiniz.

Düğmeler

OpenOffice.org Basic Makrolar dialoğunun sağ tarafında aşağıda listede tanımlanan çeşitli komut düğmeleri vardır:

OpenOffice.org Basic Makro Düzenleyici Dialogu

Bu dialog  OpenOffice.org Basic Makroları iletişiminde düzenleyici düğmesine basılarak açılır.Dialog kutusu Modüller, kütüphaneler ve Dialoglar sekmelerine sahiptir. Basic makroları iletişimi sadece kütüphaneler içindeki modülleri gösterebiliyorken Bu iletişim kutusu kütüphane sistemine module, dialog ve kütüphane seviyesinde ulaşır.

Modules Modüller

OpenOffice.org Basic Makro Düzenleyici Modüller sekmesi aktif olduğunda tüm modüller görüntülenir.Modül etiketli liste Makro Dialogundaki Makrodan listesi ile benzerdir. Fakat OpenOffice.org uygulama ve belge kütüphanelerinin tam bir hiyerarşisini içerir. Kütüphaneler çift tıklamayla yüklenebilir, açılabilir. ve ağac görünümü kapatılabilir. Şekilde Modul1 ve Module2 modüllerine sahip uygulama kütüphanesi Standard görüntülenmektedir.

Screenshot showing the Macro Organizer dialogIllustration 11.11

 

Yukarıdaki sunumda iki belgenin yüklenmiş olduğu görülmektedir. Description.odt belgesinin module1 modülüne sahip bir standard kütüphanesi görülmektedir. Calculation.ods belgesinde modüle sahip olmayan bir başka Standard kütüphanesi de görülmektedir.

Aşağıdaki listede ileişimdeki komut düğmelerinin fonksiyonlarını açıklar: 

Dialogs

OpenOffice.org Basic Makro Düzenleyici Dialog ( İletişim Öğeleri )sekmesinin seçilmesiyle Dialog sayfası görüntülenir. Şekilde uygulama Standard kütüphanesinin Dialog1, Dialog2 ve Dialog3 adlı üç diyaloga sahip olduğu görülmektedir.

Screenshot showing the Macro Organizer dialog with document macrosIllustration 11.12

Şekilde Calculation.ods adlı belgenin Dialog1 adlı bir diyalog içerdiği görülmektedir.Calculation.ods belgesinin herhangi bir diyalog'u olmadığı görülmektedir.

Takip eden listede komut düğmelerinin açıklaması yapılmıştır: 

Libraries Kütüphaneler

 OpenOffice.org Basic Makro düzenleyici iletişiminin Kütüphaneler sekmesi seçildiğinde Aşağıdaki resimler görülmektedir. İletişim penceresinde uygulama ve belge kütüphaneleri ayrı olarak listelenmektedir. Kütüphane listesinde sadece konum liste kutusunda seçilmiş olan Kütüphane container'ının kütüphaneleri görüntülemektedir. İkinci resimde My Macros & Dialogs Makrolarım ve pencerelerim OpenOffice.org Macros & Dialogs OpenOffice.org Makrolerı & Dialogları ve şu anda açılmış olan belgelerdeki  girişleri görüntülemektedir.

Screenshot of the Libraries tab page of the Macro Organizer dialogIllustration 11.13
Screenshot of the Libraries tab page showing the Application/Document selectionIllustration 11.14

Kütüphaneler aşağıdaki mantıkla listelenir: 

Bir kütüphane üzerine iki kez tıklanırsa (çift tıklama değil) kullanıcıya kütüphane ismini değiştirme imkanı sağlanır. 

Aşağıdaki liste komut düğmelerini açıklar: 

Screenshot showing the Change Password dialogIllustration 11.15
Screenshot showing the Append Libraries dialogIllustration 11.16
Screenshot showing the Append Libraries dialog with selected librariesIllustration 11.17

11.2.2  Basic IDE Window Basic Tümleşik Geliştirme ortamı Penceresi

IDE esas olarak Basic IDE penceresi ile temsil edilir. IDE iki farklı moda sahiptir: 

Basic kaynak kodu ve formlar asla aynı anda görüntülenmezler. IDE penceresi Basic düzenleyici veya debugger veya dialog düzenleyicinin içindedir. Aşağıdaki şekilde uygulama Standard kütüphanesindeki module2'yi görüntüleyen Basic düzenleyici modundaki Basic IDE penceresi görülmektedir. 

Screenshot showing the Basic IDE windowIllustration 11.18

IDE penceresi Basic ve Dialog düzenleyici modu için genel olan kontrol elemanları aşağıda açıklanmıştır. Moda özel olan kontrol öğeleri karşılık gelen alt kısımlarda açıklanmıştır. 11.2.2 Basic and Dialoglar -  Basic IDE - Basic IDE Penceresi - Basic kod Düzenleyici ve 11.2.2 Basic ve Dialoglar -  Basic IDE - Basic IDE Penceresi - Dialog Düzenleyici:

Basic Source Editor and Debugger Basic Kaynak düzenleyici ve Hatagiderimi

Kullanıcı bir Sub yada fonksiyonu düzenlerken, Basic düzenleyici ve debugger penceresi görüntülenir. Bu modda, düzenleyicinin ana penceresi, değişkenlerin değerlerini görüntülemek için debugger watch İzleme penceresi, Basic call stack'ını (çağrı yığıtı) görüntülemek için Debugger Call Çağrılar: penceresi mevcuttur. Watch ve Call pencereleri sadece Basic programı çalışıyorken makro debugger tarafından durdurulmuşsa kullanılır.

Düzenleyici genel editor işlevlerine sahiptir. Düzenleyici sadece OpenOffice.org Basic programlama dilini  ve sözdizimi renklendirme ayrıca Basic anahtar kelimeleri ile ilgili F1 yardımını destekler. 

Screenshot shwoing the IDE window in debug modeIllustration 11.19: Basic Editor and Debugger

Aşağıdaki listede Makro araç çubuğu işlevleri açıklanmıştır. 

Compile icon

Compile Derle : Aktif modülü derler ve gerekliyse bir hata mesajı görüntüler. Şayet bir Basic programı çalışıyorsa bu düğme pasiftir. Kütüphaneleri dağıtma hazırlamadan önce daima derleyin.

Run icon

Run Çalıştır: Aktif modüldeki ilk Sub'u çalıştırır. Aktif kütüphanedeki bütün değiştirilmiş modüller derlenmeden önce kullanılırsa bazı derleyici hataları alınabilir. Program başlamadan önce kullanılırsa da hatalara neden olabilir. Debugger vasıtasıyla program yürütülmesi durdurulmuşken bu komut kullanılırsa program işlemesine devam edilir.

Stop icon

Stop Makroyu Durdur: Basic programının yürütülmesini durdurur. Bir program çalışmıyorsa bu düğme aktif değildir.

Procedure Step icon

Procedure Step Üzerine Bas : Makroyu içindeki çağrılan diğer sub ve fonksiyonlarda durmaksızın çalıştırır. Makro uygulaması Sub'daki alt ifadede  durur. Uygulama basic programı başlatılmaksızın çalıştırılmışsa bu düğmeyleşuandaki modülün ilk Sub'ındaki ilk ifadede durur.

Single Step icon

Single Step İçine Bas : Bir Basic ifadesini yürütür. İfadede  bir başka sub çağrılımmışsa, yürütme çağrılan sub'ın ilk ifadesinde durur. Herhangi bir sub veya fonksiyon çağrılmıyorsa Step over ile aynı işleve sahiptir.(kısa yol F8).

Step back icon

Step back Dışına Bas : içinde bulunulan Sub veya fonksiyonu yürütür ve çağıran Sub/fonksiyonun devam eden ifadesinde durur. Şayet hiç bir yerden çağrılmamışsa ya da Basic programı çalışmıyorsa Run düğmesiyle aynı etkiye sahiptir.

Breakpoint icon

Breakpoint Kesme noktası Açık/Kapalı : Basic düzenleyici penceresinde İmlecin bulunduğu satırda kesme oluşturur veya kaldırır.Kesme noktası bu satırda oluşturulamıyorsa beep ile kullanıcı ikaz edilir eylem ihmal edilir. (Kısayol F9).Kesme noktası editör penceresindeki sol sütunda  kırmızı bir nokta olarak görüntülenir.

Add watch icon

Add watch İzleyici açık/kapalı   : Basic editorde İmlecin üzerinde olduğu tanımlayıcıyı watch penceresine ekler (Kısayol F7.

Object catalog icon

Object Catalog Nesne Kataloğu : Nesneler iletişimini açar. Dialogları,modülleri ve modüllerin içersindeki Sub'ları da içeren tam bir Kütüphane hiyerarşisini görüntüler.

Macros icon

Macros Makro SeçOpenOffice.org Basic Makrolar İletişim kutusu'nu açar

Modules icon

Modules Makro Seç: Opens the OpenOffice.org Basic Makro Düzenleyici dialoğunu açar.

Find Parentheses icon

Find Parentheses Parantez Bul : Basic editörde imleç bir parantez öncesine yerleştirilmişse parantez çifti aranır ve bulunduğunda parantez içinde bulunan kod seçilir. Bulunamazsa kullanıcı uyarı sesiyle ikaz edilir.

Controls icon

Controls Denetim Ekle : Dialog düzenleme araçlarını açar. Basic düzenleme modunda pasiftir.

Insert Source File icon

Insert Source File BASIC kaynak kodu ekle : Dosya açma dialoğunu görüntüler ve seçilmiş olan dosyanın metnini aktif modüldeki imleç konumuna ekler (*.bas   standard dosya uzantısıdır).

Save Source As icon

Save Source As BASIC kaydet : Aktif modülü bir metin dosyası olarak kaydetmek için Farklı kaydet iletişimini görüntüler (*.bas standard dosya uzantısıdır).

Şekil 11.19'da Bir Basic programı debugging modunda yürütülüyorken IDE penceresinin durumu görüntülenmektedir.

Dialog Editor Diyalog Düzenleyici

Bu kısım Diyalog düzenleyici işlevleri hakkında bilgi sağlar. Form dizaynında kullanılan kontroller açıklanmamıştır. Bu ayrıntılar için 11.5 Basic and Dialogs - Dialoglar ve kontrollerinin programlanması bölümüne bakın. IDE penceresi altındaki bir dialog sekmesinin tıklanması veya Basic Makro Düzenleyici iletişiminden bir diyalog seçilmesiyle yada yeni bir form yaratılmasıyla Dialog editör aktifleştirilir.

İlk olarak yeni bir dialog boş bir form öçerçevesi halinde görüntülenir. Sonraki şekilde uygulama Standard kütüphanesindeki Dialog2 görünmektedir. 

Screenshot showing the Dialog editorIllustration 11.20

Dialog düzenleme modunda düğme kontrolleri aktiftir ve bu düğmeye tıklamanın sonucu şekilde görülmektedir. diyaloglar için özel araçları işeren bir araç çubuğu açılmıştır.İkon düğmeleri forma yerleştirilebilecek kontrolleri göstermektedir. Kullanıcı istediği düğmeye basar, İstenilen yer ve boyut için fareyle çerçeve çizerek kontrolü form üzerine yerleştirir.

Araç kutusundaki Aşağıdaki üç düğme kontroller için değildir: 

Select icon

Select Seçim düğmesi fare imlecini seçim moduna geçirir. Bu modda kontroller fare tıklamasıyla seçilebilir hale gelir. Shift tuşuna basılırken fare tıklamalarıyla birden fazla kontrol seçilebilir.  Fare ile kontrollerin bir çerçeve içine alınması ile çerçeve içindeki bütün kontroller seçilmiş olur.Formun seçilmesi için kullanıcı form sınırına tıklayabilir yada seçim kutusu formu kapsayacak şekilde genişletebilir.

Activate Test Mode icon

Activate Test Mode Test Kip Açık/kapalı düğmesi form ve kontrollerini test moduna alır. Bu modda form basic scripti olduğu gibi görünür.  (11.5  Basic and Dialoglar - Formalar ve kontroller programlanması kısmına bakın) Bu düzende kontrolere atanan makrolar çalışmamasına karşın kullanıcıya formun çalışma anında formun nasıl görüneceği hissettirilir.

Properties icon

Properties Özellikler düğmesi özellikler iletişimini açar ve kapatır. Bu iletişimle seçilmiş olan kontrollerin tüm özellikleri ayarlanabilir. Sonraki resimde seçilmiş olan komut düğmesi özelleikleri görüntülenmektedir.

 

Screenshot showing the Properties dialog of a Command buttonIllustration 11.21

Yukarıdaki resimde ana araç çubuğundan başlığından tutularak çalışma alanına çekilen araç çubuğu penceresi görünmektedir. 

Özellikler iletişim kutusu iki sekmelidir. General Genel sekmesi özellikler listesi içerir. Değerleri kontroller tarafından gösterilmektedir.renk, enum tipler gibi çoğu özellikler bir listbox (liste kutusu) ile sayısal, metin gibi tipler edit field (Metin kutusu) kontrol edilir. fontlar, renklrer gibi daha kompleks özellikler ellipsis ( ... )düğmeleriyle açılan başka iletişim kutularıyla ayarlanır. font seçim kutusu gibi. Kullanıcı bir metin kutusu içeriğini değiştirdiği zaman değişiklikler hemen görüntülenmezler. Değişikliğin görünmesi için metin kutusu focus halinden çıkarılmalıdır.  Tab tuşuna basılarak veya alternatif olarak enter tuşuna basılabilir.

Events Olaylar sekmesi seçilmiş olan kontrol tarafından desteklenen olaylara atanmış makroları görüntüler:

Screenshot of the Events tab page of the the Properties dialogIllustration 11.22

Yukarıdaki örnekte, key pressed tuşa basıldı olayı için bir makro atanmıştır: Bu olay oluştuğunda uygulama Standard Basic kütüphanesi Module2'de görünen doNothing Sub'ı uygulanır. Uygulanabilen olaylar seçili kontrolün tipine bağlıdır.

Kullanıcı olay atamasını değiştirmek için ellipsis düğmelerine basarak Assign macro Makro ata aşağıda görünen diyalogunu açabilir.

Screenshot of the Assign Macros dialogIllustration 11.23: Assign Macro Dialog

Event Olay etiketli liste kutusu Özellikler penceresi olaylar sekmesi ile aynıdır. Makro ata iletişimi daima aynıdır ve sadece ellipsis düğmesiyle  seçilen olay için makro ataması yada değişimi yapılabilir.

Olaya makro atanması için, kullanıcı Assign Ata düğmesine tıklamalıdır. Böylece Macro Selector Makro Ayırıcı iletişimi görüntülenir ve kullanıcıya kütüphane hiyerarşi içinden bir makronun seçilmesi imkanı tanınır. Tamam tuşuyla seçilen makro olaya atanmış olur. Şayet olay için önceden seçilmiş olan makro varsa seçim ile değiştirilir. Herhangi bir Sub seçili değilse Bu Tamam düğmesi aktif değildir.

Diyalog bir belge içinde bulunuyorsa, Makro ayırıcı listesinde belgenin kütüphane Container'ı da görüntülenir. Diyalog uygulama kütüphanesine aitse, belge kütüphaneleri görüntülenmez.  Çünkü uygulama dilogları tarafından bir olay başlatıldığında belgenin yüklenebileceği garanti altında değildir. 

Seçilmiş olay için bir makro atanmışsa Remove Kaldır düğmesi aktiftir. düğmeye tıklayarak makro olaydan kaldırılır. Böylece olay makro bağlantısı koparılır.

The list box below the Remove button is used to select different macro languages. Currently, only OpenOffice.org Basic is available.

Tamam düğmesi iletişimi kapatır ve tüm olay atamalarını ve silmelerini gerçekleştirir. Değişimle Özellikler kutusunun olaylar sekmesinde görülür.

İptal düğmesi iletişimi kapatır ve yapılan değişiklikler gözardı edilir..

Daha önce açıklandığı gibi, eşzamanlı olarak çeşitli kontrol öğelerini seçmek mümkündür. Aşağıdaki resimde kulanıcını tarafından CommandButton1 ve CheckBox1 öğelerin seçili olduğu durum görülmektedir. Özellikler iletişiminde böyle bir seçim bazı önemli etkilere sahiptir.

Screenshot showing the Properties dialog with multiselectionIllustration 11.24

Özellikler penceresi başlığı özel duruma işaret etmek için Multiselection  Çoklu Seçim yazısını gösterir. Tek seçim ile İki önemli fark karşılaştırılırsa:

11.2.3  Assigning Macros to GUI Events GUI olaylarına Makro atanması

Dialog editöründe kontrol olaylarına makro atanması daha önce anlatılmıştı. Olaylara veya eylemlere makro atanması için genel bir işlevde mevcuttur. Bu işleve Araçlar - Özelleştir menüsü yoluyla açılan özelleştir iletişimi ile veya Makro iletişiminde ata düğmesine basılarak ulaşılabilir. Bu bölümde sadece makroların atanması incelenecektir. İletişim hakkında daha fazla bilgi OpenOffice.org belgelerinde bulunabilir.

Aşağıdaki sunumda Özelleştir diyaloğunun Menü sekmesi görülmektedir

Screenshot of the Configuration dialogIllustration 11.25

Bir makronun yeni bir menü öğesine nasıl atanacağı gösterilmektedir. Menü ve Menü içeriği listesi OpenOffice.org menü hiyerarşisi içinde gezinmek için kullanılabilir. Ekle... düğmesine basılmasıyla Add Commands Komut ekle iletişimi açılır. Kategori listesinde OpenOffice.org yerleşik fonksiyonlarını listeler ve OpenOffice.org Makroları girişini görüntüler. Bir giriş seçildiğinde bu girişteki makrolar ve komutlar sağdaki liste kutusunda görüntülenir .

Ekle düğmesine klikliyerek  iletişim seçilmiş makro veya komutu  bir menüye ekler.

Menüler sekmesindeki diğer düğmeler aşağıdaki gibidir :

Sonraki resimde Özelleştir diyalogunun Olaylar sekmesi görünmektedir: