无忧启动论坛

标题: G4D又双叒叕出bug了 [打印本页]

作者: dsfgamesky    时间: 2019-8-10 16:54
标题: G4D又双叒叕出bug了
本帖最后由 dsfgamesky 于 2019-8-10 16:59 编辑

grub4dos又双叒叕又出来俩bug

第一个
setmenu --string=3=-1=0xffffff="时间:"
setmenu --string=9=-1=0xffffff="date&time=yyyy/MM/dd hh:mm:ss AP"
这样只会显示时间,不会显示"时间:"

第二个
用hotkey调用font命令调用(使用更大字体的字库,我的是20x20切换成24x24),setmenu --string的位置不能同步
而且切换成小字库时(20x20切换成16x16),位置会比原来往上
作者: 2011yaya2007777    时间: 2019-8-10 19:12
第一个

我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。
第二个

我这里测试也没有问题。
你把日期放在最后一行,字体大时会挤出去。
日期的位置没有改变。我不明白你说的“位置不能同步”是什么意思。请解释,或截图。
为了测试,把日期放到0行。
setmenu --ver-off
setmenu --string=0=0=0xffffff="时间:"
setmenu --string=6=0=0xffffff="date&time=yyyy/MM/dd hh:mm:ss AP"
作者: dsfgamesky    时间: 2019-8-10 19:44
2011yaya2007777 发表于 2019-8-10 19:12
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。

我这里测试也没有问题。 ...
  1. default 0
  2. timeout 5
  3. font /boot/grub/fonts/font16.hex
  4. graphicsmode -1 -1 -1 24:32
  5. color white/black black/light-gray light-blue/black white/black
  6. setmenu --keyhelp=1
  7. setmenu --auto-num-on
  8. setmenu --ver-off
  9. setmenu --lang=zh
  10. setmenu --highlight-full
  11. setmenu --middle-align
  12. setmenu --box y=5 l=0
  13. setmenu --string=3=-1=0xffffff="时间"
  14. setmenu --string=9=-1=0xffffff="date&time=yyyy/MM/dd hh:mm:ss AP"
复制代码

菜单前头是这样的
作者: dsfgamesky    时间: 2019-8-10 19:48
菜单setmenu Y坐标定在-0行没问题,-1行就显示不了
作者: dsfgamesky    时间: 2019-8-10 19:55
2011yaya2007777 发表于 2019-8-10 19:12
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。

我这里测试也没有问题。 ...

“位置不能同步”我就是想说能不能切换字库时还是保持原来的XY坐标,不改变位置
作者: dsfgamesky    时间: 2019-8-10 20:44
2011yaya2007777 发表于 2019-8-10 19:12
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。

我这里测试也没有问题。 ...

只有setmenu --string=0=-1=0xffffff="date&time=yyyy/MM/dd hh:mm:ss AP"这样不会消失,而其他字符串这样会消失,怪事。。
作者: 2011yaya2007777    时间: 2019-8-10 22:49
"时间"2个字确实是打印了,但是又被帮助信息覆盖了,尽管是什么也看不见的空格。而日期是每秒打印一次,所以可以看见。
加一句  setmenu --help=8=0=37,把帮助信息挤出去。

用hotkey调用font命令,只改变字体尺寸,没有改变原始的菜单尺寸,所以xy尺寸会变动。
你应当调用一个批处理,即改变字体尺寸的同时,也改变菜单尺寸布局。
作者: dsfgamesky    时间: 2019-8-11 06:59
2011yaya2007777 发表于 2019-8-10 22:49
"时间"2个字确实是打印了,但是又被帮助信息覆盖了,尽管是什么也看不见的空格。而日期是每秒打印一次,所 ...

G4D批处理是.bat还是.lst?
作者: 2011yaya2007777    时间: 2019-8-11 11:32
按键帮助信息,可以通过设置参数 --keyhelp=y=color ,从菜单挤出去。
项目帮助信息,菜单始终允许显示,尽管可以没有内容。

如果不设置菜单框底部(即没有 --box h=H),默认的项目帮助信息位置,在菜单底部倒数第5行,占4行(即-1,-2,-3,-4)。你设置字符串在 -1 行,必然受影响(日期时间每秒刷新一次,它能覆盖项目帮助信息)。

如果设置菜单框底部(即有 --box h=H),项目帮助信息位置,在菜单框下面,占4行。

办法1:调整字符串位置,不要位于 -1 至 -4 行。
办法2:指定菜单框底部位置,使其高于字符串位置。比如菜单框底部位于 -7 行。

