Modul :
Source Code :
Sub WrapPText(obj As Object, xLeft As Single, xTop As Single, xWidth As Single, strText As String) Dim Posisi As Long Dim PosisiSpasi As Long obj.CurrentX = xLeft obj.CurrentY = xTop Do While Posisi < Len(strText) Posisi = Posisi + 1 If Mid$(strText, Posisi, 2) = vbCrLf Then obj.CurrentX = xLeft obj.CurrentY = xTop obj.Print Left(strText, Posisi - 1) strText = LTrim(Mid(strText, Posisi + 2)) Posisi = 0: PosisiSpasi = 0 ElseIf Mid$(strText, Posisi, 1) = " " Then PosisiSpasi = Posisi End If 'Jika lebar strText melampaui lebar form If obj.TextWidth(Left(strText, Posisi)) > (xWidth - 400) Then If PosisiSpasi Then Posisi = PosisiSpasi End If obj.CurrentX = xLeft 'obj.CurrentY = xTop + (Posisi * obj.TextHeight(strText)) obj.Print Left(strText, Posisi - 1) strText = LTrim(Mid(strText, Posisi)) Posisi = 0: PosisiSpasi = 0 End If DoEvents Loop If Len(strText) Then obj.CurrentX = xLeft obj.Print strText End If End Sub
Contoh Penggunaan :
Source Code :
Dim strText As String Private Sub Form_Resize() strText = "Ini adalah teks untuk " & _ "percobaan wrapping. Posisi teks akan " & _ "menyesuaikan dengan ukuran " & _ "lebar form. Bila lebar form terlalu sempit, " & _ "maka teks akan otomatis " & _ "berpindah baris." If Me.WindowState <> vbMinimized Then Me.Picture1.Width = Me.ScaleWidth - (2 * Me.Picture1.Left) Me.Picture1.Height = Me.ScaleHeight - (2 * Me.Picture1.Top) Me.Picture1.Cls Me.Picture1.CurrentX = 0 Me.Picture1.CurrentY = 0 WrapPText Me.Picture1, 100, 100, Me.Picture1.Width, strText End If End Sub
Sumber
0 comments:
Post a Comment