关于 delphi 学习中的若干有关问题,请求论坛各位大神们。多谢

关于 delphi 学习中的若干问题,请求论坛各位大神们。谢谢
本帖最后由 pc248 于 2013-07-28 15:38:56 编辑
    暑假又开始研究程序了,虽然进步那是相当小。
    
    转入正题。这里有很多问题,首先来第一个  :   关于效率。

我是个小菜鸟,文科。布吉岛如何提高程序的效率,但我确实认为,肯定有更好的思路来解决这些事情,有空一定要细心钻研一下汇编神马的。现在的问题是: 我用ole来制定一个表格的格式,就是合并单元格啦,没记错的话是CellMerge(x1,y1,x2,y2).  上代码(从第七个格子到最后一个格子,每2个列的合并为一个。):

     k:=7;
        for i := 2 to  Form2.StringGrid3.ColCount div 2 -2  do
        begin
          CellMerge(3,k,3,k+1);
          k:= k +2;
        end;


这倒是没啥问题,没有语法错误,也木有逻辑错误,也编译通过。但是,输出 50x50 格子的数据,程序会卡在这里20秒左右,然后才弹出输出的对话框,俺也知道多线程会是个不错的选择,关键是效率太低了吧,那玩意受不鸟,输出500x500的表单那不得卡死。所以大牛们给我出个主意,最好是我连听都没听过的方法,把它解决掉。拜托各位。


   问题二:程序有一个表格的数据是50x50的,界面根本放不下,导出为excel还行,但是吧,如果我想如果能把图截下来也不错哈,但是咱们平时区域截图只能截看到的,看不到的就没法了,还得移动一下滚动条,然后截图,ps到一起。。太费劲了,有木有能够获取stringgrid的句柄,把它的内容截取下来捏?请教各位大神。
Delphi delphi表格 程序效率 delphi截图

------解决方案--------------------
CellMerge是ole的函数,与stringgrid无关?
ole操作本来就比较慢的,直接在excel里执行vba速度如何?

stringgrid的canvas也只画了可见的部分,截也截不到所有cell的(除非把cell的长宽设的很小)
不如把完整cell循环生成一个html的表格,它的打印、截图就简单了
------解决方案--------------------
哇咔咔~这和汇编有毛关系?