菜单框底部位置是: Y+H  (即 --box y=Y h=H)

现在通过热键,或者命令行调整字体尺寸,不影响 -0, -1 ... 指定的位置。即始终在指定的行。

grldr.rar

166.45 KB, 下载次数: 1, 下载积分: 无忧币 -2


作者: dsfgamesky    时间: 2019-8-11 13:52
2011yaya2007777 发表于 2019-8-11 11:32
按键帮助信息,可以通过设置参数 --keyhelp=y=color ,从菜单挤出去。
项目帮助信息,菜单始终允许显示, ...

yaya大,setmenu --box h=-7并没有调整按键帮助信息的位置啊。
作者: dsfgamesky    时间: 2019-8-11 14:02
本帖最后由 dsfgamesky 于 2019-8-11 14:12 编辑
2011yaya2007777 发表于 2019-8-11 11:32
按键帮助信息,可以通过设置参数 --keyhelp=y=color ,从菜单挤出去。
项目帮助信息,菜单始终允许显示, ...


yaya大,能不能在setmenu --string里加上背景色RRGGBB?
作者: 2011yaya2007777    时间: 2019-8-11 14:37
我在9楼说,菜单框底部位于-7行,是相对于-1行而言。你应当计算出-7行的具体值。--box
作者: dsfgamesky    时间: 2019-8-11 14:43
2011yaya2007777 发表于 2019-8-11 14:37
我在9楼说,菜单框底部位于-7行,是相对于-1行而言。你应当计算出-7行的具体值。--box

原来是这样子
作者: 2011yaya2007777    时间: 2019-8-11 14:46
不能使用负值。比如,高600,除以16,得37。行号是0-36。所谓-1行,就是35行,-7行,就是29行。Y=5,H=29-5=24。计算完毕。
作者: 2011yaya2007777    时间: 2019-8-11 14:56
字符串的颜色使用64位表示法。高32位是背景色,低32位是前景色。你好像习惯使用最古老的方法,颜色用4位色彩的命名法,选中使用反色。若加载背景图,菜单可使用透明背景。
作者: dsfgamesky    时间: 2019-8-11 17:53
2011yaya2007777 发表于 2019-8-11 14:56
字符串的颜色使用64位表示法。高32位是背景色,低32位是前景色。你好像习惯使用最古老的方法,颜色用4位色 ...

原来是这样,64位表示法是什么意思?求您科普一下。。。
作者: 2011yaya2007777    时间: 2019-8-11 18:02
0x00rrggbb00rrggbb         8字节,64位。1字节有8位。1位表示2进制数,0或1。
作者: dsfgamesky    时间: 2019-8-21 12:43
2011yaya2007777 发表于 2019-8-11 18:02
0x00rrggbb00rrggbb         8字节,64位。1字节有8位。1位表示2进制数,0或1。

有一个问题
setmenu --string=0=0=0xAAAAAA="date&time=Time: yyyy/MM/dd hh:mm:ss AP"(假设现在2019/8/21 12:41:00 AM)
会显示"Time: 2019/8/21 12:41:00 AM",而"Time: "用别的字符串替换则显示"2019/8/21 12:41:00 AM"
这是bug吗?
作者: 2011yaya2007777    时间: 2019-8-21 12:50
字符串里不能使用关键字。如:date,time,yyyy等等。区分大小写。
作者: dsfgamesky    时间: 2019-8-21 12:54
本帖最后由 dsfgamesky 于 2019-8-21 12:58 编辑
2011yaya2007777 发表于 2019-8-21 12:50
字符串里不能使用关键字。如:date,time,yyyy等等。区分大小写。


是这样的
setmenu --string=0=0=0xAAAAAA="date&time=Qw12F: yyyy/MM/dd hh:mm:ss AP"
还是假设现在2019/8/21 12:41:00 AM
那么,会显示"Qw12F: 2019/8/21 12:41:00 AM"
将"Qw12F: "替换为中文或日文、韩文之类的则不会显示
作者: dsfgamesky    时间: 2019-8-21 12:59
dsfgamesky 发表于 2019-8-21 12:54
是这样的
setmenu --string=0=0=0xAAAAAA="date&time=Qw12F: yyyy/MM/dd hh:mm:ss AP"
还是假设现在2 ...

