Blog Listem

13 Ekim 2011 Perşembe

AXAPTA Splitter Kontrol

Axapta gerçek bir splitter kontrole sahip değil. Grup paneliyle bir class yapılmış ve bu birleştirilmiş. Axapta içinde bunu kullanan bazı formlar var. İsteyen oradan da bakabilir.
ClassDeclaration'a aşağıdaki kodlar yazılıyor:

    SysFormSplitter_X               _VerticalSplitter;
    SysFormSplitter_Y               _HorizontalSplitter;



Birincisi dikey splitter için, ikincisi ise yatay. Aşağıdaki kodu da formun init'ine yazıyoruz:

   _VerticalSplitter = new SysFormSplitter_X(VerticalSplitter,groupLeft,element);
   _HorizontalSplitter = new SysFormSplitter_Y(HorizontalSplitter,groupTop,element);

Dikey Splitter İçin Ayarlar:
Yukarıdaki VerticalSplitter, dikey splitter kontrol için kullandığımız Group kontrolü. Group kontrolün değerlerini aşağıdaki gibi ayarlıyoruz:
AlignChild = No
AlignControl = Yes
AutoDeclaration = Yes
BackgroundColor = Window background
FrameType = Raised 3D
HideifEmpty = No
Height = Column height
Width = 5
Dikey splitter'in sağına ve soluna birer group kontrol koyuyoruz ve parent kontrolünü de 3 column olarak ayarlıyoruz. Eğer buraya dikkat etmezsek ekran tuhaf birşey olur çıkar. Soldaki grubu Autodeclaration = Yes yapıyoruz. Soldaki grubun adı yukarıdaki groupLeft oluyor. Height değerini Column Height yapıyoruz, Width değerini de 100-200 gibi birşey ayarlıyoruz, bu değer zaten biz kaydırdıkça değişecek ve saklanacak. Sağdaki grubun height değerini column height ve width değerini de column width olarak ayarlıyoruz, başka bir ayar gerekmiyor burası için.
Dikey splitter'in methodlarını da aşağıdaki gibi ayarlıyoruz:

int mouseUp(int x, int y, int button, boolean ctrl, boolean shift)
{
    int ret;

    ret = super(x, y, button, ctrl, shift);

    Return _VerticalSplitter.mouseUp(x, y, button, ctrl, shift);
}

int mouseMove(int x, int y, int button, boolean ctrl, boolean shift)
{
    int ret;

    ret = super(x, y, button, ctrl, shift);

    Return _VerticalSplitter.mouseMove(x,y,button,ctrl,shift);
}

int mouseDown(int x, int y, int button, boolean ctrl, boolean shift)
{
    int ret;

    ret = super(x, y, button, ctrl, shift);

    Return _VerticalSplitter.mouseDown(x, y, button, ctrl, shift);
}

Yatay Splitter İçin Ayarlar:
Burada sadece dikeyden farklı olanları anlatacağım. Yatay'ın farklı ayarları:
Parent kontrolde columns = 1 olacak.
Height = 5
Width =Column Width
Örneğimizdeki üstündeki grubun adı groupTOP. Farklı olarak Height değeri 100-200 gibi birşey ve Width değeri Column width. Methodlarına da yukarıdakinden farklı olarak _VerticalSplitter yerine _HorizontalSplitter yazılacak. Altta kalan grubun Width değeri Column Width ve Height değeri de Column Height olacak.


Hepsi bu. Bana ilk incelediğimde çok karışık gelmişti, ancak formdan ayıklayınca ve biraz kurcalayınca aslında basit birşey olduğunu gördüm.
 

Hiç yorum yok:

Yorum Gönder