Ils vbdn 12a / 1106n

  • 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

  • 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