返回列表 回复 发帖

[求助] 不支持 print属性或方法

[求助] 不支持 print属性或方法

我想写个打印的过程,测试代码如下:
Sub CaiGoudd(Obj As Object)   '打印采购单
    Dim Shang As Integer, Zhuo As Integer    '边距
    Dim Cangmin As String, Addr As String, Tel As String, Fax As String
   
    Shang = 25
    Zhuo = 20
    Cangmin = "瑞安市电器有限公司"
    Addr = "浙江省瑞安市经济开发区"
    Tel = "0577 65100000"
    Fax = "0577 65150000"
   
    With Obj
        .ScaleMode = 6        '度量单位为mm
        .DrawWidth = 6        '线宽度
        .FontSize = 20
        .CurrentX = (.ScaleWidth - .TextWidth(Cangmin)) / 2    '居中
        .CurrentY = Shang
        
        .Print Cangmin    'Printer.Print Cangmin

        .EndDoc
    End With
End Sub

调用时
Call CaiGoudd(Printer)
运行.Print Cangmin    出错,提示不支持属性或方法
但是 obj.Print Cangmin 又可以.
要打印很多数据,每个都加obj 有点麻烦
唉,郁闷中,
Call CaiGoudd(Form1.Picture1) 也一样
大菜鸟一个。。。
还有怎么得到传入的obj的名字,因为printer 要 enddoc,而picture 或form 就不需要,要判断,
虽然可以用on error获得
大菜鸟一个。。。
Print那个方法有一点不正常,是非标准方法(你看到Print是蓝色的没有?),我也不清楚怎么解决……得到传入的obj的类型名可以用TypeName(**) 或者TypeOf xx Is xx……
1

评分次数

  • cwa9958

Sub CaiGoudd(Obj As Object)

红色部份改成他的真正类型试试
1

评分次数

  • cwa9958

VS2008研究MFC9(完成)+ATL8(完成)+STL(预备)+WTL(可选)+BOOST(可弃)...
Print那个方法确实有点怪,在控件属性列表里没有它。
1

评分次数

  • cwa9958

吃了吗?您呐!“吃饱了不饿”是一句放之四海而皆准的至理名言。

明天偶请您吃:蒸羊羔,蒸熊掌,蒸鹿尾儿
烧花鸭,烧雏鸡儿,烧子鹅 ,卤煮咸鸭,酱鸡,腊肉,松花,小肚儿
晾肉,香肠,什锦苏盘, 熏鸡,白肚儿,清蒸八宝猪,江米酿鸭子
罐儿野鸡,罐儿鹌鹑, 卤什锦,卤子鹅,卤虾,烩虾,炝虾仁儿,山鸡
兔脯,菜蟒,银鱼, 清蒸哈什蚂,烩鸭腰儿,烩鸭条儿,清拌鸭丝儿
黄心管儿, 焖白鳝,焖黄鳝,豆鼓鲇鱼,锅烧鲇鱼,烀皮甲鱼,锅烧鲤鱼
......板鸭,筒子鸡。

明天__永远的明天
LZ:试下用函数实现吧.
  1. Option Explicit
  2.     Dim colvb As Long
  3.     Dim x As Long
  4.     Dim y As Long
  5.     Dim fnt As Long
  6.     Dim txt As String
  7.     Dim dd As Variant

  8. Public Function pt(colvb As Long, x As Long, y As Long, fnt As Long, txt As String)
  9.     Picture1.ForeColor = colvb
  10.     Picture1.CurrentX = x
  11.     Picture1.CurrentY = y
  12.     Picture1.FontSize = fnt
  13.     Picture1.Print txt
  14. End Function

  15. Private Sub Command1_Click()
  16.     x = 5
  17.     y = 5
  18.     colvb = vbRed
  19.     fnt = 15
  20.     txt = "PRINT"
  21.     dd = pt(colvb, x, y, fnt, txt)
  22.     x = 5
  23.     y = 15
  24.     colvb = vbBlue
  25.     fnt = 24
  26.     txt = "试下用函数实现吧"
  27.     dd = pt(colvb, x, y, fnt, txt)
  28. End Sub

  29. Private Sub Form_Load()
  30.     Picture1.ScaleMode = 6
  31. End Sub
复制代码
1

评分次数

  • cwa9958

  1. Option Explicit
  2.     Dim colvb As Long
  3.     Dim x As Long
  4.     Dim y As Long
  5.     Dim fnt As Long
  6.     Dim txt As String
  7.     Dim dd As Variant
  8. Public Function pt(colvb As Long, x As Long, y As Long, fnt As Long, txt As String)
  9.     Picture1.ForeColor = colvb
  10.     Picture1.CurrentX = x
  11.     Picture1.CurrentY = y
  12.     Picture1.FontSize = fnt
  13.     Picture1.Print txt
  14. End Function
  15. Private Sub Command1_Click()
  16.     x = 5
  17.     y = 5
  18.     colvb = vbRed
  19.     fnt = 15
  20.     txt = "瑞安市电器有限公司"
  21.     dd = pt(colvb, x, y, fnt, txt)
  22.     y = 12
  23.     colvb = vbBlue
  24.     txt = "浙江省瑞安市经济开发区"
  25.     dd = pt(colvb, x, y, fnt, txt)
  26.     y = 19
  27.     colvb = vbBlue
  28.     txt = "0577 65100000"
  29.     dd = pt(colvb, x, y, fnt, txt)
  30.     y = 26
  31.     colvb = vbBlue
  32.     txt = "0577 65100000"
  33.     dd = pt(colvb, x, y, fnt, txt)
  34. End Sub
  35. Private Sub Form_Load()
  36.     Picture1.ScaleMode = 6
  37.     Picture1.AutoRedraw = True
  38.     Command1_Click
  39. End Sub
复制代码
附件: 您所在的用户组无法下载或查看附件
专家都来了
︶╭ ڪے  哥抽的不是烟,是寂寞、
Print那个方法有一点不正常,是非标准方法(你看到Print是蓝色的没有?),我也不清楚怎么解决……得到传入的obj的类型名可以用TypeName(**) 或者TypeOf xx Is xx……
acme_pjz 发表于 2009-12-28 23:33
.print 没有蓝色
obj.print 有蓝色.可以正常使用
现在只能这样用了
   With Obj
        .ScaleMode = 6        '度量单位为mm
        .DrawWidth = 6        '线宽度
        .FontSize = 20
        .CurrentX = (.ScaleWidth - .TextWidth(Cangmin)) / 2    '居中
        .CurrentY = Shang
        
        Obj.Print Cangmin

        If TypeName(Obj) = "Printer" Then
            .EndDoc
        End If
        
    End With
大菜鸟一个。。。
Sub CaiGoudd(Obj As Object)

红色部份改成他的真正类型试试
download 发表于 2009-12-29 07:58
改了也一样
大菜鸟一个。。。
返回列表