seriousstas , приветствую.
Добавлено спустя 2 часа 35 минут:
Я думаю на Last.fm будут еще изменения - там какая-то каша.
			
		Список разделов › foobar2000 › Секреты foobar2000
Нет таких проблем.ssbest777:Слетел русский текст и фото артиста
А он есть на сайте Last.fm на русском?ssbest777:при выборе ru txt -текст остается на английском
JScript Panel v2.2.2.1 (Get Covers (Artwork) radio logos v12072018 by kgena_ua)
Ошибка выполнения Microsoft JScript:
Переполнение
File: <main>
Line: 573, Col: 9
MC Web, будет удаление элемента списка "История" и очистка всего списка.MC Web:Хотел узнать, планируется ли добавление очистки Истории .....
kgena_ua, приветствую!kgena_ua:"Get Covers (Artwork) radio logos"
"21072019"
function RGB(r,g,b) { return (0xff000000|(r<<16)|(g<<8)|(b)); }
var font = gdi.Font("Segoe UI 10pt",13,32);
var ww,wh;
var txt_row = 0;
var s = 10, step, step1 = window.Width, step2 = window.Width;
var text1, text2, t_width, t_width1, t_width2, dir, mode, sw = 2;
var t1 = "", t2 = "", t3 = "", ti = "";
var show1, show2, show3, showi, showr;
function on_paint(gr) {  
    
    gr.FillSolidRect (0, 0, ww, wh, RGB(0,0,0));
   
    show1 = window.GetProperty("show1",1);
    show2 = window.GetProperty("show2",1);
    show3 = window.GetProperty("show3",1);
    mode = window.GetProperty("mode",1);
    showi = window.GetProperty("showi",1);
    
    if (show1 == 1) {t1 = fb.TitleFormat("$upper([%title%])").Eval();
    } else {t1 = "";}
    if (show2 == 1) {t2 = fb.TitleFormat("$upper([%artist%])").Eval();
    } else {t2 = "";}
    if (show3 == 1) {t3 = fb.TitleFormat("$upper([%album%])[ ▪ %date%]").Eval();
    } else {t3 = "";}
    
    if (showi == 1) {ti = fb.TitleFormat("[$info(encoding)][ ▪ $info(codec)][ $info(codec_profile)][ ▪ $info(bitrate) kbps][ ▪ $info(samplerate) Hz][ ▪ $info(bitspersample) bps][ ▪ $channels()]$if($stricmp($ext(%filename_ext%),cue),  '['cue']',[ ▪ %filesize_natural%])$if($strcmp($info(cue_embedded),yes),' ['embedded cue']',)").Eval();
    } else {ti = "";}
  
    text1 = t1 + (show1 > 0 && t2 != "" ? "  ▪  " : "") + t2 + ((show1 > 0 || show2 > 0) && t3 != "" ? "  ▪  " : "") + t3;
    text2 = showi == 1 ? ti : text1;
    text1 = showi == 1 && text1 == "" ? text2 : text1;
    t_width2 = gr.CalcTextWidth(text2, font);
    t_width1 = gr.CalcTextWidth(text1, font);
    
    if (mode == 1) {
        step = sw == 1 ? step1 : step2;
        t_width = sw == 1 ? t_width1 : t_width2;
        if (sw == 1) {step2 = ww};
        if (sw == 2) {step1 = ww};
        if (t_width < ww - s * 2) {
            if (step >= ww) {dir = "left"; step = ww };
            if (step + t_width >= ww - s) {dir = "left"};
            if (step <= 0 + s) {dir = "right"};
        } else {
            if (step + t_width <= ww - s) {dir = "right"};
            if (step >= 0 + s) {dir = "left"};
        }
    }
    if (mode == 0) { dir = "left";
        if (sw == 1) {
            if (step1 + t_width1 > ww/2) {step2 = ww};
            if (step1 + t_width1 <= 0) {step1 = ww; sw = 2};
        } else {
            if (step2 + t_width2 > ww/2) {step1 = ww};
            if (step2 + t_width2 <= 0) {step2 = ww; sw = 1};
        }
    }
    
    gr.GdiDrawText( text1, font, RGB(221,221,221), step1, txt_row, t_width1, wh);
    gr.GdiDrawText( text2, font, RGB(221,221,221), step2, txt_row, t_width2, wh);
}
function on_size(){   
    ww = window.Width;   
    wh = window.Height;   
}   
var seek_timer;
function on_playback_new_track(info) {
    seek_timer && window.ClearInterval(seek_timer);
    seek_timer = window.SetInterval(function() {
        if (dir == "right") {step1 = step1 + 1};
        if (dir == "right") {step2 = step2 + 1};
        if (dir == "left") {step1 = step1 - 1};
        if (dir == "left") {step2 = step2 - 1};
    window.Repaint();
    }, 50 );
} 
function on_playback_stop() {
    window.ClearInterval(seek_timer);
    window.Repaint();
}
function on_playback_time(){
    if(!seek_timer) on_playback_new_track();
}
function on_mouse_lbtn_up (x, y){      
    var _menu = window.CreatePopupMenu();
    var i = 1;
   
    _menu.AppendMenuItem(0x00000000, i++, "title");
    _menu.CheckMenuItem(i-1, show1);   
    _menu.AppendMenuItem(0x00000000, i++, "artist");
    _menu.CheckMenuItem(i-1, show2);   
    _menu.AppendMenuItem(0x00000000, i++, "album");
    _menu.CheckMenuItem(i-1, show3);
    _menu.AppendMenuItem(0x00000000, i++, "info");
    _menu.CheckMenuItem(i-1, showi);
    _menu.AppendMenuItem(0x00000000, i++, "scrolling mode: " + (mode == 0 ? "L-R" : "L"));
    ret = _menu.TrackPopupMenu(x, y);
    if (ret == 0) return;
    switch (ret) {
    case 1:
        window.SetProperty("show1", show1 == 0 ? 1 : 0);
        break;
    case 2:
        window.SetProperty("show2", show2 == 0 ? 1 : 0);
        break;
    case 3:
        window.SetProperty("show3", show3 == 0 ? 1 : 0);
        break;
    case 4:
        window.SetProperty("showi", showi == 0 ? 1 : 0);
        break; 
    case 5:
        window.SetProperty("mode", mode == 0 ? 1 : 0);
        break; 
    }
    _menu.Dispose();
    return true;
}А что за стиль у шрифта 32? (первое что в сообщении в глаза бросилось). Ну а если по теме, у меня есть адаптированный из сборки, но по моему никто не загонялся раньше с центрированием, это можно сделать по типу у= столько-то. Я сейчас заремил кое что на скорую руку, кое чего добавил. И да, я уже не помню причину, но сейчас вместо gr.GdiDrawText использую gr.DrawString. там по моему были какие-то косяки с отображением.SergPuh.68:gdi.Font("Segoe UI 10pt",13,32)
// ==PREPROCESSOR==
// @name "Scroll Text"
// @author "kgena_ua"
// @version "2.2"
// @feature "v1.4"
// @feature "watch-metadb"
// @feature "dragdrop"
// @import "%fb2k_component_path%docs\flags.txt"
// @import "%fb2k_component_path%docs\helpers.txt"
// ==/PREPROCESSOR==
function RGB(r,g,b) { return (0xff000000|(r<<16)|(g<<8)|(b)); }
function RGBA(r, g, b, a) {return ((a << 24) | (r << 16) | (g << 8) | (b));}
MF_SEPARATOR = 0x00000800;
MF_STRING = 0x00000000;
var font = gdi.Font("Segoe UI 10pt",13,0);  //FONT
var block_rgb, font_rgb = window.GetProperty("|6| Color", 1);
var ww,wh;
var txt_row = 0;
var s = 10, step, step1 = window.Width, step2 = window.Width;
var text1, text2, t_width, t_width1, t_width2, dir, mode, sw = 1;
var t1 = "", t2 = "", t3 = "", ti = "";
var show1, show2, show3, showi, showr;
get_color(); 
function on_paint(gr) {
   
    show1 = window.GetProperty("|1| Title",1);
    show2 = window.GetProperty("|2| Artist",1);
    show3 = window.GetProperty("|3| Album",1);
    mode = window.GetProperty("|5| Mode",0);
    showi = window.GetProperty("|4| Info",0);
   
    if (show1 == 1) {t1 = fb.TitleFormat("$upper([[%tracknumber%. ]%title%])").Eval();
    } else {t1 = "";}
    if (show2 == 1) {t2 = fb.TitleFormat("$upper([%artist%])").Eval();
    } else {t2 = "";}
    if (show3 == 1) {t3 = fb.TitleFormat("$upper([%album%])[ - %date%]").Eval();
    } else {t3 = "";}
   
    if (showi == 1) {ti = fb.TitleFormat("[$info(encoding)]$if(%__hdcd%, | HDCD,)[ | $info(codec)][ $info(codec_profile)][ | $info(bitrate) kbps][ | $info(samplerate) Hz][ | $info(bitspersample) bps][ | $channels()]$if($stricmp($ext(%filename_ext%),cue), | '['cue']',[ | %filesize_natural%])$if($strcmp($info(cue_embedded),yes), | '['embedded cue']',)").Eval();
    } else {ti = "";}
 
    text1 = t1 + (show1 > 0 && t2 != "" ? " - " : "") + t2 + ((show1 > 0 || show2 > 0) && t3 != "" ? " - " : "") + t3;
    text2 = showi == 1 ? ti : text1;
    text1 = showi == 1 && text1 == "" ? text2 : text1;
    text1 = fb.IsPaused ? "- PAUSE -" : text1;
    text2 = fb.IsPaused ? "- PAUSE -" : text2;
    t_width2 = gr.CalcTextWidth(text2, font);
    t_width1 = gr.CalcTextWidth(text1, font);
   
    if (mode == 1) {
        step = sw == 1 ? step1 : step2;
        t_width = sw == 1 ? t_width1 : t_width2;
        if (sw == 1) {step2 = ww};
        if (sw == 2) {step1 = ww};
        if (t_width < ww - s * 2) {
            if (step >= ww) {dir = "left"; step = ww };
            if (step + t_width >= ww - s) {dir = "left"};
            if (step <= 0 + s) {dir = "right"};
        } else {
            if (step + t_width <= ww - s) {dir = "right"};
            if (step >= 0 + s) {dir = "left"};
        }
    }
    if (mode == 0) { dir = "left";
        if (sw == 1) {
            if (step1 + t_width1 > ww/2) {step2 = ww};
            if (step1 + t_width1 <= 0) {step1 = ww; sw = 2};
        } else {
            if (step2 + t_width2 > ww/2) {step1 = ww};
            if (step2 + t_width2 <= 0) {step2 = ww; sw = 1};
        }
    }
 String.prototype.repeat = function(n) {
return new Array(n + 1).join(this);
}   
// ========BACKGROUND & BLOCKS======== //
  gr.FillSolidRect (0, 0, ww, wh, RGB(0,0,0));
//    gr.FillGradRect(0, 0, ww, 85, 90, RGBA(18, 29, 37, 255), RGBA(26, 47, 66, 195));
//    gr.GdiDrawText( "\u2598".repeat(18), font, block_rgb, 0, txt_row, ww, wh);
// ========TEXT======== //   
    d = gr.CalcTextWidth("0000", font); 
    gr.SetTextRenderingHint(4);
    gr.DrawString( text1, font, font_rgb, step1, txt_row, t_width1 + d, wh, StringFormat(1, 1, 0, 0x00001000 | 0x00004000));
    gr.DrawString( text2, font, font_rgb, step2, txt_row, t_width2 + d, wh, StringFormat(1, 1, 0, 0x00001000 | 0x00004000));
}
function on_size(){   
    ww = window.Width;   
    wh = window.Height;   
}   
var seek_timer;
var speed = window.GetProperty("|7| Speed Scroll", 50);
function on_playback_new_track(info) {
    seek_timer && window.ClearInterval(seek_timer);
    seek_timer = window.SetInterval(function() {
        if (dir == "right") {step1 = step1 + 1};
        if (dir == "right") {step2 = step2 + 1};
        if (dir == "left") {step1 = step1 - 1};
        if (dir == "left") {step2 = step2 - 1};
    window.Repaint();
    }, speed );
}
function on_playback_stop() {
    window.ClearInterval(seek_timer);
    window.Repaint();
}
function on_playback_time(){
    if(!seek_timer) on_playback_new_track();
}
function on_mouse_lbtn_up (x, y){     
    var _menu = window.CreatePopupMenu();
    var i = 1;
   
    _menu.AppendMenuItem(0x00000000, i++, "title");
    _menu.CheckMenuItem(i-1, show1);   
    _menu.AppendMenuItem(0x00000000, i++, "artist");
    _menu.CheckMenuItem(i-1, show2);   
    _menu.AppendMenuItem(0x00000000, i++, "album");
    _menu.CheckMenuItem(i-1, show3);
    _menu.AppendMenuItem(0x00000000, i++, "info");
    _menu.CheckMenuItem(i-1, showi);
    _menu.AppendMenuItem(0x00000000, i++, "scrolling mode: " + (mode == 0 ? "L-R" : "L"));
    ret = _menu.TrackPopupMenu(x, y);
    if (ret == 0) return;
    switch (ret) {
    case 1:
        window.SetProperty("|1| Title", show1 == 0 ? 1 : 0);
        break;
    case 2:
        window.SetProperty("|2| Artist", show2 == 0 ? 1 : 0);
        break;
    case 3:
        window.SetProperty("|3| Album", show3 == 0 ? 1 : 0);
        break;
    case 4:
        window.SetProperty("|4| Info", showi == 0 ? 1 : 0);
        break;
    case 5:
        window.SetProperty("|5| Mode", mode == 0 ? 1 : 0);
        break;
    }
    _menu.Dispose();
    return true;
}
// ========Menu======== //
var rbtnDown, ShiftDown;
function on_mouse_rbtn_down(x, y, vkey){
    rbtnDown = true;
    ShiftDown = vkey==6 ? true : false;
}
function on_mouse_rbtn_up(x, y, vkey){
    if (!rbtnDown) return true;
    rbtnDown = false;
    if (ShiftDown)
    return;
}
function on_mouse_rbtn_up(x, y) {
    
    var _menu = window.CreatePopupMenu();
   
    _menu.AppendMenuItem(MF_STRING, 1, "Default");
    _menu.AppendMenuItem(MF_STRING, 2, "Blue");
    _menu.AppendMenuItem(MF_STRING, 3, "Green");
    _menu.AppendMenuItem(MF_STRING, 4, "Red");
    _menu.AppendMenuItem(MF_STRING, 5, "White");
    _menu.AppendMenuItem(MF_STRING, 6, "Yellow")
    _menu.AppendMenuItem(MF_STRING, 7, "Grey")
    _menu.CheckMenuRadioItem(1, 7, window.GetProperty("|6| Color", 1));   
    _menu.AppendMenuItem(MF_SEPARATOR, 0, 0)
    _menu.AppendMenuItem(MF_STRING, 8, "Properties...");
    if (ShiftDown){
    _menu.AppendMenuItem(MF_STRING, 9, "Configure...");
}
    idx = _menu.TrackPopupMenu(x, y);
    switch (idx) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
        
        ch_color(idx);
   
        break;   
    case 8:
        window.ShowProperties();
        break;
    case 9:
        window.ShowConfigure();
        break;
}
    _menu.Dispose();
    return true
}
var block_rgb, font_rgb;
function get_color() {
    if (window.GetProperty("|6| Color") == 1)  font_rgb = RGB(191,228,255), block_rgb = RGB(24,37,46);   //Default   
    if (window.GetProperty("|6| Color") == 2)  font_rgb = RGB(128,192,255), block_rgb = RGB(22,36,46);   //Blue   
    if (window.GetProperty("|6| Color") == 3)  font_rgb = RGB(0,255,0), block_rgb = RGB(18,38,38);       //Green   
    if (window.GetProperty("|6| Color") == 4)  font_rgb = RGB(255,0,0), block_rgb = RGB(38,26,34);       //Red   
    if (window.GetProperty("|6| Color") == 5)  font_rgb = RGB(255,255,255), block_rgb = RGB(26,38,46);   //White   
    if (window.GetProperty("|6| Color") == 6)  font_rgb = RGB(255,255,0), block_rgb = RGB(26,38,38);     //Yellow
    if (window.GetProperty("|6| Color") == 7)  font_rgb = RGB(85,136,171), block_rgb = RGB(22,36,45);    //Grey
}
function getRed(color) {
   return ((color >> 16) & 0xff);
}
function getGreen(color) {
   return ((color >> 8) & 0xff);
}
function getBlue(color) {
   return (color & 0xff);
}
var g_timer;
function ch_color(idx) {
    get_color();
    old_R = getRed(font_rgb);   
    old_G = getGreen(font_rgb);   
    old_B = getBlue(font_rgb);
    window.SetProperty("|6| Color", idx);   
    
    get_color();
    new_R = getRed(font_rgb);   
    new_G = getGreen(font_rgb);   
    new_B = getBlue(font_rgb);
    step_R = (new_R - old_R)/255; step_G = (new_G - old_G)/255; step_B = (new_B - old_B)/255;
    g_timer = window.SetInterval(function() {
        old_R = old_R + step_R; old_G = old_G + step_G; old_B = old_B + step_B;
        R = old_R; G = old_G; B = old_B;
        font_rgb = RGB(R,G,B)
        window.Repaint();
       
        if (
            step_R < 0 && R <= new_R || step_G < 0 && G <= new_G || step_B < 0 && B <= new_B ||
            step_R > 0 && R >= new_R || step_G > 0 && G >= new_G || step_B > 0 && B >= new_B
        ) {window.ClearInterval(g_timer); R = new_R; G = new_G; B = new_B; font_rgb = RGB(R,G,B)};
    }, 5);
}
//--ENDПример из моего скрипта:SergPuh.68:И ещё как сделать что бы "бегущая строка" позиционировалась строго по середине панели по вертикали?
var DT_VCENTER = 0x00000004;
var DT_SINGLELINE = 0x00000020;
var DT_CALCRECT = 0x00000400;
var DT_NOPREFIX = 0x00000800;
gr.GdiDrawText(_text, g_font, g_textcolor, _textPos, 0, textWidth, _wh, DT_VCENTER | DT_SINGLELINE | DT_CALCRECT | DT_NOPREFIX);
Вспомнил, в этой теме как раз обсуждали. gr.GdiDrawText не справлялся с некоторыми символами по типу "крючка" &AHAPXICT:вместо gr.GdiDrawText использую gr.DrawString
  скрипт остался старый а свойства ваши 
 
У меня после таких сообщений начинаются мозговые бури.SergPuh.68:они соеденилисьскрипт остался старый а свойства ваши
А это контрольный в голову. Пошёл я, куда нибудь, выпущу пар.SergPuh.68:ещё бы знать что такое флаги
Вернуться в Секреты foobar2000