小编Gui*_*ips的帖子

IE8的风景印刷

从HTML中读过横向打印,但我的问题更具体.在我承认失败并考虑不同的职业生涯之前,我想我会在这里发帖.

这是我的情况:

我正在用HTML编写时间表显示和打印程序.用户单击各种选项,如房间,日期等.然后进行AJAX调用,以获取数据,并使用Javascript绝对定位时间表块.时间表的宽度大于时间表的高度.因此,我需要在横向打印,以便最大化页面上的大小.

首先,@media print{@page {size: landscape}}在任何情况下,普通都不行,我试过了.

这有点工作: filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);.

我已经尝试将CS​​S ImageTransform应用于HTML或BODY元素中的任何一个,结果不同.

应用于HTML元素时,似乎页面呈现为纵向(这是我组织中用户的默认设置),然后旋转90度.显然这对我没有帮助.

当应用于BODY元素时,一切都有效,除了相对或绝对定位的元素(仍然显示为肖像).我不能放弃绝对定位,不从头开始重写,这是我没有的奢侈品.

我该怎么办?

html printing landscape internet-explorer-8

5
推荐指数
1
解决办法
3184
查看次数

VB6 API声明路径

我在模块中有以下声明:

Private Declare Function gzopen Lib "ZLIB.DLL" (ByVal filePath As String, ByVal mode As String) As Long
Run Code Online (Sandbox Code Playgroud)

函数中的以下代码行失败,出现"找不到文件:ZLIB.DLL"错误:

lGZFileHandle = gzopen(sPath, "rb")
Run Code Online (Sandbox Code Playgroud)

我知道ZLIB不需要注册.我的问题是,ZLIB.DLL需要在哪里才能使我的代码工作?我也知道,这个代码工作的另一台机器上.目前我在与应用程序exe相同的文件夹中有ZLIB.DLL.

UPDATE

令我宽慰的是,代码在编译时确实有效.但是在IDE中运行时它不起作用(它在不同的机器上运行).我仍然在应用程序文件夹中有ZLIB.DLL.这意味着必须检查应用程序路径以加载DLL.

为了解决这个问题,我尝试过:

Private Declare Function SetDllDirectory Lib "Kernel32" Alias "SetDllDirectoryA" (ByVal path As String) As Long
Run Code Online (Sandbox Code Playgroud)

然后在功能中:

SetDllDirectory App.path
Run Code Online (Sandbox Code Playgroud)

这似乎允许加载DLL,但我然后得到'错误的DLL调用约定'错误.情节变粗.

解决了

答案似乎在这里:http://www.zlib.net/DLL_FAQ.txt.我想这是RTFM的一个例子.因此,在IDE中,这个STD_CALL常规很有效,但是一旦编译完成,C样式调用约定就足够了.它仍然无法解释为什么它适用于IDE中的其他计算机.哼哼.

谢谢大家指出我正确的方向.

vb6 api zlib

4
推荐指数
1
解决办法
5367
查看次数

Javascript匿名函数和全局变量

我以为我会尝试并且聪明并创建一个我自己的Wait函数(我意识到还有其他方法可以做到这一点).所以我写道:

var interval_id;
var countdowntimer = 0;

function Wait(wait_interval) {
  countdowntimer = wait_interval;

  interval_id = setInterval(function() {
    --countdowntimer <=0 ? clearInterval(interval_id) : null;
  }, 1000);

  do {} while (countdowntimer >= 0);
}

// Wait a bit: 5 secs
Wait(5);
Run Code Online (Sandbox Code Playgroud)

这一切都有效,除了无限循环.检查后,如果我取出While循环,则按预期输入匿名函数5次.很明显,全局变量countdowntimer递减了.

但是,如果我检查countdowntimer的值,在While循环中,它永远不会下降.尽管在While循环中调用了匿名函数,但这是事实!

很明显,不知何故,倒计时器有两个值浮动,但为什么呢?

编辑

好的,所以我理解(现在)Javascript是单线程的.而那 - 有点 - 回答我的问题.但是,在处理这个单线程的那一点上,使用setInterval的所谓异步调用实际上是否会发生?它只是在函数调用之间吗?当然不是,那些需要很长时间才能执行的功能呢?

javascript global-variables anonymous-function setinterval

4
推荐指数
1
解决办法
5245
查看次数

VBA 电源运算符 (^) 在 64 位 VBA 中无法按预期工作

我觉得问这个问题很愚蠢,我相信有一个简单的答案。我试图获得一个数字的权力如下:

Sub test()

Dim number As Long

number = 2^8 ' Expect to get 256 here

End Sub
Run Code Online (Sandbox Code Playgroud)

这会产生错误:'预期:列表分隔符或 )'。

我很惊讶这不起作用。我知道有一个 Excel 定义的幂函数。但是 VBA 不支持 ^ 操作符 - 它在 VB6 中吗?

更多信息

如果我在“立即”窗口中执行相同操作,则会出现以下奇怪现象(没有错误):

?2^8
 2  8
Run Code Online (Sandbox Code Playgroud)

看起来只是 2 和 8 之间的空格。

有用?

所以我弄乱了各种符号组合,发现在立即窗口中:

?2^^8
 256
Run Code Online (Sandbox Code Playgroud)

什么……?有谁知道这可能是为什么?

更多实验

我猜我的 Excel 安装肯定坏了(尽管其他一切都正常)。即时窗口的其他一些内容:

如果我在 ^ 之前插入一个空格:

?2 ^3
 8

?2!^3
 8

?2"^3
 2 ^3

?2£^3
 2  0  3

?2%^3
 8

?2@^3
 8

?2#^3
 8
Run Code Online (Sandbox Code Playgroud)

excel vba ms-word

4
推荐指数
1
解决办法
2万
查看次数

Firefox Javascript事件匿名函数

我正在尝试在用户单击HTML表格中的单元格时注册匿名函数.这是一些原始的,纯粹的代码:

document.getElementById(
    "course"+displayed_year_index+occurrences_indices[displayed_year_index]).onclick =
        eval("function() {PrintReceipt("+result.years[result_year_index].rul_code+");};");
Run Code Online (Sandbox Code Playgroud)

注意使用eval,因为它位于一个循环中,并且匿名函数每次都是不同的.

可以说,这在Firefox 2中运行得非常好.但是,Firefox 3会抛出"语法错误",指向"函数"一词后的括号内.

有没有人对如何解决这个问题有任何明智的想法?


为了清楚地说明我正在尝试做什么,这里有一个简单的例子:

for (index=0; index<4; index++) {
    document.getElementById("div"+index).onclick = 
        eval("function () {Foo(index);};");
}
Run Code Online (Sandbox Code Playgroud)

换句话说,我希望触发相同的功能,每个参数值都有不同的参数值div.

javascript firefox closures anonymous-function event-handling

1
推荐指数
1
解决办法
1934
查看次数