Hallo, brauche dringend Hilfe! Ich hänge schon viel zu lange an dieser Einsendeaufgabe.
Was mache ich falsch? Und wie mache ich es richtig?
Würde mich über schnelle Hilfe freuen!
:confused::confused::confused:
Hier erstmal was ich bisher habe:
Imports System.Drawing.Printing
Imports System.IO
Imports System.Text
Public Class frmNotizen
Const anwendungstitel As String = "Notizen"
Private datei As String
Dim mFontGröße As Single = 10.0F
Dim mFont As New Font("Times New Roman", mFontGröße, FontStyle.Regular)
Dim mbreite As Single
Dim mhöhe As Single
Dim mZeile As String
Private mIndex As Integer
Private msInfo(10) As String
Private zeile As String
Private Sub Seitenumbruch_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
mbreite = rtfNotizen.Width
mhöhe = rtfNotizen.Height
Me.Width = CInt(mbreite)
Me.Height = CInt(mhöhe)
Me.scrFontGröße.Value = CInt(mFontGröße)
AddHandler pdglDruckdokument.PrintPage, AddressOf SeiteDrucken
End Sub
...
Private Sub scrFontGröße_valueChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles scrFontGröße.ValueChanged
mFontGröße = scrFontGröße.Value
Invalidate()
End Sub
Private Sub ZeilenUmbruch(ByVal g As Graphics)
Dim br As New SolidBrush(Color.Black)
Dim p As New Pen(rtfNotizen.BackColor)
Dim rBegrenzung As New Rectangle(rtfNotizen.Left, rtfNotizen.Top, _
CInt(mbreite), CInt(mhöhe))
g.DrawRectangle(p, rBegrenzung)
End Sub
Private Sub FormularUmbruch(ByVal g As Graphics)
Dim br As New SolidBrush(Color.Black)
Dim p As New Pen(rtfNotizen.BackColor, 1)
Dim rBegrenzung As New Rectangle(rtfNotizen.Left, rtfNotizen.Top, _
CInt(mbreite), CInt(mhöhe))
g.DrawRectangle(p, rBegrenzung)
Dim sfmt As New StringFormat()
Dim iZeichen As Integer
Dim iZeilen As Integer
Dim i As Integer
Dim szUmbrochen As SizeF
Dim posY As Integer = rtfNotizen.Top
mFont = New Font(mFont.Name, mFontGröße, mFont.Style)
For i = 0 To msInfo.GetUpperBound(0)
szUmbrochen = New SizeF(g.MeasureString(msInfo(i), mFont, _
New SizeF(CSng(Math.Floor(CDbl(rBegrenzung.Width))), _
CSng(Math.Floor(CDbl(rBegrenzung.Height)))), _
sfmt, iZeichen, iZeilen))
If posY + (iZeilen) * mFont.Height >= rBegrenzung.Bottom Then Exit For
g.DrawString(msInfo(i), mFont, br, New RectangleF(rtfNotizen.Left, posY, _
szUmbrochen.Width, _
szUmbrochen.Height), _
sfmt)
posY = posY + (iZeilen) * mFont.Height
Next
End Sub
Private Sub SeiteDrucken(ByVal obj As Object, ByVal e As PrintPageEventArgs)
Dim g As Graphics = e.Graphics
Dim br As New SolidBrush(Color.Black)
Dim p As New Pen(rtfNotizen.BackColor)
Dim rBegrenzung As Rectangle = e.MarginBounds
Dim sfmt As New StringFormat()
Dim iZeichen As Integer
Dim iZeilen As Integer
Dim szUmbrochen As SizeF
Dim posY As Integer = rBegrenzung.Y
For mIndex = mIndex To msInfo.GetUpperBound(0)
szUmbrochen = New SizeF(g.MeasureString(msInfo(mIndex), mFont, _
New SizeF(CSng(Math.Floor(CDbl(rBegrenzung.Width))), _
CSng(Math.Floor(CDbl(rBegrenzung.Height - mFont.Height)))), _
sfmt, iZeichen, iZeilen))
If posY + (iZeilen) * mFont.Height >= rBegrenzung.Bottom Then Exit For
g.DrawString(msInfo(mIndex), mFont, br, New RectangleF(rBegrenzung.Left, posY, _
szUmbrochen.Width, szUmbrochen.Height), sfmt)
posY = posY + iZeilen * mFont.Height
Next
If mIndex < msInfo.GetUpperBound(0) Then
e.HasMorePages = True
mIndex += 1
Else
e.HasMorePages = False
mIndex = 0
End If
End Sub
Private Sub mnuDrucken_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuDrucken.Click
AddHandler pdglDruckdokument.PrintPage, AddressOf SeiteDrucken
End Sub
...
...
...
Private Sub mnuÖffnen_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles mnuÖffnen.Click
If Me.rtfNotizen.Modified Then
Dim s As String = "Der Inhalt wurde verändert, " & vbCrLf _
& "Wollen Sie die Datei schließen ohne zu speichern? "
If MessageBox.Show(s, anwendungstitel, _
MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, _
MessageBoxDefaultButton.Button2) _
= Windows.Forms.DialogResult.No Then
Exit Sub
End If
End If
With Me.dlgDateiÖffnen
If (.ShowDialog() = Windows.Forms.DialogResult.OK) Then
datei = .FileName
If datei.EndsWith(".rtf") Then
Try
Me.rtfNotizen.LoadFile(datei, RichTextBoxStreamType.RichText)
Catch ausnahme As Exception
MessageBox.Show("Die Datei konnte nicht im rtf-Format geladen werden!")
Me.rtfNotizen.LoadFile(datei, RichTextBoxStreamType.PlainText)
End Try
Dim fs As New StreamReader(datei, Encoding.GetEncoding(1252))
zeile = fs.ReadLine
Dim i As Integer
While Not zeile Is Nothing
If i = msInfo.GetUpperBound(0) Then
ReDim Preserve msInfo(msInfo.GetUpperBound(0) + 10)
End If
msInfo(i) = zeile
i += 1
zeile = fs.ReadLine
End While
Else
Me.rtfNotizen.LoadFile(datei, RichTextBoxStreamType.PlainText)
End If
Me.rtfNotizen.Modified = False
End If
End With
Me.Text = anwendungstitel & "-" & datei
Invalidate()
End Sub
...
...
Private Sub mnuSchriftart_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles mnuSchriftart.Click
With Me.dlgSchriftart
.Font = rtfNotizen.SelectionFont
.Color = rtfNotizen.SelectionColor
.ShowApply = True 'Schaltfläche Übernehmen anzeigen
.ShowColor = True 'Schriftfarbe ermöglichen
End With
If dlgSchriftart.ShowDialog = Windows.Forms.DialogResult.OK Then
mFont = New Font(dlgSchriftart.Font, dlgSchriftart.Font.Style)
scrFontGröße.Value = CInt(mFont.SizeInPoints)
With Me.rtfNotizen
.SelectionColor = dlgSchriftart.Color
.SelectionFont = dlgSchriftart.Font
End With
End If
Invalidate()
End Sub
...
...
...
...
Private Sub mnuSeiteeinrichten_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles mnuSeiteeinrichten.Click
Me.pdglSeiteEinrichten.ShowDialog()
End Sub
Private Sub mnuSeitenansicht_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles mnuSeitenansicht.Click
Me.pdglSeitenvorschau.ShowDialog()
End Sub
Ils vbdn 12a / 1106n
-
Doncap -
31. Januar 2009 um 18:50 -
Erledigt
-
-
Ich hänge genau an der selben Aufgabe... kann da jemand vielleicht ein paar Tips dazu geben... ich verzweifel schon...:wein:
-
Hallo zusammen,
hat jemand hier eine Lösung für diese Aufgabe gefunden.
Ich komme einfach nicht weiter und brauch dringend Hilfe.
Vielleicht habt ihr Harvey82 und Doncap inzwischen eine Lösung dafür?
Ich wäre sehr dankbar für jede Hilfe.
Gruß,
Lili -
Hallo Lili 78,:)
das problem in dieser Aufgabe ist nicht der Code für das Einlesen, sondern der Fehler liegt schon im Code für mnuÖffnen_Click.
Da in der Aufgabe nur nach der Write.exe gefragt ist der "RTF" unwichtig.
Du musst den Code so umschreiben, das er nur den "txt" ausliest.In dem Code "Einlesen" musst du nur noch den Rahmen anpassen.
Welche Farbe und Rahmendicke ist egal.
Der Text passt genau in der linken oberen Ecke.ich hoffe ich konnte Dir damit soweit helfen.;)
Gruß Magnuson1969