Scrollbar
Re: Scrollbar
Tell me what you exactly do so I tell you if that applies to your specific case.
Re: Scrollbar
//Good afternoon
//This code works but without mouse wheel scrolling.
//Can this be made to work somehow?
//Thank you.
//************************************************************
function SlideShow(DLslide,MAS){df = [];pn=[];q = 1;kftr = 1.05;//1.1
xb = 667;//f=0
if(SelRB == 0 || SelRB == 2){x1=3;x=3;y1=3;y=3;x2=xx=160.9;y2=160.9;yy=160.9;fx=25;fy=10;p=y2;sp=0;}
if(SelRB == 2){fx=35;fy=5;}
if(SelRB == 1){x1=x=3;y1=3;y=3;x2=xx=106.2;y2=40;yy=40;fx=0;fy=0;}
if(SelRB == 3){x1=3;x=3;y1=3;y=3;x2=xx=160.7;y2=120;yy=120;win.text = TitulTxt[4] + ' ' + DLGbrg;f=5;fx=0;fy=0;}
if(DLslide > 8){if(SelRB == 0 || SelRB == 2){xb = 644;x2=xx=155;}}
if(DLslide > 54){if(SelRB == 1){xb = 645;x2=xx=102.5;}}
if(DLslide > 12){if(SelRB == 3){xb = 645;x2=xx=155.4;}}
//MkSize();
SlidePanel = win.add ('panel', [10, 10, xb, 387],'',Styl);SlidePanel.graphics.font = TS;SlidePanel.hide()
bounds = [0, 0, xb, 297];scrollGroup = SlidePanel.add ('group',bounds,{scrolling : true});
for(a=0;a<DLslide;a++){Pnc = scrollGroup.add ('panel', [x,y,xx,yy],'',Styl)
imPR = Pnc.add('image', [fx,fy,0,0], new File(MAS[a]), {nmbr: a} )
df.push(imPR);pn.push(Pnc)
MkSize();
if(SelRB == 0){imPR.size = [100,133];}
if(SelRB == 2){imPR.size = [90,130];}
if(SelRB == 1){imPR.size = [102,35];}
if(SelRB == 3){imPR.size = [150,117];}
x=xx+x1;xx=x+x2
if(q == 4 & SelRB == 0 || q == 4 & SelRB == 2){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, 667, yy];kftr = kftr + 0.092;};
if(q == 6 & SelRB == 1){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, 667, yy];kftr = kftr + 0.092;};
if(q == 4 & SelRB == 3){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, 667, yy];kftr = kftr + 0.092;f=2};
q++}
dlt = scrollGroup.size.height
scrollBar = win.add ('scrollbar',[647,10,667,387],0,0,dlt/2.53,{scrolling : true});scrollBar.stepdelta = 50;scrollBar.hide();
scrollBar.value = 0
if(DLslide > 8 & SelRB == 0 || DLslide > 8 & SelRB == 2){scrollBar.show()}
if(DLslide > 54 & SelRB == 1){scrollBar.show()}
if(DLslide > 12 & SelRB == 3){scrollBar.show()}
win.update()
scrollBar.onChanging = function (){scrollGroup.location.y = -kftr * this.value;}
scrollGroup.addEventListener ("click",butPresR())
if(DLslide != 0){
if(SelR != 'null' & SelRB == 0){ScolMas(colPan[0],pn[SelR])}
if(SelB != 'null' & SelRB == 1){ScolMas(colPan[0],pn[SelB])}
if(SelBrg != 'null' & SelRB == 3){ScolMas(colPan[0],pn[SelBrg])}
if(SelPsd != 'null' & SelRB == 2){ScolMas(colPan[0],pn[SelPsd])}}
Image.prototype.onDraw = null
SlidePanel.show();ControlPng.show()}
//***********************************************************
//This code works but without mouse wheel scrolling.
//Can this be made to work somehow?
//Thank you.
//************************************************************
function SlideShow(DLslide,MAS){df = [];pn=[];q = 1;kftr = 1.05;//1.1
xb = 667;//f=0
if(SelRB == 0 || SelRB == 2){x1=3;x=3;y1=3;y=3;x2=xx=160.9;y2=160.9;yy=160.9;fx=25;fy=10;p=y2;sp=0;}
if(SelRB == 2){fx=35;fy=5;}
if(SelRB == 1){x1=x=3;y1=3;y=3;x2=xx=106.2;y2=40;yy=40;fx=0;fy=0;}
if(SelRB == 3){x1=3;x=3;y1=3;y=3;x2=xx=160.7;y2=120;yy=120;win.text = TitulTxt[4] + ' ' + DLGbrg;f=5;fx=0;fy=0;}
if(DLslide > 8){if(SelRB == 0 || SelRB == 2){xb = 644;x2=xx=155;}}
if(DLslide > 54){if(SelRB == 1){xb = 645;x2=xx=102.5;}}
if(DLslide > 12){if(SelRB == 3){xb = 645;x2=xx=155.4;}}
//MkSize();
SlidePanel = win.add ('panel', [10, 10, xb, 387],'',Styl);SlidePanel.graphics.font = TS;SlidePanel.hide()
bounds = [0, 0, xb, 297];scrollGroup = SlidePanel.add ('group',bounds,{scrolling : true});
for(a=0;a<DLslide;a++){Pnc = scrollGroup.add ('panel', [x,y,xx,yy],'',Styl)
imPR = Pnc.add('image', [fx,fy,0,0], new File(MAS[a]), {nmbr: a} )
df.push(imPR);pn.push(Pnc)
MkSize();
if(SelRB == 0){imPR.size = [100,133];}
if(SelRB == 2){imPR.size = [90,130];}
if(SelRB == 1){imPR.size = [102,35];}
if(SelRB == 3){imPR.size = [150,117];}
x=xx+x1;xx=x+x2
if(q == 4 & SelRB == 0 || q == 4 & SelRB == 2){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, 667, yy];kftr = kftr + 0.092;};
if(q == 6 & SelRB == 1){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, 667, yy];kftr = kftr + 0.092;};
if(q == 4 & SelRB == 3){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, 667, yy];kftr = kftr + 0.092;f=2};
q++}
dlt = scrollGroup.size.height
scrollBar = win.add ('scrollbar',[647,10,667,387],0,0,dlt/2.53,{scrolling : true});scrollBar.stepdelta = 50;scrollBar.hide();
scrollBar.value = 0
if(DLslide > 8 & SelRB == 0 || DLslide > 8 & SelRB == 2){scrollBar.show()}
if(DLslide > 54 & SelRB == 1){scrollBar.show()}
if(DLslide > 12 & SelRB == 3){scrollBar.show()}
win.update()
scrollBar.onChanging = function (){scrollGroup.location.y = -kftr * this.value;}
scrollGroup.addEventListener ("click",butPresR())
if(DLslide != 0){
if(SelR != 'null' & SelRB == 0){ScolMas(colPan[0],pn[SelR])}
if(SelB != 'null' & SelRB == 1){ScolMas(colPan[0],pn[SelB])}
if(SelBrg != 'null' & SelRB == 3){ScolMas(colPan[0],pn[SelBrg])}
if(SelPsd != 'null' & SelRB == 2){ScolMas(colPan[0],pn[SelPsd])}}
Image.prototype.onDraw = null
SlidePanel.show();ControlPng.show()}
//***********************************************************
Re: Scrollbar
This code doesn't work because many variables are undefined, plus you did not put examplary values to call SlideShow function.
Re: Scrollbar
Yes, it will not work that way, because there are many connections that are tied to certain paths.
I'll put it together to the bare minimum and, if you'll excuse me, I'll post the code tomorrow or the day after tomorrow.
Thanks for your attention and help!
I'll put it together to the bare minimum and, if you'll excuse me, I'll post the code tomorrow or the day after tomorrow.
Thanks for your attention and help!
Re: Scrollbar
//Good afternoon
//delta(dlt) does not work correctly with a different number of images.
//There is also no mouse wheel control.
//Thank you.
fle = File('~/desktop/Exampe.png')
//SelRB = 0;
//************************************************************
df = [];pn=[];
mdd = 41; // number of images, after 40 the slider does not work properly.
xb = 667;
q = 1;
kftr = 1.05;
x1=3;x=3;y1=3;y=3;x2=xx=160.9;y2=160.9;yy=160.9;fx=25;fy=10;p=y2;sp=0;
if(mdd > 8){xb = 643;x2=xx=154.5;}
win = new Window ("dialog", '', [0, 0, 678, 445]);
SlidePanel = win.add ('panel', [10, 10, xb, 387],'',{borderStyle:'black'});
scrollGroup = SlidePanel.add ('group',[0, 0, xb, 297],{scrolling : true});
for(a=0;a<mdd;a++){Pnc = scrollGroup.add ('panel', [x,y,xx,yy],'',{borderStyle:'black'})
imPR = Pnc.add('image', [fx,fy,0,0], new File(fle), {nmbr: a} )
df.push(imPR);pn.push(Pnc)
MkSize();
imPR.size = [100,133];
x=xx+x1;xx=x+x2
if(q == 4){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, xb, yy];kftr = kftr + 0.092;};
q++}
dlt = scrollGroup.size.height
scrollBar = win.add ('scrollbar',[647,10,667,387],0,0,dlt/2.53);
scrollBar.stepdelta = 50;scrollBar.hide();//delta(dlt) does not work correctly with a different number of images.
scrollBar.value = 0
if(a > 8){scrollBar.show()}
scrollBar.onChanging = function (){scrollGroup.location.y = -kftr * this.value;}
// scrollGroup.addEventListener ("click",butPresR())
Image.prototype.onDraw = null
SlidePanel.show();
win.center();win.show()
//***********************************************************
function MkSize(){
Image.prototype.onDraw = function()
{
if(!this.image)return;
var WH = this.size,
wh = this.image.size,
k = Math.min(WH[0]/wh[0], WH[1]/wh[1]),
xy;
wh = [k*wh[0],k*wh[1]];
xy = [ (WH[0]-wh[0])/2, (WH[1]-wh[1])/2 ];
this.graphics.drawImage(this.image,xy[0],xy[1],wh[0],wh[1]);
WH = wh = xy = null}}
//delta(dlt) does not work correctly with a different number of images.
//There is also no mouse wheel control.
//Thank you.
fle = File('~/desktop/Exampe.png')
//SelRB = 0;
//************************************************************
df = [];pn=[];
mdd = 41; // number of images, after 40 the slider does not work properly.
xb = 667;
q = 1;
kftr = 1.05;
x1=3;x=3;y1=3;y=3;x2=xx=160.9;y2=160.9;yy=160.9;fx=25;fy=10;p=y2;sp=0;
if(mdd > 8){xb = 643;x2=xx=154.5;}
win = new Window ("dialog", '', [0, 0, 678, 445]);
SlidePanel = win.add ('panel', [10, 10, xb, 387],'',{borderStyle:'black'});
scrollGroup = SlidePanel.add ('group',[0, 0, xb, 297],{scrolling : true});
for(a=0;a<mdd;a++){Pnc = scrollGroup.add ('panel', [x,y,xx,yy],'',{borderStyle:'black'})
imPR = Pnc.add('image', [fx,fy,0,0], new File(fle), {nmbr: a} )
df.push(imPR);pn.push(Pnc)
MkSize();
imPR.size = [100,133];
x=xx+x1;xx=x+x2
if(q == 4){x=x1;xx=x2;y=yy+y1;yy=yy+y2+y1;q=0;scrollGroup.bounds = [0, 0, xb, yy];kftr = kftr + 0.092;};
q++}
dlt = scrollGroup.size.height
scrollBar = win.add ('scrollbar',[647,10,667,387],0,0,dlt/2.53);
scrollBar.stepdelta = 50;scrollBar.hide();//delta(dlt) does not work correctly with a different number of images.
scrollBar.value = 0
if(a > 8){scrollBar.show()}
scrollBar.onChanging = function (){scrollGroup.location.y = -kftr * this.value;}
// scrollGroup.addEventListener ("click",butPresR())
Image.prototype.onDraw = null
SlidePanel.show();
win.center();win.show()
//***********************************************************
function MkSize(){
Image.prototype.onDraw = function()
{
if(!this.image)return;
var WH = this.size,
wh = this.image.size,
k = Math.min(WH[0]/wh[0], WH[1]/wh[1]),
xy;
wh = [k*wh[0],k*wh[1]];
xy = [ (WH[0]-wh[0])/2, (WH[1]-wh[1])/2 ];
this.graphics.drawImage(this.image,xy[0],xy[1],wh[0],wh[1]);
WH = wh = xy = null}}
- Attachments
-
- Question.zip
- (2.57 KiB) Downloaded 485 times
Re: Scrollbar
I tried it and roll handling scrollbar doesn't work correctly indeed. It moves it slowly (only when hovered) and doesn't change content of panel.
Most likely you met limitations of ScriptUI. The same is about cut bottom row of images. If other values used don't work then it is another bug.
Most likely you met limitations of ScriptUI. The same is about cut bottom row of images. If other values used don't work then it is another bug.
Re: Scrollbar
Thank you.
It will be so for now.
It will be so for now.