好像将"Qw12F: "替换为除了英文字母和英文符号的都不会显示
作者: dsfgamesky    时间: 2019-8-21 13:08
本帖最后由 dsfgamesky 于 2019-8-21 13:11 编辑
dsfgamesky 发表于 2019-8-21 12:54
是这样的
setmenu --string=0=0=0xAAAAAA="date&time=Qw12F: yyyy/MM/dd hh:mm:ss AP"
还是假设现在2 ...


setmenu --string=0=0=0xAAAAAA="date&time=yyyy年MM月dd日 hh:mm:ss AP"
”年月日“3字不会显示,为什么非得去除这些字符呢?
作者: 2011yaya2007777    时间: 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示,多了一个预想外的功能。那就利用他吧。但是不要奢求其他了。因为我要的动态显示日期时间的目标已经实现了。
作者: dsfgamesky    时间: 2019-8-22 10:11
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:11
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:12
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:12
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:12
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:12
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:12
本帖最后由 dsfgamesky 于 2019-8-22 10:13 编辑
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...


12月也是
作者: dsfgamesky    时间: 2019-8-22 10:12
2011yaya2007777 发表于 2019-8-21 13:13
对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示 ...

还有个问题
checktime * * * 2-5 * && set season=Spring
checktime * * * 6-8 * && set season=Summer
checktime * * * 9-11 * && set season=Autumn
checktime * * * 12-2 * && set season=Winter
蓝色的这段当日期是1月时将不会执行,能不能改一下?
作者: dsfgamesky    时间: 2019-8-22 10:12
本帖最后由 dsfgamesky 于 2019-8-22 10:15 编辑

12月、2月也是的
作者: dsfgamesky    时间: 2019-8-22 10:12
咋发了这么多
作者: dsfgamesky    时间: 2019-8-22 10:14
咋发这么多
作者: 2011yaya2007777    时间: 2019-8-22 12:25
你应当使用
checktime * * * 1,2,12 * && set season=Winter
作者: dsfgamesky    时间: 2019-8-29 12:44
本帖最后由 dsfgamesky 于 2019-8-29 14:59 编辑
2011yaya2007777 发表于 2019-8-22 12:25
你应当使用
checktime * * * 1,2,12 * && set season=Winter


加载splashimage之后color highlight=0xF0,设置timeout的时间的背景颜色不是白色,这是bug吗?
作者: 2011yaya2007777    时间: 2019-8-29 18:14
加载图像后,设置 timeout 的时间的背景颜色就是图像。也就是背景透明。
作者: dsfgamesky    时间: 2019-9-1 00:15
2011yaya2007777 发表于 2019-8-29 18:14
加载图像后,设置 timeout 的时间的背景颜色就是图像。也就是背景透明。

那怎样才能让 timeout 的时间颜色背景与 highlight 相同呢?

作者: 2011yaya2007777    时间: 2019-9-1 05:30
不要加载背景图。
作者: 2011yaya2007777    时间: 2019-9-1 06:14
我的建议,仅供参考。1.  加载背景图时,颜色使用24位表示,更加丰富多彩。可在命令行使用:echo -rrggbb 查看。     2. 菜单选中项的颜色,背景透明。即设置背景色为0。      3.  或者更改延时时间的位置,把他调整到其他地方,不影响高亮菜单项的整体性。
作者: 2011yaya2007777    时间: 2019-9-1 06:19
补充:2中,设置背景色为0,是指设置 highlight只设置前景色,即只有低32位,没有高32位。
作者: dsfgamesky    时间: 2019-9-28 01:31
本帖最后由 dsfgamesky 于 2019-9-28 01:33 编辑
2011yaya2007777 发表于 2019-9-1 06:19
补充:2中,设置背景色为0,是指设置 highlight只设置前景色,即只有低32位,没有高32位。


我刚刚用了一下 iftitle 命令,但是当 [] 里面带有变量的时候,就算是该命令成立但是不会显示菜单
例如(假设%path%是/boot):
iftitle [find %path%/bootmgr] Load BOOTMGR
这样子并不会显示Load BOOTMGR这个菜单
但是 find 命令单独使用,就是不在 [] 里用的的时候,变量又可以用了
这是bug吗??
作者: 2011yaya2007777    时间: 2019-9-28 07:41
条件菜单只能执行简单的语句,没有进行变量解析。
作者: dsfgamesky    时间: 2019-9-28 12:47
2011yaya2007777 发表于 2019-9-28 07:41
条件菜单只能执行简单的语句,没有进行变量解析。

原来是这样,谢谢
作者: almyc    时间: 2019-9-28 13:06
还在老版本




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3