Pane Linharte, děkuji za reakci a Váš čas. Abych upřesnil... Ty komponenty nejsou specifické. Jsou to právě prvky těch specifických přípojů. Ve formulářích těch přípojů budou v různých kombinacích se objevující komponenty (nosníky, šrouby, svary) Tyto komponenty (není jich mnoho zatím) jsou i se svými metodami vždy stejné ve všech přípojích a já jen určuji jejich vlasnosti a jejich počet. Přikládám nástin toho řešení. Vy tvrdíte, že někde držím nody, ale já je nikde nedržím. Vytvářím je až při procesu uložení (pokud teda chápu dobře to, co předkládám). Naopak, pokud budu vázat vytvoření nodů na zadání hodnoty, budu je muset držet v průběhu celé práce, což nepotřebuji. V podstatě bych musel mít vytvořený dokument xml otevřený a do něj zapisovat při změně hodnoty? Chápu to dobře? Metodu vytvářející nod jsem umístil záměrně do třídy, ke které se váže právě proto, abych do věci nevháněl zmatek. Myslel jsem, že pro případnou úpravu čehokoliv, to bude právě ku prospěchu. Chápu, že se asi díváte na tyto kroky s údivem, ale ono mi tak dělá radost, když to dělá co má. Asi to není úplně košer... Doporučil by jste nějakou vhodnou literaturu, ktará v rozumném rozsahu obsahuje problematiku OOP ve VB.NET
Public Class TridaA
Private parh As Single
Private parb As Single
Public Property h() As Single
Get
Return parh
End Get
Set(ByVal value As Single)
parh = value
End Set
End Property
Public Property b() As Single
Get
Return parb
End Get
Set(ByVal value As Single)
parb = value
End Set
End Property
Public Function A() as Single
Return h * b
End Function
Public Function Dokument() As String
Return "h=" & h() & "m" & vbCrLf & "b=" & b() & "m" & vbCrLf & "A=" & A() & "m2" & vbCrLf
End Function
End Class
Public Class Form1
Public ctv1 As New TridaA
Public ctv2 As New TridaA
Public ctv3 As New TridaA
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ctv1.h = 2
ctv1.b = 3
ctv2.h = 22
ctv2.b = 25
ctv3.h = 0.2
ctv3.b = 0.1
End Sub
Private Sub UlozDokument_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UlozDokument.Click
Dim kolekce As New List(Of TridaA)({ctv1, ctv2, ctv3})
Dim Vystup As String = ""
For i = 0 To kolekce.Count - 1
Vystup &= kolekce(i).Dokument() & vbCrLf
Next
Label1.Text = Vystup
End Sub
End Class
|