Merhaba
Axapta formlarda splitter kullanımı hakkında bir örnek yapacağız.
İşte örneğimiz:
Formda 2 grubunuz olduğunu varsayalım, LeftGroup ve RightGroup . Bu iki grubu yan yana görmek için design property columns=2 yapalım. Şimdi bu iki grup arasında splitter olsun istiyoruz. Bu sayede istediğimiz gibi resize vb. kontrolleri yapabileceğiz. Bunu yapabilmek için şu adımları takip etmemiz gerekiyor:
1. Daha önce oluşturduğumuz iki grubun arasına SplitterGroup adında yeni bir grup oluşturalım. bu grubu splitter için kullanacağız.
2. SplitterGroup parametreleri şunlar olsun :
AlignChild = No AlignControl = Yes AutoDeclaration = Yes FrameType = Raised3D Height = ColumnHeight HideIfEmpty = No Width = 4
3. LeftGroup parametreleri şunlar olsun :
Width = 250 Height = ColumnHeight AutoDeclaration = Yes
4. Rightgroup parametreleri şunlar olsun :
Height = ColumnHeight Width = ColumnWidth
5. Şu anda 3 grubumuz olduğu için design property columns=3 yapalım.
6. Splitter bizim SplitterGroupa’a özellik eklemeizle elde edeceğimiz bir fonksiyon. Bunu axaptada yapabilmemizi sağlayan iki class var SysFormSplitter_X or SysFormSplitter_Y.
bizim durumda SysFormSplitter_X kullanmamız gerekiyor. formun class declaration’da Şu tanımlamayı yapalım:
public class FormRun extends ObjectRun { SysFormSplitter_X sysFormSplitter_X; }
7. Axapta clasını formumuzun initinde oluşturuyoruz. The StartupHeight parameter is often omitted since it is optional.
public void init() { super(); sysFormSplitter_X = new SysFormSplitter_X(SplitterGroup,LeftGroup,element,100); }
8. Şimdi plitterGroup için çeşitli mouse metodlarını yazmalıyız :
int mouseDown(int x, int y, int button, Boolean Ctrl, Boolean Shift) { int ret = super(x,y,button,ctrl,shift); ; sysFormSplitter_X.mouseDown(x,y,button,ctrl,shift); return ret; }
int mouseMove(int x, int y, int button, Boolean Ctrl, Boolean Shift) { ; super(x,y,button,ctrl,shift); return sysFormSplitter_X.mouseMove(x,y,button,ctrl,shift); }
int mouseUp(int x, int y, int button, Boolean Ctrl, Boolean Shift) { int ret = super(x,y,button,ctrl,shift); ; sysFormSplitter_X.mouseUp(x,y,button,ctrl,shift); return ret; }
Evet oldu. X-Splitter artık düzgün bir şekilde çalışır.
Y-splitter da buna benzer şekilde tanımlayabilirsiniz.
Selamlar.