dsfgamesky 发表于 2019-8-10 16:54:38

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:07

第一个
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。
第二个
我这里测试也没有问题。
你把日期放在最后一行,字体大时会挤出去。
日期的位置没有改变。我不明白你说的“位置不能同步”是什么意思。请解释,或截图。
为了测试,把日期放到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:51

2011yaya2007777 发表于 2019-8-10 19:12
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。

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

default 0
timeout 5
font /boot/grub/fonts/font16.hex
graphicsmode -1 -1 -1 24:32
color white/black black/light-gray light-blue/black white/black
setmenu --keyhelp=1
setmenu --auto-num-on
setmenu --ver-off
setmenu --lang=zh
setmenu --highlight-full
setmenu --middle-align
setmenu --box y=5 l=0
setmenu --string=3=-1=0xffffff="时间"
setmenu --string=9=-1=0xffffff="date&time=yyyy/MM/dd hh:mm:ss AP"
菜单前头是这样的

dsfgamesky 发表于 2019-8-10 19:48:20

菜单setmenu Y坐标定在-0行没问题,-1行就显示不了

dsfgamesky 发表于 2019-8-10 19:55:14

2011yaya2007777 发表于 2019-8-10 19:12
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。

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

“位置不能同步”我就是想说能不能切换字库时还是保持原来的XY坐标,不改变位置

dsfgamesky 发表于 2019-8-10 20:44:35

2011yaya2007777 发表于 2019-8-10 19:12
我这里测试没有问题。你自己排查一下,或者把菜单贴上来,是不是其他覆盖了。

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

只有setmenu --string=0=-1=0xffffff="date&time=yyyy/MM/dd hh:mm:ss AP"这样不会消失,而其他字符串这样会消失,怪事。。:dizzy:

2011yaya2007777 发表于 2019-8-10 22:49:46

"时间"2个字确实是打印了,但是又被帮助信息覆盖了,尽管是什么也看不见的空格。而日期是每秒打印一次,所以可以看见。
加一句setmenu --help=8=0=37,把帮助信息挤出去。

用hotkey调用font命令,只改变字体尺寸,没有改变原始的菜单尺寸,所以xy尺寸会变动。
你应当调用一个批处理,即改变字体尺寸的同时,也改变菜单尺寸布局。

dsfgamesky 发表于 2019-8-11 06:59:09

2011yaya2007777 发表于 2019-8-10 22:49
"时间"2个字确实是打印了,但是又被帮助信息覆盖了,尽管是什么也看不见的空格。而日期是每秒打印一次,所 ...

G4D批处理是.bat还是.lst?

2011yaya2007777 发表于 2019-8-11 11:32:25

按键帮助信息,可以通过设置参数 --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 ... 指定的位置。即始终在指定的行。

dsfgamesky 发表于 2019-8-11 13:52:32

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

yaya大,setmenu --box h=-7并没有调整按键帮助信息的位置啊。

dsfgamesky 发表于 2019-8-11 14:02:43

本帖最后由 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:11

我在9楼说,菜单框底部位于-7行,是相对于-1行而言。你应当计算出-7行的具体值。--box

dsfgamesky 发表于 2019-8-11 14:43:03

2011yaya2007777 发表于 2019-8-11 14:37
我在9楼说,菜单框底部位于-7行,是相对于-1行而言。你应当计算出-7行的具体值。--box

原来是这样子

2011yaya2007777 发表于 2019-8-11 14:46:45

不能使用负值。比如,高600,除以16,得37。行号是0-36。所谓-1行,就是35行,-7行,就是29行。Y=5,H=29-5=24。计算完毕。

2011yaya2007777 发表于 2019-8-11 14:56:07

字符串的颜色使用64位表示法。高32位是背景色,低32位是前景色。你好像习惯使用最古老的方法,颜色用4位色彩的命名法,选中使用反色。若加载背景图,菜单可使用透明背景。

dsfgamesky 发表于 2019-8-11 17:53:44

2011yaya2007777 发表于 2019-8-11 14:56
字符串的颜色使用64位表示法。高32位是背景色,低32位是前景色。你好像习惯使用最古老的方法,颜色用4位色 ...

原来是这样,64位表示法是什么意思?求您科普一下。。。

2011yaya2007777 发表于 2019-8-11 18:02:38

0x00rrggbb00rrggbb         8字节,64位。1字节有8位。1位表示2进制数,0或1。

dsfgamesky 发表于 2019-8-21 12:43:39

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:59

字符串里不能使用关键字。如:date,time,yyyy等等。区分大小写。

dsfgamesky 发表于 2019-8-21 12:54:30

本帖最后由 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: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:25

本帖最后由 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:03

对了。这个日期字符串,是特殊处理的,只能显示英文。本来只是用来显示日期时间的,发现不影响英文字母显示,多了一个预想外的功能。那就利用他吧。但是不要奢求其他了。因为我要的动态显示日期时间的目标已经实现了。

dsfgamesky 发表于 2019-8-22 10:11:31

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:34

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:04

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: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: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: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:11

本帖最后由 dsfgamesky 于 2019-8-22 10:13 编辑

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

12月也是
页: [1] 2
查看完整版本: G4D又双叒叕出bug了