Zum Inhalt springen

Thammes

Mitglieder
  • Gesamte Inhalte

    4
  • Benutzer seit

  • Letzter Besuch

  1. Nabend zusammen, steh mal wieder vor einem Problem Ich soll ein Dreieck zeichnen, das mit dem Mauszeiger an der Ecke B beliebig bewegt werden kann... so bis dahin kein Problem. Mein Problem liegt im Darstellen der Seitenbezeichnungen. Bei der Seite "b" ging das recht leicht, Seite "c" sieht auch akzeptabel aus, jedoch etwas zu weit von der Seite entfernt aber die Seite "a" macht mir extrem zu schaffen. Ich kann diese zwar einigermaßen in Positionen bringen doch sie "klebt" nicht direkt an der Seite, wie es die anderen Bezeichnungen machen. Vielleicht wisst Ihr ja weiter... vielen Dank schon mal im Voraus. Gute Nacht:old Hier mal der Code und Screenshots: Public Class Form1 Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Invalidate() End Sub Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove 'Deklarationen der Variablen Dim g As Graphics = CreateGraphics() Dim p As Pen = New Pen(backcolor, 0.5) Dim br As New SolidBrush(Color.Black) Dim fn As New Font("Arial", 10) Dim ptMitte As New PointF(CSng(ClientSize.Width / 2), CSng(ClientSize.Height / 2)) Static ptMaus As New PointF Dim rectA As New RectangleF(0.5 * (ptMitte.X + ptMaus.Y + ptMaus.X), ptMaus.Y, 60, 60) Dim rectB As New RectangleF(0.5 * (ptMitte.X + ptMaus.X), ptMitte.Y, 120, 120) Dim rectC As New RectangleF(0.5 * (ptMitte.X + ptMaus.X), ptMaus.Y, 120, 120) 'Löschendes Zeichnen g.DrawLine(p, ptMitte, ptMaus) 'Strecke AB g.DrawLine(p, ptMitte, New PointF(ptMaus.X, ptMitte.Y)) 'Strecke AC g.DrawLine(p, ptMaus, New PointF(ptMaus.X, ptMitte.X)) 'Strecke BC g.DrawString("a", fn, br, rectA) g.DrawString("b", fn, br, rectB) g.DrawString("c", fn, br, rectC) 'g.DrawRectangle(p, 0, 0, ClientSize.Width, ClientSize.Height) g.FillRectangle(New SolidBrush(BackColor), 0, 0, ClientSize.Width, ClientSize.Height) 'Zeichnen g.drawstring("a", fn, br, rectA) g.DrawString("b", fn, br, rectB) g.DrawString("c", fn, br, rectC) p.Color = Color.Black ptMaus.X = CSng(e.X) ptMaus.Y = CSng(e.Y) g.DrawLine(p, ptMitte, ptMaus) 'Strecke AB g.DrawString("c", fn, br, rectC) p.Color = Color.Black g.DrawLine(p, ptMaus, New PointF(ptMaus.X, ptMitte.Y)) 'Strecke AC g.DrawString("b", fn, br, rectB) p.Color = Color.Black g.DrawLine(p, ptMitte, New PointF(ptMaus.X, ptMitte.Y)) 'Srecke BC g.drawString("a", fn, br, rectA) End Sub End Class
  2. Haa, ich werd verrückt, :upps jetzt gehts. Oh mann so ein banaler Fehler. Auf alles wäre ich gekommen nur auf das nicht. Vielen Vielen Dank du rettest mir meinen Tag!! Caio Thammes
  3. Hallo zusammen, habe ein Problem mit der Ereignisauslösung bei meinem Programm. Es soll ein Ereignis bei überschreiten des Members m_dispo ausgelöst werden (DispoGrenze). Es geht darum, dass ein Konto erzeugt und mit Werten belegt wird. Sollte bei der Argumentübergabe (Werte) der Dispo (Dispo = -3000)überschritten werden z.B. -4000 so ist das Ereignis DispoGrenze auszulösen und dementsprechend eine Messagebox mit Meldung an den Benutzer auszulösen. Es soll auch eine Meldung ausgegeben werden, wenn bei der zweiten Buchung der Dispo überschritten wird. Das ganze muss von der Sub Buchung kommen, die macht die Arbeit. Steh seit einer Woche auf dem Schlauch und hab schon etliche versuche unternommen doch alle schlugen fehl. Ich vermute die Fehler in den rot markierten Bereichen. Ich hoffe Ihr könnt mir mit Rat und vielleicht Tat zur Seite stehen. Vielen Dank schon mal im Voraus Hier der Code: Imports System.Console Imports System.Windows.Forms Public Class Konto Private m_Kontonr As String Private m_Kontostand As Decimal Private m_Dispo As Decimal Event DispoGrenze(ByVal Sender As Object, ByRef cancel As Object) Sub New(ByVal KontoNr As String, ByVal Kontostand As Decimal, ByVal Dispo As Decimal) 'Konstruktor m_Kontonr = KontoNr m_Kontostand = Kontostand m_Dispo = Dispo End Sub Public ReadOnly Property KontoNr() As String Get KontoNr = m_Kontonr End Get End Property Public ReadOnly Property Kontostand() As Decimal Get Kontostand = m_Kontostand End Get End Property Public Property Dispo() As Decimal Get Dispo = m_Dispo End Get Set(ByVal value As Decimal) m_Dispo = value End Set End Property [COLOR="Red"] Sub Buchung(ByVal Betrag As Decimal) Dim Abbrechen As Boolean = False If Betrag < m_Dispo Then RaiseEvent DispoGrenze(Me, Abbrechen) If m_Kontostand < m_Dispo Then RaiseEvent DispoGrenze(Me, Abbrechen) End If Else m_Kontostand = m_Kontostand + (Betrag) End If End Sub[/COLOR] Sub Ausgabe() 'Ausgabe der Konten WriteLine("Kontonr: {0,-10} Kontostand: {1,4} Disporahmen: {2,8}", m_Kontonr, m_Kontostand, m_Dispo) End Sub End Class Public Class Test Private Shared WithEvents k As Konto Shared Sub Main() Dim k As New Konto("123", -8000, -3000) k.Ausgabe() k.Buchung(-10000) k.Ausgabe() k.Buchung(-2000) k.Ausgabe() ReadLine() End Sub [COLOR="Red"]Private Shared Sub Konto_DispoGrenze(ByVal Sender As Object, ByRef cancel As Object) Handles k.DispoGrenze[/COLOR] MessageBox.Show("Test", "Text", MessageBoxButtons.OK, MessageBoxIcon.Error) End Sub End Class

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...