Compare commits

...

6 Commits
v0.4 ... master

Author SHA1 Message Date
6543 b2616664fd
add Tree png version 2019-10-25 18:40:53 +02:00
6543 3468188067
found a changelog 2019-10-25 16:55:22 +02:00
6543 f46deb1008 found as working on disk 2019-10-25 16:54:43 +02:00
6543 baa9b2695a v0.9 2019-10-25 16:52:34 +02:00
6543 7d08f05461 v0.8 2019-10-25 16:50:19 +02:00
6543 79382dc526 v0.5 2019-10-25 16:46:56 +02:00
24 changed files with 5895 additions and 1254 deletions

0
SB-PictureTagger.sln Normal file → Executable file
View File

124
SB-PictureTagger/Class_Mark.vb Executable file
View File

@ -0,0 +1,124 @@

Public Class Mark

'########################################################################################
'############################## Private Declarations ##################################
'########################################################################################

Private sID As String '-> Das Kommando muss angegeben werden
Private sCommand As String '-> Das Kommando muss angegeben werden
Private nLeft As Integer '\
Private nTop As Integer ' \ Die Position muss angegeben werden. Der Datentyp Rectangle wird nur intern benutzt,
Private nWidth As Integer ' / weshalb nach ausen die Eigenschaften einzeln angegeben werden müssen!
Private nHeight As Integer '/
Private sName As String '-> Der Name ist Optional
Private sDescription As String '-> Die Beschreibung ist Optional

'########################################################################################
'############################## Property ##############################################
'########################################################################################

Public Property ID As String
Get
Return Me.sID
End Get
Set(ByVal value As String)
Me.sID = value
End Set
End Property 'ID

Public Property Command As String
Get
Return Me.sCommand
End Get
Set(ByVal value As String)
Me.sCommand = value
End Set
End Property 'Command

Public Property Left() As Integer
Get
Return Me.nLeft
End Get
Set(ByVal value As Integer)
If value >= 0 Then Me.nLeft = value
End Set
End Property 'Left

Public Property Top() As Integer
Get
Return Me.nTop
End Get
Set(ByVal value As Integer)
If value >= 0 Then Me.nTop = value
End Set
End Property 'Top

Public Property Width() As Integer
Get
Return Me.nWidth
End Get
Set(ByVal value As Integer)
If value >= 0 Then Me.nWidth = value
End Set
End Property 'Width

Public Property Height() As Integer
Get
Return Me.nHeight
End Get
Set(ByVal value As Integer)
If value >= 0 Then Me.nHeight = value
End Set
End Property 'Height

Public Property Name As String
Get
Return Me.sName
End Get
Set(ByVal value As String)
Me.sName = value
End Set
End Property 'Name

Public Property Description As String
Get
Return Me.sDescription
End Get
Set(ByVal value As String)
Me.sDescription = value
End Set
End Property 'Description


'########################################################################################
'############################## PUBLIC Subs ###########################################
'########################################################################################

Public Sub Clear()
With Me
.sID = ""
.sCommand = ""
.nLeft = -1
.nTop = -1
.nWidth = -1
.nHeight = -1
.sName = ""
.sDescription = ""
End With
End Sub

Public Sub New(Optional ByVal ID As String = "", Optional ByVal Command As String = "", Optional ByVal Left As Integer = -1, Optional ByVal Top As Integer = -1, Optional ByVal Width As Integer = -1, Optional ByVal Height As Integer = -1, Optional ByVal Name As String = "", Optional ByVal Description As String = "")
With Me
.sID = ID
.sCommand = Command
.nLeft = Left
.nTop = Top
.nWidth = Width
.nHeight = Height
.sName = Name
.sDescription = Description
End With
End Sub

End Class 'Mark ### Export, Improt Vormat für Markierungen

View File

@ -0,0 +1,174 @@

Public Class MarkButton
'Erbe von Class Button
Inherits Windows.Forms.Button

'########################################################################################
'############################## Declarations ##########################################
'########################################################################################

'Variablen
Private nIndex As Integer
Private components As System.ComponentModel.IContainer
Private bRO

'Objecte
Friend WithEvents Menu As System.Windows.Forms.ContextMenuStrip
Friend WithEvents Menu_Move As System.Windows.Forms.ToolStripMenuItem 'Verschiebe Markierung
Friend WithEvents Menu_SiceChange As System.Windows.Forms.ToolStripMenuItem 'Ändere Größe
Friend WithEvents Menu_Delete As System.Windows.Forms.ToolStripMenuItem 'Verschiebe Markierung
Friend WithEvents Menu_Hide As System.Windows.Forms.ToolStripMenuItem 'Verstecke einzelne Markierung

'Events
Public Event LikeMove(ByVal sender As Object)
Public Event LikeSiceChange(ByVal sender As Object)
Public Event LikeDelete(ByVal sender As Object)


'########################################################################################
'############################## Property ##############################################
'########################################################################################

Public Property Position() As Rectangle
Get
Return New Rectangle(Me.Left, Me.Top, Me.Width, Me.Height)
End Get
Set(ByVal value As Rectangle)
Me.Width = value.Width
Me.Height = value.Height
Me.Left = value.Left
Me.Top = value.Top
End Set
End Property 'PositionOnTaggedIMG

Private bDeleted As Boolean
Public Property Deleted As Boolean
Get
Return Me.bDeleted
End Get
Set(ByVal value As Boolean)
If value Then Me.Clear()
Me.bDeleted = value
End Set
End Property

Public ReadOnly Property Index As Integer
Get
Return nIndex
End Get
End Property 'Index

'########################################################################################
'############################## PUBLIC Subs ###########################################
'########################################################################################

Public Sub Clear()
With Me
.Visible = False
.Width = 0
.Height = 0
.Left = 0
.Top = 0
.Text = ""
.FlatAppearance.BorderSize = 3
End With
End Sub 'Clear

Public Sub New(Optional ByVal Index As Integer = -1, Optional ByVal RO As Boolean = False)
'
'Main
'
Me.FlatStyle = Windows.Forms.FlatStyle.Flat
Me.BackColor = Drawing.Color.Transparent
Me.BackgroundImage = Nothing
Me.ForeColor = Drawing.Color.Transparent
Me.FlatAppearance.BorderColor = Drawing.Color.Black
Me.FlatAppearance.MouseDownBackColor = Drawing.Color.Transparent
Me.FlatAppearance.MouseOverBackColor = Drawing.Color.Transparent
Me.TabStop = False

Me.Menu = New System.Windows.Forms.ContextMenuStrip
Me.Menu_Move = New System.Windows.Forms.ToolStripMenuItem
Me.Menu_SiceChange = New System.Windows.Forms.ToolStripMenuItem
Me.Menu_Hide = New System.Windows.Forms.ToolStripMenuItem
Me.Menu_Delete = New System.Windows.Forms.ToolStripMenuItem

Me.nIndex = Index
Me.bRO = RO

'
'Menu
'
Me.Menu.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.Menu_Move, Me.Menu_SiceChange, Me.Menu_Hide, Me.Menu_Delete})
Me.Menu.Name = "Menu"
Me.Menu.Size = New System.Drawing.Size(202, 70)

'
'Menu_Move
'
Me.Menu_Move.Name = "Menu_Move"
Me.Menu_Move.Size = New System.Drawing.Size(201, 22)
Me.Menu_Move.Text = "Verschiebe Markierung"
Me.Menu_Move.Enabled = Not RO 'Schreibschutz setzen wenn übergenben
Me.Menu_Move.Enabled = False '<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<<#<< Noch in Arbeit >>>>>>>>

'
'Menu_SiceChange
'
Me.Menu_SiceChange.Name = "Menu_SiceChange"
Me.Menu_SiceChange.Size = New System.Drawing.Size(201, 22)
Me.Menu_SiceChange.Text = "Ändere Größe"
Me.Menu_SiceChange.Enabled = Not RO 'Schreibschutz setzen wenn übergenben

'
'Menu_Hide
'
Me.Menu_Hide.Name = "Menu_Hide"
Me.Menu_Hide.Size = New System.Drawing.Size(201, 22)
Me.Menu_Hide.Text = "Verstecke Markierung"
Me.Menu_Hide.Enabled = Not RO 'Schreibschutz setzen wenn übergenben

'
'Menu_Delete
'
Me.Menu_Delete.Name = "Menu_Delete"
Me.Menu_Delete.Size = New System.Drawing.Size(201, 22)
Me.Menu_Delete.Text = "Lösche Markierung"
Me.Menu_Delete.Enabled = Not RO 'Schreibschutz setzen wenn übergenben

If nIndex >= 0 Then Me.ContextMenuStrip = Me.Menu 'Wenn Gültiget Index Aktiviere Menü

Me.Clear()
End Sub ' New(-1, False) will execute wenn declare a new instance


'########################################################################################
'############################## Sub on Event ##########################################
'########################################################################################

'Private Sub MarkButtnon_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus
' Me.FlatAppearance.BorderSize = 4
'End Sub 'MarkButnon_GotFocus Event

'Private Sub MarkButtnon_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
' Me.FlatAppearance.BorderSize = 3
'End Sub 'MarkButnon_LostFocus Event

Private Sub Menu_Delete_Click() Handles Menu_Delete.Click
RaiseEvent LikeDelete(Me)
End Sub 'Menu_Delete_Click = Me.LikeDelete

Private Sub Menu_Hide_Click() Handles Menu_Hide.Click
Me.Visible = False
End Sub 'Menu_Hide_Click = Me.Visible <- False

Private Sub Menu_Move_Click() Handles Menu_Move.Click
RaiseEvent LikeMove(Me)
End Sub 'Menu_Move_Click = Me.LikeMove

Private Sub Menu_SiceChange_Click() Handles Menu_SiceChange.Click
RaiseEvent LikeSiceChange(Me)
End Sub 'Menu_SiceChange_Click = Me.LikeSiceChange


End Class 'MarkButton

97
SB-PictureTagger/Class_Place.vb Executable file
View File

@ -0,0 +1,97 @@

Public Class Place

'########################################################################################
'############################## Declare Events ########################################
'########################################################################################

Public Event PropertyTitleChanged()
Public Event PropertyAdressChanged()
Public Event PropertyDescriptionChanged()
Public Event PropertyGPSChanged()


'########################################################################################
'############################## Property ##############################################
'########################################################################################

Private sTitle As String
Public Property Title() As String
Get
Return sTitle
End Get
Set(ByVal value As String)
If Not value = sTitle Then
sTitle = value
RaiseEvent PropertyTitleChanged()
End If
End Set
End Property

Private sAdress As String
Public Property Adress() As String
Get
Return sAdress
End Get
Set(ByVal value As String)
If Not value = sAdress Then
sAdress = value
RaiseEvent PropertyAdressChanged()
End If
End Set
End Property

Private sDescription As String
Public Property Description() As String
Get
Return sDescription
End Get
Set(ByVal value As String)
If Not value = sDescription Then
sDescription = value
RaiseEvent PropertyDescriptionChanged()
End If
End Set
End Property

Private sGPS As String
Public Property GPS() As String
Get
Return sGPS
End Get
Set(ByVal value As String) 'Später eventuelle überprüfung auf format und deren Umwandlung -GPS Formate-
If Not value = sGPS Then
sGPS = value
RaiseEvent PropertyGPSChanged()
End If
End Set
End Property


'########################################################################################
'############################## PUBLIC Subs ###########################################
'########################################################################################

Public Sub Clear()
Me.sAdress = Nothing
Me.sDescription = Nothing
Me.sGPS = Nothing
Me.sTitle = Nothing
End Sub 'Lehren des Objects


'########################################################################################
'############################## Public Overrides ######################################
'########################################################################################

Public Overrides Function GetHashCode() As Integer
Dim sb As New System.Text.StringBuilder
sb.Append(Me.sAdress)
sb.Append(Me.sDescription)
sb.Append(Me.sGPS)
sb.Append(Me.sTitle)
Return sb.ToString.GetHashCode()
End Function 'GetHashCode


End Class 'Class Place

View File

@ -0,0 +1,170 @@

Public Class Rectangle
'########################################################################################
'############################## Private Declarations ##################################
'########################################################################################

Private nLeft As Integer = 0
Private nTop As Integer = 0
Private nWidth As Integer = 0
Private nHeight As Integer = 0


'########################################################################################
'############################## Property ##############################################
'########################################################################################

Public Property Left() As Integer
Get
Return Me.nLeft
End Get
Set(ByVal value As Integer)
If value < 0 Then value = 0
Me.nLeft = value
End Set
End Property 'Left

Public Property Top() As Integer
Get
Return Me.nTop
End Get
Set(ByVal value As Integer)
If value < 0 Then value = 0
Me.nTop = value
End Set
End Property 'Top

Public Property Width() As Integer
Get
Return Me.nWidth
End Get
Set(ByVal value As Integer)
If value < 0 Then value = 0
Me.nWidth = value
End Set
End Property 'Width

Public Property Height() As Integer
Get
Return Me.nHeight
End Get
Set(ByVal value As Integer)
If value < 0 Then value = 0
Me.nHeight = value
End Set
End Property 'Height

Public ReadOnly Property PointA As Drawing.Point
Get
Return New Drawing.Point(nLeft, nTop)
End Get
End Property 'RO PointA

Public ReadOnly Property PointB As Drawing.Point
Get
Return New Drawing.Point(nLeft + nWidth, nTop + nHeight)
End Get
End Property 'RO PointB


'########################################################################################
'############################## PUBLIC Functions ######################################
'########################################################################################


Public Function AsString() As String
With Me
If .nLeft = Nothing Then nLeft = 0
If .nTop = Nothing Then nTop = 0
If .nWidth = Nothing Then nWidth = 0
If .nHeight = Nothing Then nHeight = 0
AsString = "Left: " & Convert.ToString(.nLeft) & "; Top: " & Convert.ToString(.nTop) & "; Width: " & Convert.ToString(.nWidth) & "; Height: " & Convert.ToString(.nHeight)
End With
End Function 'AsString


'########################################################################################
'############################## PUBLIC Subs ###########################################
'########################################################################################

'New(Left, Top, Width, Height)
Public Sub New(Optional ByVal Left As Integer = Nothing, Optional ByVal Top As Integer = Nothing, Optional ByVal Width As Integer = Nothing, Optional ByVal Height As Integer = Nothing)
With Me
.Left = Left
.Top = Top
.Width = Width
.Height = Height
End With
End Sub 'New

Public Sub Clear()
With Me
.Left = 0
.Top = 0
.Width = 0
.Height = 0
End With
End Sub

'########################################################################################
'############################## PUBLIC Shared Functions ###############################
'########################################################################################

Public Shared Function Points_to_Rectangle(ByVal PointA As System.Drawing.Point, ByVal PointB As System.Drawing.Point) As Rectangle
Dim rRectangle As New Rectangle
Dim A_x As Integer = PointA.X
Dim A_y As Integer = PointA.Y
Dim B_x As Integer = PointB.X
Dim B_y As Integer = PointB.Y

If A_x < B_x Then
If A_y < B_y Then
PointA.X = A_x
PointA.Y = A_y
PointB.X = B_x
PointB.Y = B_y
ElseIf A_y > B_y Then
PointA.X = A_x
PointA.Y = B_y
PointB.X = B_x
PointB.Y = A_y
End If

ElseIf A_x > B_x Then
If A_y < B_y Then
PointA.X = B_x
PointA.Y = A_y
PointB.X = A_x
PointB.Y = B_y
ElseIf A_y > B_y Then
PointA.X = B_x
PointA.Y = B_y
PointB.X = A_x
PointB.Y = A_y
End If
End If
rRectangle.Left = PointA.X
rRectangle.Top = PointA.Y
rRectangle.Width = PointB.X - PointA.X
rRectangle.Height = PointB.Y - PointA.Y

Points_to_Rectangle = rRectangle

End Function 'Points_to_Rectangle


'########################################################################################
'############################## Public Overrides ######################################
'########################################################################################

Public Overrides Function GetHashCode() As Integer
Dim sb As New System.Text.StringBuilder
sb.Append(Convert.ToString(Me.nHeight))
sb.Append(Convert.ToString(Me.nLeft))
sb.Append(Convert.ToString(Me.nTop))
sb.Append(Convert.ToString(Me.nWidth))
Return sb.ToString.GetHashCode()
End Function 'GetHashCode


End Class 'Class Rectangle

File diff suppressed because it is too large Load Diff

View File

@ -1,165 +0,0 @@
Namespace Stammbaum.Classen
Namespace PictureTagger
'HauptClasse von PictureTagger ################################
Public Class TaggedIMG

Private sID As String 'Datenbankeintrag - In diesemfall Dateinahme :) da INI
Public Property ID() As String
Get
Return sID
End Get
Set(ByVal value As String)
sID = value
End Set
End Property

Private sTitle As String
Public Property Title() As String
Get
Return sTitle
End Get
Set(ByVal value As String)
sTitle = value
End Set
End Property

Private sDescription As String
Public Property Description() As String
Get
Return sDescription
End Get
Set(ByVal value As String)
sDescription = value
End Set
End Property

Private sTime As String
Public Property Time() As String
Get
Return sTime
End Get
Set(ByVal value As String)
sTime = value
End Set
End Property

Private iImage As Image
Public Property Image() As Image
Get
Return iImage
End Get
Set(ByVal value As Image)
iImage = value
End Set
End Property

Private sPath As String
Public Property Path() As String
Get
Return sPath
End Get
Set(ByVal value As String)
sPath = value
End Set
End Property

Private oOrt As New Stammbaum.Classen.Place
Public Property Ort() As Stammbaum.Classen.Place 'AufnahmeOrt
Get
Return oOrt
End Get
Set(ByVal value As Stammbaum.Classen.Place)
oOrt = value
End Set
End Property

Public Markierung() As Stammbaum.Classen.PictureTagger.Mark
'Hier werden Funktionen und Rotienen Geschreiben die die Markierungen steuern ....
'Ob Array oder eigene Classe steht noch nicht vest, leider

Public Sub Clear()
Me.sID = Nothing
Me.iImage = Nothing
Me.sTitle = Nothing
Me.sDescription = Nothing
Me.sTime = Nothing
Me.sPath = Nothing
Me.oOrt.Clear()
ReDim Me.Markierung(0) '####################### <<<<======= Hier werden Funktionen und Rotienen Geschreiben die die Markierungen steuern ....
End Sub 'Lehren des Objects

Public Sub Create_NewMark(ByVal ID As Long, ByVal PositionX As Long, ByVal PositionY As Long, Optional ByVal Radius As Long = 10, Optional ByVal Description As String = "")
' Dim Index As Integer
' 'If Me.Mark(0) is not Initalisiert Then
' ' Index = 0
' 'Else
' Index = 1 + UBound(Me.Markierung)
' 'End if
' ReDim Me.Markierung(Index)
' Me.Markierung(Index).ID = ID
' Me.Markierung(Index).PositionX = PositionX
' Me.Markierung(Index).PositionY = PositionY
' Me.Markierung(Index).Radius = Radius
' Me.Markierung(Index).Description = Description
End Sub 'In Arbeit - Erst wenn Mark eindeutig Vestgelegt :(

End Class 'TaggedIMG
'#######################################################
Public Class Mark
Public PositionX As Long
Public PositionY As Long
Public ID As Long
Public Radius As Long
Public Description As String
End Class 'Mark <<-- In Work!! Don't forget! ;) MainFeture
End Namespace 'PictureTagger
'#################################################
Public Class Place
Private sTitle As String
Public Property Title() As String
Get
Return sTitle
End Get
Set(ByVal value As String)
sTitle = value
End Set
End Property

Private sAdresse As String
Public Property Adresse() As String
Get
Return sAdresse
End Get
Set(ByVal value As String)
sAdresse = value
End Set
End Property

Private sDescription As String
Public Property Description() As String
Get
Return sDescription
End Get
Set(ByVal value As String)
sDescription = value
End Set
End Property

Private sGPS As String
Public Property GPS() As String
Get
Return sGPS
End Get
Set(ByVal value As String) 'Später eventuelle überprüfung auf format und deren Umwandlung -GPS Formate-
sGPS = value
End Set
End Property

Public Sub Clear()
Me.sAdresse = Nothing
Me.sDescription = Nothing
Me.sGPS = Nothing
End Sub 'Lehren des Objects

End Class 'Place
End Namespace 'Stammbaum.Classen

680
SB-PictureTagger/F_SB_PictureTagger.Designer.vb generated Normal file → Executable file
View File

@ -1,5 +1,5 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Main Partial Class SB_PictureTagger
Inherits System.Windows.Forms.Form Inherits System.Windows.Forms.Form


'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@ -22,269 +22,221 @@ Partial Class Main
'Das Bearbeiten mit dem Code-Editor ist nicht möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.PictureBox1 = New System.Windows.Forms.PictureBox() Dim Place1 As Place = New Place()
Me.b_next = New System.Windows.Forms.Button() Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(SB_PictureTagger))
Me.b_last = New System.Windows.Forms.Button() Me.Panel_Botom = New System.Windows.Forms.Panel()
Me.b_exit = New System.Windows.Forms.Button() Me.Label7 = New System.Windows.Forms.Label()
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.tb_Bild_Time = New System.Windows.Forms.TextBox()
Me.rtb_Bild_Description = New System.Windows.Forms.RichTextBox()
Me.tb_Bild_Title = New System.Windows.Forms.TextBox()
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
Me.DataGridView1 = New System.Windows.Forms.DataGridView()
Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.Position = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.Radius = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.b_loaddir = New System.Windows.Forms.Button()
Me.b_save = New System.Windows.Forms.Button()
Me.b_reloaddir = New System.Windows.Forms.Button() Me.b_reloaddir = New System.Windows.Forms.Button()
Me.GroupBox3 = New System.Windows.Forms.GroupBox() Me.b_loaddir = New System.Windows.Forms.Button()
Me.b_exit = New System.Windows.Forms.Button()
Me.b_last = New System.Windows.Forms.Button()
Me.b_next = New System.Windows.Forms.Button()
Me.Panel_Right = New System.Windows.Forms.Panel()
Me.GroupBox4 = New System.Windows.Forms.GroupBox()
Me.Label8 = New System.Windows.Forms.Label()
Me.NumericUpDown_OrdnerTiefe = New System.Windows.Forms.NumericUpDown()
Me.cb_marks_visible = New System.Windows.Forms.CheckBox()
Me.GB_Ort = New System.Windows.Forms.GroupBox()
Me.tb_Place_Description = New System.Windows.Forms.TextBox()
Me.Label9 = New System.Windows.Forms.Label() Me.Label9 = New System.Windows.Forms.Label()
Me.tb_Place_Title = New System.Windows.Forms.TextBox() Me.tb_Place_Name = New System.Windows.Forms.TextBox()
Me.rtb_Place_Description = New System.Windows.Forms.RichTextBox()
Me.Label4 = New System.Windows.Forms.Label() Me.Label4 = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label() Me.Label5 = New System.Windows.Forms.Label()
Me.Label6 = New System.Windows.Forms.Label() Me.Label6 = New System.Windows.Forms.Label()
Me.tb_Place_GPS = New System.Windows.Forms.TextBox() Me.tb_Place_GPS = New System.Windows.Forms.TextBox()
Me.tb_Place_Addresse = New System.Windows.Forms.TextBox() Me.tb_Place_Addresse = New System.Windows.Forms.TextBox()
Me.GroupBox4 = New System.Windows.Forms.GroupBox() Me.GB_Mark = New System.Windows.Forms.GroupBox()
Me.Label8 = New System.Windows.Forms.Label() Me.tb_AktMark_Description = New System.Windows.Forms.TextBox()
Me.NumericUpDown_OrdnerTiefe = New System.Windows.Forms.NumericUpDown() Me.Label11 = New System.Windows.Forms.Label()
Me.cb_AutoSave = New System.Windows.Forms.CheckBox() Me.tb_AktMark_Name = New System.Windows.Forms.TextBox()
Me.cb_marks_visible = New System.Windows.Forms.CheckBox() Me.Label10 = New System.Windows.Forms.Label()
Me.Label7 = New System.Windows.Forms.Label() Me.GB_Bild = New System.Windows.Forms.GroupBox()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.tb_Bild_Description = New System.Windows.Forms.TextBox()
Me.GroupBox1.SuspendLayout() Me.Label3 = New System.Windows.Forms.Label()
Me.GroupBox2.SuspendLayout() Me.Label2 = New System.Windows.Forms.Label()
CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.Label1 = New System.Windows.Forms.Label()
Me.GroupBox3.SuspendLayout() Me.tb_Bild_Time = New System.Windows.Forms.TextBox()
Me.tb_Bild_Name = New System.Windows.Forms.TextBox()
Me.TaggedIMG1 = New TaggedIMG()
Me.Panel_Botom.SuspendLayout()
Me.Panel_Right.SuspendLayout()
Me.GroupBox4.SuspendLayout() Me.GroupBox4.SuspendLayout()
CType(Me.NumericUpDown_OrdnerTiefe, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.NumericUpDown_OrdnerTiefe, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GB_Ort.SuspendLayout()
Me.GB_Mark.SuspendLayout()
Me.GB_Bild.SuspendLayout()
CType(Me.TaggedIMG1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout() Me.SuspendLayout()
' '
'PictureBox1 'Panel_Botom
' '
Me.PictureBox1.Location = New System.Drawing.Point(12, 12) Me.Panel_Botom.Controls.Add(Me.Label7)
Me.PictureBox1.Name = "PictureBox1" Me.Panel_Botom.Controls.Add(Me.b_reloaddir)
Me.PictureBox1.Size = New System.Drawing.Size(717, 618) Me.Panel_Botom.Controls.Add(Me.b_loaddir)
Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom Me.Panel_Botom.Controls.Add(Me.b_exit)
Me.PictureBox1.TabIndex = 0 Me.Panel_Botom.Controls.Add(Me.b_last)
Me.PictureBox1.TabStop = False Me.Panel_Botom.Controls.Add(Me.b_next)
Me.Panel_Botom.Location = New System.Drawing.Point(1, 636)
Me.Panel_Botom.Name = "Panel_Botom"
Me.Panel_Botom.Size = New System.Drawing.Size(1104, 87)
Me.Panel_Botom.TabIndex = 12
' '
'b_next 'Label7
' '
Me.b_next.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Label7.AutoSize = True
Me.b_next.Location = New System.Drawing.Point(196, 651) Me.Label7.Location = New System.Drawing.Point(11, 68)
Me.b_next.Name = "b_next" Me.Label7.Name = "Label7"
Me.b_next.Size = New System.Drawing.Size(178, 51) Me.Label7.Size = New System.Drawing.Size(65, 13)
Me.b_next.TabIndex = 2 Me.Label7.TabIndex = 7
Me.b_next.Text = "Nächstes Bild" Me.Label7.Text = "Pfadangabe"
Me.b_next.UseVisualStyleBackColor = True
'
'b_last
'
Me.b_last.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_last.Location = New System.Drawing.Point(12, 651)
Me.b_last.Name = "b_last"
Me.b_last.Size = New System.Drawing.Size(178, 51)
Me.b_last.TabIndex = 3
Me.b_last.Text = "Leztes Bild"
Me.b_last.UseVisualStyleBackColor = True
'
'b_exit
'
Me.b_exit.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_exit.Location = New System.Drawing.Point(916, 651)
Me.b_exit.Name = "b_exit"
Me.b_exit.Size = New System.Drawing.Size(178, 51)
Me.b_exit.TabIndex = 4
Me.b_exit.Text = "Beenden"
Me.b_exit.UseVisualStyleBackColor = True
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.Label3)
Me.GroupBox1.Controls.Add(Me.Label2)
Me.GroupBox1.Controls.Add(Me.Label1)
Me.GroupBox1.Controls.Add(Me.tb_Bild_Time)
Me.GroupBox1.Controls.Add(Me.rtb_Bild_Description)
Me.GroupBox1.Controls.Add(Me.tb_Bild_Title)
Me.GroupBox1.Location = New System.Drawing.Point(742, 16)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(352, 162)
Me.GroupBox1.TabIndex = 6
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "Bild"
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(8, 74)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(69, 13)
Me.Label3.TabIndex = 5
Me.Label3.Text = "Kommentare:"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(8, 45)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(59, 13)
Me.Label2.TabIndex = 4
Me.Label2.Text = "Zeit/-raum:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(6, 22)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(30, 13)
Me.Label1.TabIndex = 3
Me.Label1.Text = "Titel:"
'
'tb_Bild_Time
'
Me.tb_Bild_Time.Location = New System.Drawing.Point(83, 45)
Me.tb_Bild_Time.Name = "tb_Bild_Time"
Me.tb_Bild_Time.Size = New System.Drawing.Size(263, 20)
Me.tb_Bild_Time.TabIndex = 2
'
'rtb_Bild_Description
'
Me.rtb_Bild_Description.Location = New System.Drawing.Point(83, 70)
Me.rtb_Bild_Description.Name = "rtb_Bild_Description"
Me.rtb_Bild_Description.Size = New System.Drawing.Size(263, 86)
Me.rtb_Bild_Description.TabIndex = 1
Me.rtb_Bild_Description.Text = "Markierungen Hinzufügen !"
'
'tb_Bild_Title
'
Me.tb_Bild_Title.Location = New System.Drawing.Point(83, 19)
Me.tb_Bild_Title.Name = "tb_Bild_Title"
Me.tb_Bild_Title.Size = New System.Drawing.Size(263, 20)
Me.tb_Bild_Title.TabIndex = 0
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.DataGridView1)
Me.GroupBox2.Location = New System.Drawing.Point(742, 345)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(352, 218)
Me.GroupBox2.TabIndex = 7
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "Markierungen"
'
'DataGridView1
'
Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Position, Me.Radius, Me.Column2})
Me.DataGridView1.Location = New System.Drawing.Point(11, 19)
Me.DataGridView1.Name = "DataGridView1"
Me.DataGridView1.Size = New System.Drawing.Size(329, 221)
Me.DataGridView1.TabIndex = 1
'
'Column1
'
Me.Column1.HeaderText = "Nr."
Me.Column1.Name = "Column1"
'
'Position
'
Me.Position.HeaderText = "Position"
Me.Position.Name = "Position"
Me.Position.Visible = False
'
'Radius
'
Me.Radius.HeaderText = "Radius"
Me.Radius.Name = "Radius"
Me.Radius.Visible = False
'
'Column2
'
Me.Column2.HeaderText = "Beschreibung"
Me.Column2.Name = "Column2"
'
'b_loaddir
'
Me.b_loaddir.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_loaddir.Location = New System.Drawing.Point(732, 651)
Me.b_loaddir.Name = "b_loaddir"
Me.b_loaddir.Size = New System.Drawing.Size(178, 51)
Me.b_loaddir.TabIndex = 8
Me.b_loaddir.Text = "Ordner Öffnen"
Me.b_loaddir.UseVisualStyleBackColor = True
'
'b_save
'
Me.b_save.Font = New System.Drawing.Font("Comic Sans MS", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_save.Location = New System.Drawing.Point(380, 651)
Me.b_save.Name = "b_save"
Me.b_save.Size = New System.Drawing.Size(178, 51)
Me.b_save.TabIndex = 9
Me.b_save.Text = "Änderungen Speichern"
Me.b_save.UseVisualStyleBackColor = True
' '
'b_reloaddir 'b_reloaddir
' '
Me.b_reloaddir.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.b_reloaddir.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_reloaddir.Location = New System.Drawing.Point(564, 651) Me.b_reloaddir.Location = New System.Drawing.Point(420, 14)
Me.b_reloaddir.Name = "b_reloaddir" Me.b_reloaddir.Name = "b_reloaddir"
Me.b_reloaddir.Size = New System.Drawing.Size(165, 51) Me.b_reloaddir.Size = New System.Drawing.Size(165, 51)
Me.b_reloaddir.TabIndex = 10 Me.b_reloaddir.TabIndex = 11
Me.b_reloaddir.Text = "Neu Laden" Me.b_reloaddir.Text = "Neu Laden"
Me.b_reloaddir.UseVisualStyleBackColor = True Me.b_reloaddir.UseVisualStyleBackColor = True
' '
'GroupBox3 'b_loaddir
' '
Me.GroupBox3.Controls.Add(Me.Label9) Me.b_loaddir.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.GroupBox3.Controls.Add(Me.tb_Place_Title) Me.b_loaddir.Location = New System.Drawing.Point(611, 14)
Me.GroupBox3.Controls.Add(Me.rtb_Place_Description) Me.b_loaddir.Name = "b_loaddir"
Me.GroupBox3.Controls.Add(Me.Label4) Me.b_loaddir.Size = New System.Drawing.Size(178, 51)
Me.GroupBox3.Controls.Add(Me.Label5) Me.b_loaddir.TabIndex = 12
Me.GroupBox3.Controls.Add(Me.Label6) Me.b_loaddir.Text = "Ordner Öffnen"
Me.GroupBox3.Controls.Add(Me.tb_Place_GPS) Me.b_loaddir.UseVisualStyleBackColor = True
Me.GroupBox3.Controls.Add(Me.tb_Place_Addresse) '
Me.GroupBox3.Location = New System.Drawing.Point(742, 184) 'b_exit
Me.GroupBox3.Name = "GroupBox3" '
Me.GroupBox3.Size = New System.Drawing.Size(352, 155) Me.b_exit.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.GroupBox3.TabIndex = 11 Me.b_exit.Location = New System.Drawing.Point(915, 14)
Me.GroupBox3.TabStop = False Me.b_exit.Name = "b_exit"
Me.GroupBox3.Text = "Aufnahme Ort" Me.b_exit.Size = New System.Drawing.Size(178, 51)
Me.b_exit.TabIndex = 13
Me.b_exit.Text = "Beenden"
Me.b_exit.UseVisualStyleBackColor = True
'
'b_last
'
Me.b_last.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_last.Location = New System.Drawing.Point(11, 14)
Me.b_last.Name = "b_last"
Me.b_last.Size = New System.Drawing.Size(178, 51)
Me.b_last.TabIndex = 8
Me.b_last.Text = "Vorheriges Bild"
Me.b_last.UseVisualStyleBackColor = True
'
'b_next
'
Me.b_next.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.b_next.Location = New System.Drawing.Point(216, 14)
Me.b_next.Name = "b_next"
Me.b_next.Size = New System.Drawing.Size(178, 51)
Me.b_next.TabIndex = 9
Me.b_next.Text = "Nächstes Bild"
Me.b_next.UseVisualStyleBackColor = True
'
'Panel_Right
'
Me.Panel_Right.Controls.Add(Me.GroupBox4)
Me.Panel_Right.Controls.Add(Me.GB_Ort)
Me.Panel_Right.Controls.Add(Me.GB_Mark)
Me.Panel_Right.Controls.Add(Me.GB_Bild)
Me.Panel_Right.Location = New System.Drawing.Point(735, 12)
Me.Panel_Right.Name = "Panel_Right"
Me.Panel_Right.Size = New System.Drawing.Size(370, 618)
Me.Panel_Right.TabIndex = 13
'
'GroupBox4
'
Me.GroupBox4.Controls.Add(Me.Label8)
Me.GroupBox4.Controls.Add(Me.NumericUpDown_OrdnerTiefe)
Me.GroupBox4.Controls.Add(Me.cb_marks_visible)
Me.GroupBox4.Location = New System.Drawing.Point(9, 568)
Me.GroupBox4.Name = "GroupBox4"
Me.GroupBox4.Size = New System.Drawing.Size(352, 48)
Me.GroupBox4.TabIndex = 15
Me.GroupBox4.TabStop = False
Me.GroupBox4.Text = "Optionen"
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.Location = New System.Drawing.Point(199, 19)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(63, 13)
Me.Label8.TabIndex = 6
Me.Label8.Text = "OrdnerTiefe"
'
'NumericUpDown_OrdnerTiefe
'
Me.NumericUpDown_OrdnerTiefe.Location = New System.Drawing.Point(162, 16)
Me.NumericUpDown_OrdnerTiefe.Maximum = New Decimal(New Integer() {3, 0, 0, 0})
Me.NumericUpDown_OrdnerTiefe.Name = "NumericUpDown_OrdnerTiefe"
Me.NumericUpDown_OrdnerTiefe.Size = New System.Drawing.Size(31, 20)
Me.NumericUpDown_OrdnerTiefe.TabIndex = 2
'
'cb_marks_visible
'
Me.cb_marks_visible.AutoSize = True
Me.cb_marks_visible.Checked = True
Me.cb_marks_visible.CheckState = System.Windows.Forms.CheckState.Checked
Me.cb_marks_visible.Location = New System.Drawing.Point(11, 19)
Me.cb_marks_visible.Name = "cb_marks_visible"
Me.cb_marks_visible.Size = New System.Drawing.Size(121, 17)
Me.cb_marks_visible.TabIndex = 0
Me.cb_marks_visible.Text = "Zeige Markierungen"
Me.cb_marks_visible.UseVisualStyleBackColor = True
'
'GB_Ort
'
Me.GB_Ort.Controls.Add(Me.tb_Place_Description)
Me.GB_Ort.Controls.Add(Me.Label9)
Me.GB_Ort.Controls.Add(Me.tb_Place_Name)
Me.GB_Ort.Controls.Add(Me.Label4)
Me.GB_Ort.Controls.Add(Me.Label5)
Me.GB_Ort.Controls.Add(Me.Label6)
Me.GB_Ort.Controls.Add(Me.tb_Place_GPS)
Me.GB_Ort.Controls.Add(Me.tb_Place_Addresse)
Me.GB_Ort.Location = New System.Drawing.Point(7, 171)
Me.GB_Ort.Name = "GB_Ort"
Me.GB_Ort.Size = New System.Drawing.Size(352, 199)
Me.GB_Ort.TabIndex = 13
Me.GB_Ort.TabStop = False
Me.GB_Ort.Text = "Aufnahme Ort"
'
'tb_Place_Description
'
Me.tb_Place_Description.Location = New System.Drawing.Point(83, 97)
Me.tb_Place_Description.Multiline = True
Me.tb_Place_Description.Name = "tb_Place_Description"
Me.tb_Place_Description.Size = New System.Drawing.Size(263, 96)
Me.tb_Place_Description.TabIndex = 12
' '
'Label9 'Label9
' '
Me.Label9.AutoSize = True Me.Label9.AutoSize = True
Me.Label9.Location = New System.Drawing.Point(8, 23) Me.Label9.Location = New System.Drawing.Point(8, 19)
Me.Label9.Name = "Label9" Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(30, 13) Me.Label9.Size = New System.Drawing.Size(38, 13)
Me.Label9.TabIndex = 8 Me.Label9.TabIndex = 8
Me.Label9.Text = "Title:" Me.Label9.Text = "Name:"
' '
'tb_Place_Title 'tb_Place_Name
' '
Me.tb_Place_Title.Location = New System.Drawing.Point(83, 16) Me.tb_Place_Name.Location = New System.Drawing.Point(83, 16)
Me.tb_Place_Title.Name = "tb_Place_Title" Me.tb_Place_Name.Name = "tb_Place_Name"
Me.tb_Place_Title.Size = New System.Drawing.Size(263, 20) Me.tb_Place_Name.Size = New System.Drawing.Size(263, 20)
Me.tb_Place_Title.TabIndex = 7 Me.tb_Place_Name.TabIndex = 0
'
'rtb_Place_Description
'
Me.rtb_Place_Description.Location = New System.Drawing.Point(83, 97)
Me.rtb_Place_Description.Name = "rtb_Place_Description"
Me.rtb_Place_Description.Size = New System.Drawing.Size(263, 52)
Me.rtb_Place_Description.TabIndex = 6
Me.rtb_Place_Description.Text = ""
' '
'Label4 'Label4
' '
Me.Label4.AutoSize = True Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(6, 97) Me.Label4.Location = New System.Drawing.Point(8, 100)
Me.Label4.Name = "Label4" Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(69, 13) Me.Label4.Size = New System.Drawing.Size(69, 13)
Me.Label4.TabIndex = 5 Me.Label4.TabIndex = 5
@ -293,7 +245,7 @@ Partial Class Main
'Label5 'Label5
' '
Me.Label5.AutoSize = True Me.Label5.AutoSize = True
Me.Label5.Location = New System.Drawing.Point(6, 71) Me.Label5.Location = New System.Drawing.Point(6, 74)
Me.Label5.Name = "Label5" Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(67, 13) Me.Label5.Size = New System.Drawing.Size(67, 13)
Me.Label5.TabIndex = 4 Me.Label5.TabIndex = 4
@ -320,133 +272,207 @@ Partial Class Main
Me.tb_Place_Addresse.Location = New System.Drawing.Point(83, 42) Me.tb_Place_Addresse.Location = New System.Drawing.Point(83, 42)
Me.tb_Place_Addresse.Name = "tb_Place_Addresse" Me.tb_Place_Addresse.Name = "tb_Place_Addresse"
Me.tb_Place_Addresse.Size = New System.Drawing.Size(263, 20) Me.tb_Place_Addresse.Size = New System.Drawing.Size(263, 20)
Me.tb_Place_Addresse.TabIndex = 0 Me.tb_Place_Addresse.TabIndex = 1
' '
'GroupBox4 'GB_Mark
' '
Me.GroupBox4.Controls.Add(Me.Label8) Me.GB_Mark.Controls.Add(Me.tb_AktMark_Description)
Me.GroupBox4.Controls.Add(Me.NumericUpDown_OrdnerTiefe) Me.GB_Mark.Controls.Add(Me.Label11)
Me.GroupBox4.Controls.Add(Me.cb_AutoSave) Me.GB_Mark.Controls.Add(Me.tb_AktMark_Name)
Me.GroupBox4.Controls.Add(Me.cb_marks_visible) Me.GB_Mark.Controls.Add(Me.Label10)
Me.GroupBox4.Location = New System.Drawing.Point(742, 569) Me.GB_Mark.Location = New System.Drawing.Point(9, 392)
Me.GroupBox4.Name = "GroupBox4" Me.GB_Mark.Name = "GB_Mark"
Me.GroupBox4.Size = New System.Drawing.Size(346, 61) Me.GB_Mark.Size = New System.Drawing.Size(352, 150)
Me.GroupBox4.TabIndex = 12 Me.GB_Mark.TabIndex = 14
Me.GroupBox4.TabStop = False Me.GB_Mark.TabStop = False
Me.GroupBox4.Text = "Optionen" Me.GB_Mark.Text = "Ausgewählte Markierung"
' '
'Label8 'tb_AktMark_Description
' '
Me.Label8.AutoSize = True Me.tb_AktMark_Description.Location = New System.Drawing.Point(83, 45)
Me.Label8.Location = New System.Drawing.Point(199, 19) Me.tb_AktMark_Description.Multiline = True
Me.Label8.Name = "Label8" Me.tb_AktMark_Description.Name = "tb_AktMark_Description"
Me.Label8.Size = New System.Drawing.Size(63, 13) Me.tb_AktMark_Description.Size = New System.Drawing.Size(263, 99)
Me.Label8.TabIndex = 6 Me.tb_AktMark_Description.TabIndex = 12
Me.Label8.Text = "OrdnerTiefe"
' '
'NumericUpDown_OrdnerTiefe 'Label11
' '
Me.NumericUpDown_OrdnerTiefe.Location = New System.Drawing.Point(162, 16) Me.Label11.AutoSize = True
Me.NumericUpDown_OrdnerTiefe.Maximum = New Decimal(New Integer() {3, 0, 0, 0}) Me.Label11.Location = New System.Drawing.Point(8, 22)
Me.NumericUpDown_OrdnerTiefe.Name = "NumericUpDown_OrdnerTiefe" Me.Label11.Name = "Label11"
Me.NumericUpDown_OrdnerTiefe.Size = New System.Drawing.Size(31, 20) Me.Label11.Size = New System.Drawing.Size(38, 13)
Me.NumericUpDown_OrdnerTiefe.TabIndex = 5 Me.Label11.TabIndex = 10
Me.Label11.Text = "Name:"
' '
'cb_AutoSave 'tb_AktMark_Name
' '
Me.cb_AutoSave.AutoSize = True Me.tb_AktMark_Name.Location = New System.Drawing.Point(83, 19)
Me.cb_AutoSave.Location = New System.Drawing.Point(11, 38) Me.tb_AktMark_Name.Name = "tb_AktMark_Name"
Me.cb_AutoSave.Name = "cb_AutoSave" Me.tb_AktMark_Name.Size = New System.Drawing.Size(263, 20)
Me.cb_AutoSave.Size = New System.Drawing.Size(135, 17) Me.tb_AktMark_Name.TabIndex = 9
Me.cb_AutoSave.TabIndex = 4
Me.cb_AutoSave.Text = "Automatisch Speichern"
Me.cb_AutoSave.UseVisualStyleBackColor = True
' '
'cb_marks_visible 'Label10
' '
Me.cb_marks_visible.AutoSize = True Me.Label10.AutoSize = True
Me.cb_marks_visible.Location = New System.Drawing.Point(11, 19) Me.Label10.Location = New System.Drawing.Point(8, 48)
Me.cb_marks_visible.Name = "cb_marks_visible" Me.Label10.Name = "Label10"
Me.cb_marks_visible.Size = New System.Drawing.Size(121, 17) Me.Label10.Size = New System.Drawing.Size(69, 13)
Me.cb_marks_visible.TabIndex = 3 Me.Label10.TabIndex = 7
Me.cb_marks_visible.Text = "Zeige Markierungen" Me.Label10.Text = "Kommentare:"
Me.cb_marks_visible.UseVisualStyleBackColor = True
' '
'Label7 'GB_Bild
' '
Me.Label7.AutoSize = True Me.GB_Bild.Controls.Add(Me.tb_Bild_Description)
Me.Label7.Location = New System.Drawing.Point(9, 633) Me.GB_Bild.Controls.Add(Me.Label3)
Me.Label7.Name = "Label7" Me.GB_Bild.Controls.Add(Me.Label2)
Me.Label7.Size = New System.Drawing.Size(0, 13) Me.GB_Bild.Controls.Add(Me.Label1)
Me.Label7.TabIndex = 13 Me.GB_Bild.Controls.Add(Me.tb_Bild_Time)
Me.GB_Bild.Controls.Add(Me.tb_Bild_Name)
Me.GB_Bild.Location = New System.Drawing.Point(9, 2)
Me.GB_Bild.Name = "GB_Bild"
Me.GB_Bild.Size = New System.Drawing.Size(352, 151)
Me.GB_Bild.TabIndex = 12
Me.GB_Bild.TabStop = False
Me.GB_Bild.Text = "Bild"
' '
'Main 'tb_Bild_Description
'
Me.tb_Bild_Description.Location = New System.Drawing.Point(83, 70)
Me.tb_Bild_Description.Multiline = True
Me.tb_Bild_Description.Name = "tb_Bild_Description"
Me.tb_Bild_Description.Size = New System.Drawing.Size(263, 75)
Me.tb_Bild_Description.TabIndex = 11
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(8, 74)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(69, 13)
Me.Label3.TabIndex = 5
Me.Label3.Text = "Kommentare:"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(8, 48)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(59, 13)
Me.Label2.TabIndex = 4
Me.Label2.Text = "Zeit/-raum:"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(6, 22)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(30, 13)
Me.Label1.TabIndex = 3
Me.Label1.Text = "Titel:"
'
'tb_Bild_Time
'
Me.tb_Bild_Time.Location = New System.Drawing.Point(83, 45)
Me.tb_Bild_Time.Name = "tb_Bild_Time"
Me.tb_Bild_Time.Size = New System.Drawing.Size(263, 20)
Me.tb_Bild_Time.TabIndex = 1
'
'tb_Bild_Name
'
Me.tb_Bild_Name.Location = New System.Drawing.Point(83, 19)
Me.tb_Bild_Name.Name = "tb_Bild_Name"
Me.tb_Bild_Name.Size = New System.Drawing.Size(263, 20)
Me.tb_Bild_Name.TabIndex = 0
'
'TaggedIMG1
'
Me.TaggedIMG1.ActivMark = False
Me.TaggedIMG1.ActivMarkDescription = ""
Me.TaggedIMG1.ActivMarkHeight = -1
Me.TaggedIMG1.ActivMarkLeft = -1
Me.TaggedIMG1.ActivMarkName = ""
Me.TaggedIMG1.ActivMarkTop = -1
Me.TaggedIMG1.ActivMarkWidth = -1
Me.TaggedIMG1.Cursor = System.Windows.Forms.Cursors.Default
Me.TaggedIMG1.Description = Nothing
Me.TaggedIMG1.ID = Nothing
Me.TaggedIMG1.Location = New System.Drawing.Point(12, 12)
Me.TaggedIMG1.Marks_Visible = True
Me.TaggedIMG1.Name = "TaggedIMG1"
Place1.Adress = Nothing
Place1.Description = Nothing
Place1.GPS = Nothing
Place1.Title = Nothing
Me.TaggedIMG1.Place = Place1
Me.TaggedIMG1.RO = False
Me.TaggedIMG1.Size = New System.Drawing.Size(717, 616)
Me.TaggedIMG1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom
Me.TaggedIMG1.TabIndex = 0
Me.TaggedIMG1.TabStop = False
Me.TaggedIMG1.Time = Nothing
Me.TaggedIMG1.Title = Nothing
'
'SB_PictureTagger
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1106, 723) Me.ClientSize = New System.Drawing.Size(1106, 723)
Me.Controls.Add(Me.Label7) Me.Controls.Add(Me.TaggedIMG1)
Me.Controls.Add(Me.GroupBox4) Me.Controls.Add(Me.Panel_Right)
Me.Controls.Add(Me.GroupBox3) Me.Controls.Add(Me.Panel_Botom)
Me.Controls.Add(Me.b_reloaddir) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Controls.Add(Me.b_save) Me.MinimumSize = New System.Drawing.Size(1122, 761)
Me.Controls.Add(Me.b_loaddir) Me.Name = "SB_PictureTagger"
Me.Controls.Add(Me.GroupBox2)
Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.b_exit)
Me.Controls.Add(Me.b_last)
Me.Controls.Add(Me.b_next)
Me.Controls.Add(Me.PictureBox1)
Me.Name = "Main"
Me.Text = "SB-PictureTagger" Me.Text = "SB-PictureTagger"
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() Me.Panel_Botom.ResumeLayout(False)
Me.GroupBox1.ResumeLayout(False) Me.Panel_Botom.PerformLayout()
Me.GroupBox1.PerformLayout() Me.Panel_Right.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox3.ResumeLayout(False)
Me.GroupBox3.PerformLayout()
Me.GroupBox4.ResumeLayout(False) Me.GroupBox4.ResumeLayout(False)
Me.GroupBox4.PerformLayout() Me.GroupBox4.PerformLayout()
CType(Me.NumericUpDown_OrdnerTiefe, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.NumericUpDown_OrdnerTiefe, System.ComponentModel.ISupportInitialize).EndInit()
Me.GB_Ort.ResumeLayout(False)
Me.GB_Ort.PerformLayout()
Me.GB_Mark.ResumeLayout(False)
Me.GB_Mark.PerformLayout()
Me.GB_Bild.ResumeLayout(False)
Me.GB_Bild.PerformLayout()
CType(Me.TaggedIMG1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False) Me.ResumeLayout(False)
Me.PerformLayout()


End Sub End Sub
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox Friend WithEvents Panel_Botom As System.Windows.Forms.Panel
Friend WithEvents b_next As System.Windows.Forms.Button Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents b_last As System.Windows.Forms.Button
Friend WithEvents b_exit As System.Windows.Forms.Button
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents tb_Bild_Time As System.Windows.Forms.TextBox
Friend WithEvents rtb_Bild_Description As System.Windows.Forms.RichTextBox
Friend WithEvents tb_Bild_Title As System.Windows.Forms.TextBox
Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView
Friend WithEvents b_loaddir As System.Windows.Forms.Button
Friend WithEvents b_save As System.Windows.Forms.Button
Friend WithEvents b_reloaddir As System.Windows.Forms.Button Friend WithEvents b_reloaddir As System.Windows.Forms.Button
Friend WithEvents Column1 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents b_loaddir As System.Windows.Forms.Button
Friend WithEvents Position As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents b_exit As System.Windows.Forms.Button
Friend WithEvents Radius As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents b_last As System.Windows.Forms.Button
Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents b_next As System.Windows.Forms.Button
Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox Friend WithEvents Panel_Right As System.Windows.Forms.Panel
Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents NumericUpDown_OrdnerTiefe As System.Windows.Forms.NumericUpDown
Friend WithEvents cb_marks_visible As System.Windows.Forms.CheckBox
Friend WithEvents GB_Ort As System.Windows.Forms.GroupBox
Friend WithEvents tb_Place_Description As System.Windows.Forms.TextBox
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents tb_Place_Name As System.Windows.Forms.TextBox
Friend WithEvents Label4 As System.Windows.Forms.Label Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents Label5 As System.Windows.Forms.Label Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents Label6 As System.Windows.Forms.Label Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents tb_Place_GPS As System.Windows.Forms.TextBox Friend WithEvents tb_Place_GPS As System.Windows.Forms.TextBox
Friend WithEvents tb_Place_Addresse As System.Windows.Forms.TextBox Friend WithEvents tb_Place_Addresse As System.Windows.Forms.TextBox
Friend WithEvents rtb_Place_Description As System.Windows.Forms.RichTextBox Friend WithEvents GB_Mark As System.Windows.Forms.GroupBox
Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox Friend WithEvents tb_AktMark_Description As System.Windows.Forms.TextBox
Friend WithEvents cb_AutoSave As System.Windows.Forms.CheckBox Friend WithEvents Label11 As System.Windows.Forms.Label
Friend WithEvents cb_marks_visible As System.Windows.Forms.CheckBox Friend WithEvents tb_AktMark_Name As System.Windows.Forms.TextBox
Friend WithEvents Label7 As System.Windows.Forms.Label Friend WithEvents Label10 As System.Windows.Forms.Label
Friend WithEvents Label8 As System.Windows.Forms.Label Friend WithEvents GB_Bild As System.Windows.Forms.GroupBox
Friend WithEvents NumericUpDown_OrdnerTiefe As System.Windows.Forms.NumericUpDown Friend WithEvents tb_Bild_Description As System.Windows.Forms.TextBox
Friend WithEvents Label9 As System.Windows.Forms.Label Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents tb_Place_Title As System.Windows.Forms.TextBox Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents tb_Bild_Time As System.Windows.Forms.TextBox
Friend WithEvents tb_Bild_Name As System.Windows.Forms.TextBox
Friend WithEvents TaggedIMG1 As TaggedIMG


End Class End Class

2927
SB-PictureTagger/F_SB_PictureTagger.resx Normal file → Executable file

File diff suppressed because it is too large Load Diff

537
SB-PictureTagger/F_SB_PictureTagger.vb Normal file → Executable file
View File

@ -1,214 +1,451 @@
Option Explicit On Option Explicit On
Imports System.IO
Imports SB_PictureTagger.Stammbaum


Public Class Main Public Class SB_PictureTagger

'################################################################################################################### '###################################################################################################################
'############### Main ############################################################################################## '############### Main ##############################################################################################
'################################################################################################################### '###################################################################################################################


Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '###########################
'Initial '### Declare Variables ###
Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Clear() '###########################
LoadConfigForm()


End Sub 'Main_Load Public Pub_sPath As String 'Pfad des Aktuell Arbeits Verzeichnises
Public Pub_aPfade(0) As String 'Array mit den Photo Pfaden
Public Pub_nPfadeIndex As Long = 0 'IndexNR des aktuell Geladenen Photos aus pub_aPfade
Public Pub_aConfigForm(0) As String 'Array mit FormConfiguration
Public Pub_nOrdnerTiefe As Integer = 0 'Recursive Ordnertiefe beim Ordnereinlesen
Public Pub_aSupportedFiles() As String = {".jpg", ".bmp", ".gif", ".png", ".jp2", ".tiff"} 'Speichert die Unterstützten Extentions


Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing Private nCountMarks As Integer
'Speichere
SaveTagg()
SaveConfigForm()
End Sub 'Form1_Closing

Private Sub LoadConfigForm()
'Unsterstützte Formate
ReDim Settings.PictureTagger.pub_aSupportedFiles(5)
Settings.PictureTagger.pub_aSupportedFiles(0) = ".jpg"
Settings.PictureTagger.pub_aSupportedFiles(1) = ".bmp"
Settings.PictureTagger.pub_aSupportedFiles(2) = ".gif"
Settings.PictureTagger.pub_aSupportedFiles(3) = ".png"
Settings.PictureTagger.pub_aSupportedFiles(4) = ".jp2"
Settings.PictureTagger.pub_aSupportedFiles(5) = ".tif"
'Portable oder Nicht komming soon!

End Sub 'LoadConfigForm
Private Sub SaveConfigForm()
'Wird noch Programmert, stürzt sich auf Stammbaum.Settings
'Wie zuletz verwendetes Verzeichnis ...
End Sub 'SaveConfigForm ### in work ###




'################################################################################################################### '###################################################################################################################
'############### Form1_Function-Tasks ############################################################################## '####################### Private Subs ##############################################################################
'################################################################################################################### '###################################################################################################################


Private Function ChangesAreTrue() As Boolean Private Sub Clear()
'Setze Standardwert: tb_Bild_Name.Clear()
ChangesAreTrue = False

If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Title <> tb_Bild_Title.Text Then ChangesAreTrue = True
If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Time <> tb_Bild_Time.Text Then ChangesAreTrue = True
If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Description <> rtb_Bild_Description.Text Then ChangesAreTrue = True

If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Title <> tb_Place_Title.Text Then ChangesAreTrue = True
If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Adresse <> tb_Place_Addresse.Text Then ChangesAreTrue = True
If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.GPS <> tb_Place_GPS.Text Then ChangesAreTrue = True
If Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Description <> rtb_Place_Description.Text Then ChangesAreTrue = True

'Wenn Markierungen geändert ... ### in work ###

End Function 'PT_ChangesTrue = True; wenn ÄNDERUNGEN vorgenommen!

'###################################################################################################################
'############### Form1_Sub-Tasks ###################################################################################
'###################################################################################################################

Private Sub Clear_Form()
tb_Bild_Time.Clear() tb_Bild_Time.Clear()
tb_Bild_Title.Clear() tb_Bild_Description.Clear()

tb_Place_Name.Clear()
tb_Place_Addresse.Clear() tb_Place_Addresse.Clear()
tb_Place_GPS.Clear() tb_Place_GPS.Clear()
rtb_Bild_Description.Clear() tb_Place_Description.Clear()
rtb_Place_Description.Clear()
tb_AktMark_Name.Clear()
tb_AktMark_Description.Clear()



'Entlehre Pfadangabe 'Entlehre Pfadangabe
Label7.Text = Nothing Label7.Text = ""


'Entlehre PictureBox 'Entlehre TaggedIMG1
PictureBox1.Image = Nothing TaggedIMG1.Clear()


'Entlehre Speicher nCountMarks = 0
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Clear() TaggedIMG1.RO = True


'### Lösche Markierungen ## ### in work ### 'GroubBox
GB_Bild.Enabled = False
GB_Ort.Enabled = False
GB_Mark.Enabled = False


'Aktiv mark TBs
tb_AktMark_Description.Enabled = False
tb_AktMark_Name.Enabled = False


End Sub 'Resetet die Maske - - - - - - - - - - ### in work ### End Sub


Private Sub SaveTagg(Optional ByVal WithoutQestion = False)


Private Sub SaveData()
'Überprüfe ob Änderungen forgenommen #UND# Ob eine ID existiert #UND# Ob das Bild existiert 'Überprüfe ob Änderungen forgenommen #UND# Ob eine ID existiert #UND# Ob das Bild existiert
If ChangesAreTrue() And (Settings.PictureTagger.Pub_oLoaded_TaggedIMG.ID <> "" Or Nothing) And System.IO.File.Exists(Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Path) Then If (TaggedIMG1.ID <> "" Or Nothing) And System.IO.File.Exists(Pub_aPfade(Pub_nPfadeIndex)) Then

Data_Save()
'Überprüfe ob Tagg Speichern erlaubt
If (cb_AutoSave.Checked Or WithoutQestion) Or (MessageBox.Show("Willst du die Änderungen Speichern?", "SB-PictureTagger", MessageBoxButtons.YesNo) = DialogResult.Yes) Then

'TextBox sichern
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Title = tb_Bild_Title.Text
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Time = tb_Bild_Time.Text
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Description = rtb_Bild_Description.Text

Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Title = tb_Place_Title.Text
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Adresse = tb_Place_Addresse.Text
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.GPS = tb_Place_GPS.Text
Stammbaum.Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Description = rtb_Place_Description.Text

'Lese Markierungen <-- in Planung (Fieleicht Überflüsig, jenachdem wie Markierungen angesteuert werden

'In TaggSource speichern
Stammbaum.Module.PictureTagger.PT_SaveTaggedIMG()

End If

End If End If
End Sub 'Save Taggs when Changes are hapened End Sub 'Save Taggs when Changes are hapened


Private Sub Resize2()


Private Sub LoadTaggedIMG() End Sub
'Textvelder Lehren
Clear_Form()

'Lade neues TaggedIMG mit Stammbaum.Module.PictureTagger Modul
Stammbaum.Module.PictureTagger.PT_LoadTaggedIMG()

'Zeigt den BildPfad unter PictureBox an
Label7.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Path
PictureBox1.Image = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Image

'Befülle die TextBox-en
tb_Bild_Title.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Title
tb_Bild_Time.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Time
rtb_Bild_Description.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Description

tb_Place_Title.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Title
tb_Place_Addresse.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Adresse
tb_Place_GPS.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.GPS
rtb_Place_Description.Text = Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Ort.Description

'Erstelle Marks ### in work ###

End Sub 'LoadTaggedIMG -> Befülle TextBox-en [UND erstelle Markierungen] - - - - - - ### in work ###

'################################################################################################################### '###################################################################################################################
'############### Buton Events: Click ############################################################################### '####################### EVENTS ####################################################################################
'################################################################################################################### '###################################################################################################################
#Region "Events"
'################################################
'############### Form Events ####################
'################################################

Private Sub SB_PictureTagger_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
SaveData()
End Sub 'Form1_Closing

Private Sub SB_PictureTagger_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Clear()
cb_marks_visible.Checked = True
TaggedIMG1.Marks_Visible = cb_marks_visible.Checked
End Sub 'SB_PictureTagger_Load




Private Sub b_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_exit.Click '################################################
' Programm Beenden '############### Buton Events: Click ############
Me.Close() '################################################
End Sub 'Closing Programm = Save Taggs -> Save Configs from Form


Private Sub b_loaddir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_loaddir.Click Private Sub b_loaddir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_loaddir.Click
'Laden eines zu Taggenden Bilder-Verzeichnis 'Laden eines zu Taggenden Bilder-Verzeichnis
Dim sTMP As String Dim sTMP As String
sTMP = Tools.Dialoge.FolderBrowserDialog() sTMP = Tools.Dialoge.FolderBrowserDialog()
If Directory.Exists(sTMP) Then If System.IO.Directory.Exists(sTMP) Then
SaveTagg() SaveData()
Settings.PictureTagger.Pub_sPath = sTMP Clear()
Stammbaum.Module.PictureTagger.PT_LoadVerzeichnis() Pub_sPath = sTMP
LoadTaggedIMG() LoadVerzeichnis()
Data_Load()
End If End If
End Sub 'Öffne Ordner -> wenn Pfad OK -> Save Taggs -> Lade Verzeichnis -> Load Tagged IMG End Sub 'Öffne Ordner -> wenn Pfad OK -> Save Taggs -> Lade Verzeichnis -> Load Tagged IMG


Private Sub b_reloaddir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_reloaddir.Click Private Sub b_reloaddir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_reloaddir.Click
SaveTagg() SaveData()
Stammbaum.Module.PictureTagger.PT_LoadVerzeichnis() Clear()
LoadTaggedIMG() LoadVerzeichnis()
Data_Load()
End Sub 'Save Taggs -> Lade Verzeichnis -> Load Tagged IMG End Sub 'Save Taggs -> Lade Verzeichnis -> Load Tagged IMG


Private Sub b_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_save.Click
SaveTagg()
LoadTaggedIMG()
End Sub 'Wenn Änderung -> Save Taggs

Private Sub b_next_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_next.Click Private Sub b_next_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_next.Click
SaveTagg() If Pub_nPfadeIndex < UBound(Pub_aPfade) Then
If Settings.PictureTagger.Pub_nPfadeIndex < UBound(Settings.PictureTagger.Pub_aPfade) Then SaveData()
Settings.PictureTagger.Pub_nPfadeIndex += 1 Clear()
Pub_nPfadeIndex += 1
Data_Load()
End If End If
LoadTaggedIMG()
End Sub 'Speichere Taggs -> Next Index -> Load Tagged IMG End Sub 'Speichere Taggs -> Next Index -> Load Tagged IMG


Private Sub b_last_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_last.Click Private Sub b_last_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_last.Click
SaveTagg() If Pub_nPfadeIndex > 0 Then
If Settings.PictureTagger.Pub_nPfadeIndex > 0 Then SaveData()
Settings.PictureTagger.Pub_nPfadeIndex = Settings.PictureTagger.Pub_nPfadeIndex - 1 Clear()
Pub_nPfadeIndex = Pub_nPfadeIndex - 1
Data_Load()
End If End If
LoadTaggedIMG()
End Sub 'Speichere Taggs -> Last Index -> Load Tagged IMG End Sub 'Speichere Taggs -> Last Index -> Load Tagged IMG


Private Sub b_exit_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_exit.Click
Me.Close()
End Sub 'b_exit_Click_1


'################################################################################################################### '################################################
'############### CheckBox Events: CheckStateChanged ################################################################ '###### CheckBox Events: CheckStateChanged ######
'################################################################################################################### '################################################


Private Sub cb_marks_visible_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Private Sub cb_marks_visible_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cb_marks_visible.CheckStateChanged
'Wenn cb_marks_visible=true then ZeichneMarks() ELSE VerstekeMarks() TaggedIMG1.Marks_Visible = cb_marks_visible.Checked
End Sub 'Visible/Hide Markierungen - - - ### in work ### End Sub 'Visible/Hide Markierungen


'################################################################################################################### '###################################################################################################################
'############### NumericUpDown Events: ValueChanged ################################################################ '############### NumericUpDown Events: ValueChanged ################################################################
'################################################################################################################### '###################################################################################################################


Private Sub NumericUpDown_OrdnerTiefe_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles NumericUpDown_OrdnerTiefe.ValueChanged Private Sub NumericUpDown_OrdnerTiefe_ValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles NumericUpDown_OrdnerTiefe.ValueChanged
SaveTagg() SaveData()
Settings.PictureTagger.Pub_nOrdnerTiefe = NumericUpDown_OrdnerTiefe.Value Pub_nOrdnerTiefe = NumericUpDown_OrdnerTiefe.Value
Stammbaum.Module.PictureTagger.PT_LoadVerzeichnis() LoadVerzeichnis()
LoadTaggedIMG() Data_Load()
End Sub ''Speichere Taggs -> Neue Ordner Tiefe -> Lade Verzeichnis -> Load Tagged IMG End Sub ''Speichere Taggs -> Neue Ordner Tiefe -> Lade Verzeichnis -> Load Tagged IMG




'###################################################################################################################
'############### TextBox Events: TextChanged #######################################################################
'###################################################################################################################

Private Sub tb_Bild_Description_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Bild_Description.TextChanged
TaggedIMG1.Description = tb_Bild_Description.Text
End Sub

Private Sub tb_Bild_Name_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Bild_Name.TextChanged
TaggedIMG1.Title = tb_Bild_Name.Text
End Sub

Private Sub tb_Bild_Time_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Bild_Time.TextChanged
TaggedIMG1.Time = tb_Bild_Time.Text
End Sub

Private Sub tb_Place_Addresse_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Place_Addresse.TextChanged
TaggedIMG1.Place.Adress = tb_Place_Addresse.Text
End Sub

Private Sub tb_Place_Description_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Place_Description.TextChanged
TaggedIMG1.Place.Description = tb_Place_Description.Text
End Sub

Private Sub tb_Place_GPS_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Place_GPS.TextChanged
TaggedIMG1.Place.GPS = tb_Place_GPS.Text
End Sub

Private Sub tb_Place_Name_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_Place_Name.TextChanged
TaggedIMG1.Place.Title = tb_Place_Name.Text
End Sub

Private Sub tb_AktMark_Description_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_AktMark_Description.TextChanged
TaggedIMG1.ActivMarkDescription = tb_AktMark_Description.Text
End Sub 'tb_AktMark_Description_TextChanged

Private Sub tb_AktMark_Name_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_AktMark_Name.TextChanged
TaggedIMG1.ActivMarkName = tb_AktMark_Name.Text
End Sub 'tb_AktMark_Name_TextChanged


'###################################################################################################################
'############### TAggedIMG Events ##################################################################################
'###################################################################################################################

Private Sub TaggedIMG1_LikeToCreatMark(ByVal Left As Integer, ByVal Top As Integer, ByVal Width As Integer, ByVal Height As Integer) Handles TaggedIMG1.LikeToCreatMark
If TaggedIMG1.Marks_Create(nCountMarks, Left, Top, Width, Height) Then nCountMarks += 1
End Sub 'TaggedIMG1_LikeToCreatMark

Private Sub TaggedIMG1_ActivMarkChanged(ByVal arg As Boolean) Handles TaggedIMG1.ActivMarkChanged
If TaggedIMG1.ActivMarkID <> Nothing Or TaggedIMG1.ActivMarkID <> "" Then
tb_AktMark_Name.Text = TaggedIMG1.ActivMarkName
tb_AktMark_Name.Enabled = True
tb_AktMark_Description.Text = TaggedIMG1.ActivMarkDescription
tb_AktMark_Description.Enabled = True
Else
tb_AktMark_Name.Text = ""
tb_AktMark_Name.Enabled = False
tb_AktMark_Description.Text = ""
tb_AktMark_Description.Enabled = False
End If
End Sub 'TaggedIMG1_ActivMarkChanged


#End Region 'Events


'###################################################################################################################
'############### Lade ##############################################################################################
'###################################################################################################################

Public Sub LoadVerzeichnis()
If System.IO.Directory.Exists(Pub_sPath) Then
Pub_aPfade = Tools.Filesystem.GetFilesFromDir(Pub_sPath, Pub_aSupportedFiles, Pub_nOrdnerTiefe)
Pub_nPfadeIndex = 0
End If
End Sub 'Lade Bilder in pub_aPfade Array; Setze Index auf 0


'###################################################################################################################
'###################### D A T A ####################################################################################
'###################################################################################################################

'Taggs auslesen (jezt noch aus INI - später aus DB)
Private Sub Data_Load()
' ### Settings ###
Dim InIForEachDat As Boolean = False

'Textvelder Lehren
Me.Clear()

'Absicherung für Undimensioniertes Array
If Pub_aPfade.Length = 0 Then ReDim Pub_aPfade(0)

'Bereinige Falsche Indexangaben
If UBound(Pub_aPfade) < Pub_nPfadeIndex Then Pub_nPfadeIndex = UBound(Pub_aPfade)

' ####################
'Deklarieren
'Dim
Dim INI_Locate As String
Dim INI_Name As String
Dim PicturePath As String
Dim sKey As String 'Um INI anzusteuern

PicturePath = Pub_aPfade(Pub_nPfadeIndex)

'Bildpfad auf existenz Prüfen
If System.IO.File.Exists(PicturePath) Then
' ### Bestimmen Der INI ###
If InIForEachDat Then
INI_Name = System.IO.Path.Combine(System.IO.Path.GetFileName(PicturePath), ".ini")
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
Else
INI_Name = "Tagg.ini"
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
End If

'TaggedIMG
TaggedIMG1.Image = Image.FromFile(PicturePath)
TaggedIMG1.ID = System.IO.Path.GetFileName(PicturePath) 'Lade Wichtigste Eigenschaften = Immer Forhanden bei Geladenem TaggedIMG
TaggedIMG1.RO = False

GB_Bild.Enabled = True
GB_Ort.Enabled = True
GB_Mark.Enabled = True

TaggedIMG1.Marks_Visible = cb_marks_visible.Checked


'####################### Read from INI ######################################
If System.IO.File.Exists(INI_Locate) Then
sKey = TaggedIMG1.ID

'Lade Optionalen Rest:
'Titel
TaggedIMG1.Title = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Title", Nothing)
'Kurzbeschreibung
'##############################################################
'ReFormate Description Text from "Description"
TaggedIMG1.Description = Tools.Convert.Coding.Base64_To_Ascii(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Description", Nothing))
'##############################################################

'Zeitangabe
TaggedIMG1.Time = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Time", Nothing)
'Ortsangabe-Title
TaggedIMG1.Place.Title = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_Title", Nothing)
'Ortsangabe-Adresse
TaggedIMG1.Place.Adress = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_Adresse", Nothing)
'Ortsangabe-Kurzbeschreibung
'##############################################################
'ReFormate Description Text from "Place.Description"
TaggedIMG1.Place.Description = Tools.Convert.Coding.Base64_To_Ascii(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_Description", Nothing))
'##############################################################

'Ortsangabe-GPS Koordinaten
TaggedIMG1.Place.GPS = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_GPS", Nothing)


'Führ Makrierungen einlese Schleife
''Dim i As Long
Dim Mark_ID As String
Dim Mark_Left As Integer
Dim Mark_Top As Integer
Dim Mark_Width As Integer
Dim Mark_Height As Integer
Dim Mark_Description As String
Dim Mark_Name As String
Dim Mark_Index As Integer

'Load Marks
Mark_Index = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark_MaxIndex", "-1"))
If Mark_Index >= 0 Then
For counter = 0 To Mark_Index
Mark_ID = counter
Mark_Left = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Left"))
Mark_Top = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Top"))
Mark_Width = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Width"))
Mark_Height = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Height"))
Mark_Name = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Name")
Mark_Description = Tools.Convert.Coding.Base64_To_Ascii(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Description"))

TaggedIMG1.Marks_Set(Mark_ID, "Create", Mark_Left, Mark_Top, Mark_Width, Mark_Height, Mark_Name, Mark_Description)

Mark_ID = 0
Mark_Left = 0
Mark_Top = 0
Mark_Width = 0
Mark_Height = 0
Mark_Name = ""
Mark_Description = ""

Next
nCountMarks = Mark_Index + 1
End If

End If
'######################## End Read #########################################



'Zeigt den BildPfad an
Label7.Text = Pub_aPfade(Pub_nPfadeIndex)

'Befülle die TextBox-en
tb_Bild_Name.Text = TaggedIMG1.Title
tb_Bild_Time.Text = TaggedIMG1.Time
tb_Bild_Description.Text = TaggedIMG1.Description

tb_Place_Name.Text = TaggedIMG1.Place.Title
tb_Place_Addresse.Text = TaggedIMG1.Place.Adress
tb_Place_GPS.Text = TaggedIMG1.Place.GPS
tb_Place_Description.Text = TaggedIMG1.Place.Description
End If




End Sub

Private Sub Data_Save()

'### INI Einstellungen ###
Dim ForEachDat As Boolean = False
Dim INI_Locate As String
Dim INI_Name As String
Dim PicturePath As String = Pub_aPfade(Pub_nPfadeIndex)

If ForEachDat Then
INI_Name = System.IO.Path.Combine(System.IO.Path.GetFileName(PicturePath), ".ini")
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
Else
INI_Name = "Tagg.ini"
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
End If

'### Main #################
If System.IO.File.Exists(PicturePath) Then
If Not System.IO.File.Exists(INI_Locate) Then System.IO.File.Create(INI_Locate)

'Deklarationen
Dim sKey = TaggedIMG1.ID

'Titel
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Title", TaggedIMG1.Title)

'Kurzbeschreibung
'##############################################################
'Formate Description Text from "Description"
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Description", Tools.Convert.Coding.Ascii_To_Base64(TaggedIMG1.Description))
'##############################################################

'Zeitangabe
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Time", TaggedIMG1.Time)
'Ortsangabe-Title
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_Title", TaggedIMG1.Place.Title)
'Ortsangabe-Adresse
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_Adresse", TaggedIMG1.Place.Adress)

'Ortsangabe-Kurzbeschreibung
'##############################################################
'Formate Description Text from "TMP_TaggIMG.Place.Description"
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_Description", Tools.Convert.Coding.Ascii_To_Base64(TaggedIMG1.Place.Description))
'##############################################################

'Ortsangabe-GPS Koordinaten
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_GPS", TaggedIMG1.Place.GPS)


Dim oTemp() As Mark = TaggedIMG1.Marks_GetAll
Dim counter As Integer

counter = -1
For Each Markierung As Mark In oTemp
If (Markierung.Command = "Nothing") Or (Markierung.Command = "Change") Or (Markierung.Command = "Create") Then
counter += 1

Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_ID", Convert.ToString(counter))
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Left", Convert.ToString(Markierung.Left))
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Top", Convert.ToString(Markierung.Top))
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Width", Convert.ToString(Markierung.Width))
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Height", Convert.ToString(Markierung.Height))
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Name", Convert.ToString(Markierung.Name))
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & Convert.ToString(counter) & "_Description", Tools.Convert.Coding.Ascii_To_Base64(Markierung.Description))

End If

Next
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark_MaxIndex", counter)

End If
End Sub

End Class End Class

View File

@ -1,227 +0,0 @@
Option Explicit On
Imports SB_PictureTagger.Stammbaum
Namespace Stammbaum.Module.PictureTagger
Module PictureTagger

'###################################################################################################################
'############### Lade ##############################################################################################
'###################################################################################################################

Public Sub PT_LoadVerzeichnis()
If System.IO.Directory.Exists(Settings.PictureTagger.Pub_sPath) Then
Settings.PictureTagger.Pub_aPfade = Tools.Filesystem.GetFilesFromDir(Settings.PictureTagger.Pub_sPath, Settings.PictureTagger.Pub_aSupportedFiles, Settings.PictureTagger.Pub_nOrdnerTiefe)
Settings.PictureTagger.pub_nPfadeIndex = 0
End If
End Sub 'Lade Bilder in pub_aPfade Array; Setze Index auf 0

Public Sub PT_LoadTaggedIMG()
'Absicherung für Undimensioniertes Array
If Settings.PictureTagger.Pub_aPfade.Length = 0 Then ReDim Settings.PictureTagger.Pub_aPfade(0)

'Bereinige Falsche Indexangaben
If UBound(Settings.PictureTagger.Pub_aPfade) < Settings.PictureTagger.Pub_nPfadeIndex Then Settings.PictureTagger.Pub_nPfadeIndex = UBound(Settings.PictureTagger.Pub_aPfade)

'Bildpfad auf existenz Prüfen
If System.IO.File.Exists(Settings.PictureTagger.Pub_aPfade(Settings.PictureTagger.Pub_nPfadeIndex)) Then

'Taggs With INI:
Settings.PictureTagger.Pub_oLoaded_TaggedIMG = INI_Load_Taggs(Settings.PictureTagger.Pub_aPfade(Settings.PictureTagger.Pub_nPfadeIndex), False)

'Later With DB ---

End If
End Sub 'Lade TaggedIMG in Pub_oLoaded_TaggedIMG


'###################################################################################################################
'############### Speichere #########################################################################################
'###################################################################################################################
Public Sub PT_SaveTaggedIMG()

If (Settings.PictureTagger.Pub_oLoaded_TaggedIMG.ID <> "" Or Nothing) And System.IO.File.Exists(Settings.PictureTagger.Pub_oLoaded_TaggedIMG.Path) Then

'Taggs With INI:
INI_Save_Taggs(Settings.PictureTagger.Pub_oLoaded_TaggedIMG, False)

'Later With DB ---

End If
End Sub


'###################################################################################################################
'############### Taggs With INI ####################################################################################
'###################################################################################################################

'Taggs auslesen (jezt noch aus INI - später aus DB)
Private Function INI_Load_Taggs(ByVal PicturePath As String, Optional ByVal ForEachDat As Boolean = False) As Classen.PictureTagger.TaggedIMG
'### INI Einstellungen ###
Dim INI_Locate As String
Dim INI_Name As String

If ForEachDat Then
INI_Name = System.IO.Path.Combine(System.IO.Path.GetFileName(PicturePath), ".ini")
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
Else
INI_Name = "Tagg.ini"
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
End If

'### Main ##
Dim TMP_TaggIMG As New Classen.PictureTagger.TaggedIMG
If System.IO.File.Exists(PicturePath) Then

'Lade Wichtigste Eigenschaften = Immer Forhanden bei Geladenem TaggedIMG
TMP_TaggIMG.Image = Image.FromFile(PicturePath)
TMP_TaggIMG.Path = PicturePath
TMP_TaggIMG.ID = System.IO.Path.GetFileName(PicturePath)

If System.IO.File.Exists(INI_Locate) Then
'Deklarationen
Dim sKey As String = TMP_TaggIMG.ID

'Lade Optionalen Rest:
'Titel
TMP_TaggIMG.Title = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Title", Nothing)
'Kurzbeschreibung
'##############################################################
'ReFormate Description Text from "Description"
TMP_TaggIMG.Description = Tools.Convert.Coding.Base64_To_Ascii(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Description", Nothing))
'##############################################################

'Zeitangabe
TMP_TaggIMG.Time = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Time", Nothing)
'Ortsangabe-Title
TMP_TaggIMG.Ort.Title = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_Title", Nothing)
'Ortsangabe-Adresse
TMP_TaggIMG.Ort.Adresse = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_Adresse", Nothing)
'Ortsangabe-Kurzbeschreibung
'##############################################################
'ReFormate Description Text from "Place.Description"
TMP_TaggIMG.Ort.Description = Tools.Convert.Coding.Base64_To_Ascii(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_Description", Nothing))
'##############################################################

'Ortsangabe-GPS Koordinaten
TMP_TaggIMG.Ort.GPS = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Place_GPS", Nothing)




'Führ Makrierungen einlese Schleife
''Dim i As Long
''Dim Mark_ID As String
''Dim Mark_PositionX As Long
''Dim Mark_PositionY As Long
''Dim Mark_Radius As Long
''Dim Mark_Description As String
''Dim Mark_Index As Long

'Load Marks
'sMark_Index = Modul_Tools.Config_INI_ReadValue(INI_Locate, ID, "Title")
''i = 0
''Do While i <= 200
'' Mark_Index = ("Mark" & Convert.ToString(i) & "_ID")
'' Mark_ID = Tools.Data.File.INI_ReadValue(INI_Locate, sKey, Mark_Index)
'' If Mark_ID <> "" Then
'' i += 1

'' Mark_PositionX = Convert.ToDouble(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(i) & "_PositionX", "0"))
'' Mark_PositionY = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(i) & "_PositionY", "0"))
'' Mark_Radius = Convert.ToInt32(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(i) & "_Radius", "0"))
'' '##############################################################
'' 'ReFormate Description Text from "Mark_Description"
'' Mark_Description = Tools.Convert.Coding.Base64_To_Ascii(Tools.Data.File.INI_ReadValue(INI_Locate, sKey, "Mark" & Convert.ToString(i) & "_Description", Nothing))
'' '##############################################################

'' 'Erstellen eines Neuen Marks
'' TMP_TaggIMG.Create_NewMark(Mark_ID, Mark_PositionX, Mark_PositionY, Mark_Radius, Mark_Description)
'' Else
'' 'Verlasse Schleife
'' Exit Do
'' End If
''Loop


End If 'File.Exists(INI_Locate)
End If 'File.Exists(PicturePath)
INI_Load_Taggs = TMP_TaggIMG

End Function

Private Sub INI_Save_Taggs(ByVal oTaggedIMG As Classen.PictureTagger.TaggedIMG, Optional ByVal ForEachDat As Boolean = False)

'### INI Einstellungen ###
Dim INI_Locate As String
Dim INI_Name As String
Dim PicturePath As String = oTaggedIMG.Path

If ForEachDat Then
INI_Name = System.IO.Path.Combine(System.IO.Path.GetFileName(PicturePath), ".ini")
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
Else
INI_Name = "Tagg.ini"
INI_Locate = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(PicturePath), INI_Name)
End If

'### Main ##
If System.IO.File.Exists(PicturePath) Then
If Not System.IO.File.Exists(INI_Locate) Then System.IO.File.Create(INI_Locate)

'Deklarationen
Dim sKey = oTaggedIMG.ID

'Titel
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Title", oTaggedIMG.Title)

'Kurzbeschreibung
'##############################################################
'Formate Description Text from "Description"
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Description", Tools.Convert.Coding.Ascii_To_Base64(oTaggedIMG.Description))
'##############################################################

'Zeitangabe
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Time", oTaggedIMG.Time)
'Ortsangabe-Title
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_Title", oTaggedIMG.Ort.Title)
'Ortsangabe-Adresse
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_Adresse", oTaggedIMG.Ort.Adresse)

'Ortsangabe-Kurzbeschreibung
'##############################################################
'Formate Description Text from "TMP_TaggIMG.Place.Description"
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_Description", Tools.Convert.Coding.Ascii_To_Base64(oTaggedIMG.Ort.Description))
'##############################################################

'Ortsangabe-GPS Koordinaten
Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Place_GPS", oTaggedIMG.Ort.GPS)




'Save Marks ############### wird noch geändert ############### <-- 'Anhand von Mark_Index wird anzahl geregelt!
''i = 0
''If oTaggedIMG.Markierung(0).ID <> "" Then
'' For i = 0 To UBound(oTaggedIMG.Markierung)
'' Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & i & "_ID", Convert.ToString(i))
'' Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & i & "_PositionX", Convert.ToString(oTaggedIMG.Markierung(i).PositionX))
'' Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & i & "_PositionY", Convert.ToString(oTaggedIMG.Markierung(i).PositionY))
'' Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & i & "_Radius", Convert.ToString(oTaggedIMG.Markierung(i).Radius))
'' Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark" & i & "_Description", Tools.Convert.Coding.Ascii_To_Base64(oTaggedIMG.Markierung(i).Description))

'' 'Schreibe Begrenzung
'' Tools.Data.File.INI_WriteValue(INI_Locate, sKey, "Mark_MaxIndex", i)

'' Next i
''End If

End If 'File.Exists(PicturePath)
End Sub

'###################################################################################################################
'############### Taggs With DB #####################################################################################
'###################################################################################################################



End Module 'PictureTagger
End Namespace 'Stammbaum.Module.PictureTagger

713
SB-PictureTagger/M_Tools.vb Normal file → Executable file
View File

@ -1,355 +1,360 @@
Namespace Tools Namespace Tools
Namespace Filesystem Namespace Filesystem
Module Filesystem <HideModuleName()>

Module Filesystem
'######################################################################################
'################Function GetFilesFromDir(Pfad; Extention; RecursionsTiefe)############ '######################################################################################
Public Function GetFilesFromDir(ByVal Pfad As String, ByVal Extention() As String, Optional ByVal RecursionsTiefe As Integer = 0) As String() '################Function GetFilesFromDir(Pfad; Extention; RecursionsTiefe)############

Public Function GetFilesFromDir(ByVal Pfad As String, ByVal Extention() As String, Optional ByVal RecursionsTiefe As Integer = 0) As String()
If Extention.Length <= 0 Then ReDim Extention(0)
If Extention(0) = Nothing Then Extention(0) = "" If Extention.Length <= 0 Then ReDim Extention(0)

If Extention(0) = Nothing Then Extention(0) = ""
Dim aPathList(0) As String
Dim aPathList_Extention(0) As String Dim aPathList(0) As String

Dim aPathList_Extention(0) As String
'Überprüfen auf Pfad Korektheit
If System.IO.Directory.Exists(Pfad) Then 'Überprüfen auf Pfad Korektheit

If System.IO.Directory.Exists(Pfad) Then
'Auslesen der Ordner
_GetFilesFromDir(aPathList, Pfad, RecursionsTiefe) 'Auslesen der Ordner
If aPathList.Length <= 0 Then ReDim aPathList(0) _GetFilesFromDir(aPathList, Pfad, RecursionsTiefe)

If aPathList.Length <= 0 Then ReDim aPathList(0)
'Extention Rausfiltern
If Not (Array.IndexOf(Extention, "*") >= 0) Then 'Extention Rausfiltern
For Each EachFile In aPathList If Not (Array.IndexOf(Extention, "*") >= 0) Then
If (Array.IndexOf(Extention, System.IO.Path.GetExtension(EachFile)) >= 0) Then For Each EachFile In aPathList
'Undimensionierte Arrays werden Dimensioniert If (Array.IndexOf(Extention, System.IO.Path.GetExtension(EachFile)) >= 0) Then
If aPathList_Extention.Length <= 0 Then ReDim aPathList_Extention(0) 'Undimensionierte Arrays werden Dimensioniert

If aPathList_Extention.Length <= 0 Then ReDim aPathList_Extention(0)
'Wenn Letzter Wert Im Array nicht vergeben ist
If (aPathList_Extention(UBound(aPathList_Extention)) = Nothing) Or (aPathList_Extention(UBound(aPathList_Extention)) = "") Then 'Wenn Letzter Wert Im Array nicht vergeben ist
aPathList_Extention(UBound(aPathList_Extention)) = EachFile If (aPathList_Extention(UBound(aPathList_Extention)) = Nothing) Or (aPathList_Extention(UBound(aPathList_Extention)) = "") Then
Else aPathList_Extention(UBound(aPathList_Extention)) = EachFile
'Wenn Letzter Wert Im Array ist vergeben! Else
ReDim Preserve aPathList_Extention(UBound(aPathList_Extention) + 1) 'Wenn Letzter Wert Im Array ist vergeben!
aPathList_Extention(UBound(aPathList_Extention)) = EachFile ReDim Preserve aPathList_Extention(UBound(aPathList_Extention) + 1)
End If aPathList_Extention(UBound(aPathList_Extention)) = EachFile
End If End If
Next End If
Else Next
aPathList_Extention = aPathList Else
End If aPathList_Extention = aPathList

End If
'Array Sortieren
Array.Sort(aPathList_Extention) 'Array Sortieren

Array.Sort(aPathList_Extention)
Else
aPathList_Extention(0) = Nothing Else
End If aPathList_Extention(0) = Nothing
GetFilesFromDir = aPathList_Extention End If
End Function GetFilesFromDir = aPathList_Extention

End Function
Private Sub _GetFilesFromDir(ByRef aAim As String(), ByVal Pfad As String, ByVal RecursionsTiefe As Integer)
Try 'Um das Zugrifsrecht Problem zu Beseitigen Private Sub _GetFilesFromDir(ByRef aAim As String(), ByVal Pfad As String, ByVal RecursionsTiefe As Integer)
If RecursionsTiefe > 0 Then Try 'Um das Zugrifsrecht Problem zu Beseitigen
Dim aDirs As String() = System.IO.Directory.GetDirectories(Pfad) If RecursionsTiefe > 0 Then
For Each EachDir In aDirs Dim aDirs As String() = System.IO.Directory.GetDirectories(Pfad)
_GetFilesFromDir(aAim, EachDir, (RecursionsTiefe - 1)) For Each EachDir In aDirs
Next _GetFilesFromDir(aAim, EachDir, (RecursionsTiefe - 1))
End If Next
Dim aFiles As String() = System.IO.Directory.GetFiles(Pfad) End If

Dim aFiles As String() = System.IO.Directory.GetFiles(Pfad)
For Each EachFile In aFiles
If aAim.Length <= 0 Then ReDim aAim(0) For Each EachFile In aFiles
If (aAim(UBound(aAim)) = Nothing) Or (aAim(UBound(aAim)) = "") Then If aAim.Length <= 0 Then ReDim aAim(0)
aAim(UBound(aAim)) = EachFile If (aAim(UBound(aAim)) = Nothing) Or (aAim(UBound(aAim)) = "") Then
Else aAim(UBound(aAim)) = EachFile
ReDim Preserve aAim(UBound(aAim) + 1) Else
aAim(UBound(aAim)) = EachFile ReDim Preserve aAim(UBound(aAim) + 1)
End If aAim(UBound(aAim)) = EachFile
Next End If
Catch err As System.UnauthorizedAccessException Next
End Try Catch err As System.UnauthorizedAccessException
End Sub 'Teil von Finction GetFilesFromDir End Try
'###################################################################################### End Sub 'Teil von Finction GetFilesFromDir
'###################################################################################### '######################################################################################

'######################################################################################
'### with .Net: Imports System.IO; Directory.Exists(Path)####
Private Function FileExists(ByVal FileName As String) As Boolean '### with .Net: Imports System.IO; Directory.Exists(Path)####
On Error Resume Next Private Function FileExists(ByVal FileName As String) As Boolean
FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume)) On Error Resume Next
On Error GoTo 0 FileExists = Not CBool(GetAttr(FileName) And (vbDirectory Or vbVolume))
End Function 'FileExists Vor VBA AND VB without .Net On Error GoTo 0

End Function 'FileExists Vor VBA AND VB without .Net
'### with .Net: Imports System.IO; File.Exists(Path)####
Private Function DirExists(ByVal DirectoryName As String) As Boolean '### with .Net: Imports System.IO; File.Exists(Path)####
On Error Resume Next Private Function DirExists(ByVal DirectoryName As String) As Boolean
DirExists = CBool(GetAttr(DirectoryName) And vbDirectory) On Error Resume Next
On Error GoTo 0 DirExists = CBool(GetAttr(DirectoryName) And vbDirectory)
End Function 'DirExists Vor VBA AND VB without .Net On Error GoTo 0
'###################################################################################### End Function 'DirExists Vor VBA AND VB without .Net
'###################################################################################### '######################################################################################

'######################################################################################
End Module
End Namespace 'Filesystem End Module
Namespace Dialoge End Namespace 'Filesystem
Module Dialoge Namespace Dialoge

<HideModuleName()>
Public Function FolderBrowserDialog(Optional ByVal sStartPath As String = "C:\", Optional ByVal ShowNewFolderButton As Boolean = True, Optional ByRef CheckError As Boolean = False) As String Module Dialoge
'Verändert die übergebene variable,
'wenn der benutzer durch "OK" den neuen Pfad bestätigt Public Function FolderBrowserDialog(Optional ByVal sStartPath As String = "C:\", Optional ByVal ShowNewFolderButton As Boolean = True, Optional ByRef CheckError As Boolean = False) As String
FolderBrowserDialog = "" 'Verändert die übergebene variable,
Using FolderBrowserD As New FolderBrowserDialog 'wenn der benutzer durch "OK" den neuen Pfad bestätigt
With FolderBrowserD FolderBrowserDialog = ""
' Ordnervorschlag Using FolderBrowserD As New FolderBrowserDialog
.SelectedPath = sStartPath With FolderBrowserD

' Ordnervorschlag
.Description = "Bitte einen Ordner auswählen." .SelectedPath = sStartPath


'#Button "Neuen Ordner erstellen" anzeigen .Description = "Bitte einen Ordner auswählen."
.ShowNewFolderButton = ShowNewFolderButton

'#Button "Neuen Ordner erstellen" anzeigen
'#ruft Dialog auf, weitere Ausführung nur bei Resultat "OK" .ShowNewFolderButton = ShowNewFolderButton
If .ShowDialog = Windows.Forms.DialogResult.OK Then
FolderBrowserDialog = .SelectedPath '#ruft Dialog auf, weitere Ausführung nur bei Resultat "OK"
Else If .ShowDialog = Windows.Forms.DialogResult.OK Then
CheckError = True '#Ausführung bei Abruch FolderBrowserDialog = .SelectedPath
End If Else
End With 'FolderBrowserD CheckError = True '#Ausführung bei Abruch
End Using End If
End Function 'FolderBrowserDialog End With 'FolderBrowserD

End Using
'################################################################################################################### End Function 'FolderBrowserDialog
'############### OpenFileDialog ####################################################################################
'################################################################################################################### '###################################################################################################################

'############### OpenFileDialog ####################################################################################
'Private Sub Button1_Click(ByVal sender As Object, ByVal e As _ '###################################################################################################################
' EventArgs) Handles Button1.Click
' ' ### OpenFileDialog ### 'Private Sub Button1_Click(ByVal sender As Object, ByVal e As _
' Dim txt As String = "" ' EventArgs) Handles Button1.Click
' Using ofd As New OpenFileDialog ' ' ### OpenFileDialog ###

' Dim txt As String = ""
' With ofd ' Using ofd As New OpenFileDialog
' ' Ordnervorschlag
' .InitialDirectory = Pfad ' With ofd
' .Title = "Wähle Datei zum öffnen" ' ' Ordnervorschlag
' ' Dateivorschlag (falls sinnvoll) ' .InitialDirectory = Pfad
' ' .FileName = "Datei.gif" ' .Title = "Wähle Datei zum öffnen"

' ' Dateivorschlag (falls sinnvoll)
' ' Filter ' ' .FileName = "Datei.gif"
' .Filter = TextBox2.Text
' ' boolsche Abfrage ob Mehrfachauswahl zulässig ' ' Filter
' .Multiselect = Not ChkEinzel.Checked ' .Filter = TextBox2.Text

' ' boolsche Abfrage ob Mehrfachauswahl zulässig
' ' Zeile ruft den Dialog auf, weitere Ausführung nur bei ' .Multiselect = Not ChkEinzel.Checked
' ' Resultat OK:
' If .ShowDialog = Windows.Forms.DialogResult.OK Then ' ' Zeile ruft den Dialog auf, weitere Ausführung nur bei
' If ChkEinzel.Checked = True Then ' ' Resultat OK:
' ' Bei Einzelauswahl wertet man .FileName aus ' If .ShowDialog = Windows.Forms.DialogResult.OK Then
' txt = .FileName & vbNewLine ' If ChkEinzel.Checked = True Then

' ' Bei Einzelauswahl wertet man .FileName aus
' Else ' txt = .FileName & vbNewLine
' ' Bei möglicher Multiselektion wertet man
' ' das Array .FileNames aus ' Else
' For Each filename As String In .FileNames ' ' Bei möglicher Multiselektion wertet man
' txt &= filename & vbNewLine ' ' das Array .FileNames aus
' Next ' For Each filename As String In .FileNames
' End If ' txt &= filename & vbNewLine
' ' Welcher Filter wurde verwendet? ' Next
' Dim idx As Integer = .FilterIndex ' End If
' txt &= "FilterIndex: " & idx.ToString & vbNewLine ' ' Welcher Filter wurde verwendet?
' txt &= "Gewählter Filter: " & FilterDescription(.Filter, _ ' Dim idx As Integer = .FilterIndex
' idx) & vbNewLine ' txt &= "FilterIndex: " & idx.ToString & vbNewLine
' txt &= "Multiselect: " & .Multiselect.ToString ' txt &= "Gewählter Filter: " & FilterDescription(.Filter, _
' Else ' idx) & vbNewLine
' txt = "Abbruch durch Benutzer" ' txt &= "Multiselect: " & .Multiselect.ToString
' End If ' Else
' End With ' txt = "Abbruch durch Benutzer"
' End Using ' End If
' TextBox1.Text = txt ' End With
'End Sub 'OpenFileDialog ' End Using

' TextBox1.Text = txt
'################################################################################################################### 'End Sub 'OpenFileDialog
'############### SaveFileDialog ####################################################################################
'################################################################################################################### '###################################################################################################################

'############### SaveFileDialog ####################################################################################
'Private Sub Button2_Click(ByVal sender As Object, ByVal e As _ '###################################################################################################################
' EventArgs) Handles Button2.Click
' ' ### SaveFileDialog ### 'Private Sub Button2_Click(ByVal sender As Object, ByVal e As _
' Dim txt As String ' EventArgs) Handles Button2.Click
' Using sfd As New SaveFileDialog ' ' ### SaveFileDialog ###

' Dim txt As String
' With sfd ' Using sfd As New SaveFileDialog
' ' Ordnervorschlag
' .InitialDirectory = Pfad ' With sfd
' .Title = "Eingabe Datei zum speichern (Es wird hier nicht "_ ' ' Ordnervorschlag
' "wirklich überschrieben)" ' .InitialDirectory = Pfad
' ' Dateivorschlag ' .Title = "Eingabe Datei zum speichern (Es wird hier nicht "_
' .FileName = "Datei.gif" ' "wirklich überschrieben)"
' ' Filter ' ' Dateivorschlag
' .Filter = TextBox2.Text ' .FileName = "Datei.gif"

' ' Filter
' ' Zeile ruft den Dialog auf, weitere Ausführung nur bei ' .Filter = TextBox2.Text
' ' Resultat OK:
' If .ShowDialog = Windows.Forms.DialogResult.OK Then ' ' Zeile ruft den Dialog auf, weitere Ausführung nur bei
' txt = .FileName & vbNewLine ' ' Resultat OK:

' If .ShowDialog = Windows.Forms.DialogResult.OK Then
' ' Welcher Filter wurde verwendet? ' txt = .FileName & vbNewLine
' Dim idx As Integer = .FilterIndex
' txt &= "FilterIndex: " & idx.ToString & vbNewLine ' ' Welcher Filter wurde verwendet?
' txt &= "Gewählter Filter: " & FilterDescription(.Filter, _ ' Dim idx As Integer = .FilterIndex
' idx) ' txt &= "FilterIndex: " & idx.ToString & vbNewLine
' Else ' txt &= "Gewählter Filter: " & FilterDescription(.Filter, _
' txt = "Abbruch durch Benutzer" ' idx)
' End If ' Else
' End With ' txt = "Abbruch durch Benutzer"
' End Using ' End If
' TextBox1.Text = txt ' End With
'End Sub 'SaveFileDialog ' End Using

' TextBox1.Text = txt
'################################################################################################################### 'End Sub 'SaveFileDialog
'############### xxxxxxxxxxxxxxxxxxxxxxx ###########################################################################
'################################################################################################################### '###################################################################################################################

'############### xxxxxxxxxxxxxxxxxxxxxxx ###########################################################################
'Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As _ '###################################################################################################################
' Object, ByVal e As EventArgs) _
' Handles ComboBox1.SelectedIndexChanged 'Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As _
' Dim strFilter As String ' Object, ByVal e As EventArgs) _
' Select Case ComboBox1.SelectedIndex ' Handles ComboBox1.SelectedIndexChanged
' Case 0 ' Dim strFilter As String
' ' Einfacher Filter ' Select Case ComboBox1.SelectedIndex
' strFilter = "Gif Bilddateien|*.gif" ' Case 0
' Case 1 ' ' Einfacher Filter
' ' Erweiterter Filter ' strFilter = "Gif Bilddateien|*.gif"
' strFilter = "JPEG Bilddateien|*.jpg|Gif Bilddateien|*.gif|Alle Dateien|*.*" ' Case 1
' Case Else ' ' Erweiterter Filter
' ' Mehrere Dateierweiterungen in einer Auswahl ' strFilter = "JPEG Bilddateien|*.jpg|Gif Bilddateien|*.gif|Alle Dateien|*.*"
' strFilter = "Alle Bilddateien|*.jpg; *.jpeg; *.bmp; *.gif, *.tif|Alle Dateien|*.*" ' Case Else
' End Select ' ' Mehrere Dateierweiterungen in einer Auswahl

' strFilter = "Alle Bilddateien|*.jpg; *.jpeg; *.bmp; *.gif, *.tif|Alle Dateien|*.*"
' TextBox2.Text = strFilter ' End Select
'End Sub 'ComboBox1_SelectedIndexChanged

' TextBox2.Text = strFilter
'Private Function FilterDescription(ByVal Filter As String, _ 'End Sub 'ComboBox1_SelectedIndexChanged
' ByVal Index As Integer) As String
' ' erstellt aus dem Filterstring die Bezeichnung 'Private Function FilterDescription(ByVal Filter As String, _
' Dim strArr() As String = Split(Filter, "|"), _ ' ByVal Index As Integer) As String
' MyList As New List(Of String) ' ' erstellt aus dem Filterstring die Bezeichnung
' For i As Integer = 0 To strArr.GetUpperBound(0) ' Dim strArr() As String = Split(Filter, "|"), _
' If (i Mod 2 = 0) Then MyList.Add(strArr(i)) ' MyList As New List(Of String)
' Next ' For i As Integer = 0 To strArr.GetUpperBound(0)
' Return MyList(Index - 1) ' If (i Mod 2 = 0) Then MyList.Add(strArr(i))
'End Function 'FilterDescription ' Next

' Return MyList(Index - 1)
End Module 'End Function 'FilterDescription
End Namespace 'Dialoge (Ordner Öffnen, Datei Öffnen, Datei Speichern, Ja/Nein, ...
Namespace Convert End Module
Namespace Numeral_System End Namespace 'Dialoge (Ordner Öffnen, Datei Öffnen, Datei Speichern, Ja/Nein, ...
'Gehört noch Proggramiert (Hex - Dezi - Dual - Römisch - ...) Namespace Convert
End Namespace 'Numeral_System (Hex - Dezi - Dual - Römisch - ...) in work Namespace Numeral_System
Namespace Coding 'Gehört noch Proggramiert (Hex - Dezi - Dual - Römisch - ...)
Module Coding End Namespace 'Numeral_System (Hex - Dezi - Dual - Römisch - ...) in work
'###################################################################################### Namespace Coding
'##################################Ascii AND Base64#################################### <HideModuleName()>
'Ascii to Base64 Module Coding
Public Function Ascii_To_Base64(ByVal AsciiString As String) As String '######################################################################################
Dim base64encoded As String = vbNull '##################################Ascii AND Base64####################################
Dim raw As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(AsciiString) 'Ascii to Base64
base64encoded = System.Convert.ToBase64String(raw) Public Function Ascii_To_Base64(ByVal AsciiString As String) As String
Ascii_To_Base64 = base64encoded If AsciiString = Nothing Then AsciiString = ""
End Function Dim raw As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(AsciiString)
'Base64 to Ascii Ascii_To_Base64 = System.Convert.ToBase64String(raw)
Public Function Base64_To_Ascii(ByVal Base64String As String) As String End Function
Try 'Base64 to Ascii
Dim raw As Byte() = System.Convert.FromBase64String(Base64String) Public Function Base64_To_Ascii(ByVal Base64String As String) As String
Base64_To_Ascii = System.Text.ASCIIEncoding.ASCII.GetString(raw) Try
Catch ex As Exception Dim raw As Byte() = System.Convert.FromBase64String(Base64String)
Base64_To_Ascii = "" Base64_To_Ascii = System.Text.ASCIIEncoding.ASCII.GetString(raw)
End Try Catch ex As Exception
End Function Base64_To_Ascii = ""
'###################################################################################### End Try
'###################################################################################### End Function
End Module 'Coding '######################################################################################
End Namespace 'Coding (Ascii, Base64, Dual<-in work, ...) '######################################################################################
Namespace Koordinaten End Module 'Coding
Module Koordinaten End Namespace 'Coding (Ascii, Base64, Dual<-in work, ...)
'Soll anhand der GPS Koordinaten GoogleMaps öfnen Namespace Koordinaten
'URL ansteuerung: https://developers.google.com/maps/documentation/staticmaps/ <HideModuleName()>
' String = "52.520817 13.40945" Module Koordinaten
' 'Soll anhand der GPS Koordinaten GoogleMaps öfnen
'Umrechnung von Geo-Koordinaten: http://rechneronline.de/geo-koordinaten/ 'URL ansteuerung: https://developers.google.com/maps/documentation/staticmaps/
' ___________________________________________________________________________________________________ ' String = "52.520817 13.40945"
'| Grad, Minuten, Sekunden | Dezimalgrad | Grad, Dezimalminuten | '
'| z.B. N52° 31' 14.941" E13° 24' 34.020" | z.B. 52.520817 13.40945 | z.B. N52° 31.249 E13° 24.567 | 'Umrechnung von Geo-Koordinaten: http://rechneronline.de/geo-koordinaten/
' --------------------------------------------------------------------------------------------------- ' ___________________________________________________________________________________________________
' URL= "http://maps.google.com/maps?q=" & String '| Grad, Minuten, Sekunden | Dezimalgrad | Grad, Dezimalminuten |
'In Projekt SB-PictureTagger: Set a LincLable ;) '| z.B. N52° 31' 14.941" E13° 24' 34.020" | z.B. 52.520817 13.40945 | z.B. N52° 31.249 E13° 24.567 |
End Module 'Koordinaten ' ---------------------------------------------------------------------------------------------------
End Namespace 'Koordinaten (GPS einheiten, MapsURLs,...) ' URL= "http://maps.google.com/maps?q=" & String
End Namespace 'Convert 'In Projekt SB-PictureTagger: Set a LincLable ;)
Namespace Prog_Org End Module 'Koordinaten
Module Prog_Org End Namespace 'Koordinaten (GPS einheiten, MapsURLs,...)
'###################################################################################### End Namespace 'Convert
'############################## PORTABLE MODE TOOLS ################################### Namespace Prog_Org
'Festlegung ob Portable oder nicht, ... <HideModuleName()>
Public Function PortableModeTrue(ByVal ConfigFileName As String) As Boolean Module Prog_Org
If System.IO.File.Exists(".\" & ConfigFileName) Then '######################################################################################
PortableModeTrue = True '############################## PORTABLE MODE TOOLS ###################################
Else 'Festlegung ob Portable oder nicht, ...
PortableModeTrue = False Public Function PortableModeTrue(ByVal ConfigFileName As String) As Boolean
End If If System.IO.File.Exists(".\" & ConfigFileName) Then

PortableModeTrue = True
End Function 'PortableModeTrue Else
'PortableMode: PortableModeTrue = False
'Übergabe: ConfigFile [WorkDir] [AppName] Return: (PortableMode=True/False) End If
'ConfigFile Nahme und Extendion - Wird Indirekt Geändert zu KonfigPfad
'WorkDir Pfad des Arbeitsverzeichnises - Wird Indirekt Geändert End Function 'PortableModeTrue
'AppName Erstellt einen Neuern Ordner mit Diesen Nahme, wenn Nicht Portabler Mode 'PortableMode:
Public Function PortableMode(ByRef ConfigFile As String, Optional ByRef WorkDir As String = "-default-", Optional ByVal AppName As String = "-default-") As Boolean 'Übergabe: ConfigFile [WorkDir] [AppName] Return: (PortableMode=True/False)
If AppName = ("-default-" Or "") Then 'ConfigFile Nahme und Extendion - Wird Indirekt Geändert zu KonfigPfad
AppName = Application.ProductName 'WorkDir Pfad des Arbeitsverzeichnises - Wird Indirekt Geändert
End If 'AppName Erstellt einen Neuern Ordner mit Diesen Nahme, wenn Nicht Portabler Mode
If Not System.IO.Directory.Exists(WorkDir) Then WorkDir = "-default-" Public Function PortableMode(ByRef ConfigFile As String, Optional ByRef WorkDir As String = "-default-", Optional ByVal AppName As String = "-default-") As Boolean
If WorkDir = ("-default-" Or "") Then If AppName = ("-default-" Or "") Then
WorkDir = Application.StartupPath AppName = Application.ProductName
End If End If

If Not System.IO.Directory.Exists(WorkDir) Then WorkDir = "-default-"
If System.IO.File.Exists(System.IO.Path.Combine(WorkDir, ConfigFile)) Then If WorkDir = ("-default-" Or "") Then
PortableMode = True WorkDir = Application.StartupPath
ConfigFile = System.IO.Path.Combine(WorkDir, ConfigFile) End If
Else
PortableMode = False If System.IO.File.Exists(System.IO.Path.Combine(WorkDir, ConfigFile)) Then
WorkDir = Environment.GetEnvironmentVariable("APPDATA") & "\" & AppName PortableMode = True
If Not System.IO.Directory.Exists(WorkDir) Then System.IO.Directory.CreateDirectory(WorkDir) ConfigFile = System.IO.Path.Combine(WorkDir, ConfigFile)
ConfigFile = System.IO.Path.Combine(WorkDir, ConfigFile) Else
If Not System.IO.File.Exists(ConfigFile) Then System.IO.File.Create(ConfigFile) PortableMode = False
End If WorkDir = Environment.GetEnvironmentVariable("APPDATA") & "\" & AppName

If Not System.IO.Directory.Exists(WorkDir) Then System.IO.Directory.CreateDirectory(WorkDir)
End Function 'PortableMode ConfigFile = System.IO.Path.Combine(WorkDir, ConfigFile)
'###################################################################################### If Not System.IO.File.Exists(ConfigFile) Then System.IO.File.Create(ConfigFile)
'###################################################################################### End If
End Module
End Namespace 'Prog_Org End Function 'PortableMode
Namespace Data '######################################################################################
Namespace DB '######################################################################################
'Verschiedenen DBs mit ihren Befehlen End Module
End Namespace 'DBs (SQLite, SQL, MySQL, ...) End Namespace 'Prog_Org
Namespace File Namespace Data
Module File Namespace DB
'Declaration für INI: 'Verschiedenen DBs mit ihren Befehlen
Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32 End Namespace 'DBs (SQLite, SQL, MySQL, ...)
Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32 Namespace File

<HideModuleName()>
Public Function INI_ReadValue(ByVal sFilePath As String, ByVal sSection As String, ByVal sKey As String, Optional ByVal sDefault As String = "") As String Module File
Dim strTemp As String = Space(1024), lLength As Integer 'Declaration für INI:
lLength = GetPrivateProfileString(sSection, sKey, sDefault, strTemp, strTemp.Length, sFilePath) Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32
Return (strTemp.Substring(0, lLength)) Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32
End Function 'Read a INI
Public Function INI_WriteValue(ByVal sFilePath As String, ByVal sSection As String, ByVal sKey As String, ByVal sValue As String) As Boolean Public Function INI_ReadValue(ByVal sFilePath As String, ByVal sSection As String, ByVal sKey As String, Optional ByVal sDefault As String = "") As String
Return (Not (WritePrivateProfileString(sSection, sKey, sValue, sFilePath) = 0)) Dim strTemp As String = Space(1024), lLength As Integer
End Function 'Write a INI lLength = GetPrivateProfileString(sSection, sKey, sDefault, strTemp, strTemp.Length, sFilePath)

Return (strTemp.Substring(0, lLength))
End Module End Function 'Read a INI
End Namespace 'File (INI, XML, ...) Public Function INI_WriteValue(ByVal sFilePath As String, ByVal sSection As String, ByVal sKey As String, ByVal sValue As String) As Boolean
End Namespace 'Data = Manage Infos (DBs, Files, ...) Return (Not (WritePrivateProfileString(sSection, sKey, sValue, sFilePath) = 0))
End Function 'Write a INI

End Module
End Namespace 'File (INI, XML, ...)
End Namespace 'Data = Manage Infos (DBs, Files, ...)
End Namespace 'Tools End Namespace 'Tools

2
SB-PictureTagger/My Project/Application.Designer.vb generated Normal file → Executable file
View File

@ -32,7 +32,7 @@ Namespace My
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _ <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm() Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.SB_PictureTagger.Main Me.MainForm = Global.SB_PictureTagger.SB_PictureTagger
End Sub End Sub
End Class End Class
End Namespace End Namespace

2
SB-PictureTagger/My Project/Application.myapp Normal file → Executable file
View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-16"?> <?xml version="1.0" encoding="utf-16"?>
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MySubMain>true</MySubMain> <MySubMain>true</MySubMain>
<MainForm>Main</MainForm> <MainForm>SB_PictureTagger</MainForm>
<SingleInstance>false</SingleInstance> <SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode> <ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles> <EnableVisualStyles>true</EnableVisualStyles>

0
SB-PictureTagger/My Project/AssemblyInfo.vb Normal file → Executable file
View File

0
SB-PictureTagger/My Project/Resources.Designer.vb generated Normal file → Executable file
View File

0
SB-PictureTagger/My Project/Resources.resx Normal file → Executable file
View File

0
SB-PictureTagger/My Project/Settings.Designer.vb generated Normal file → Executable file
View File

0
SB-PictureTagger/My Project/Settings.settings Normal file → Executable file
View File

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

58
SB-PictureTagger/SB-PictureTagger.vbproj Normal file → Executable file
View File

@ -15,6 +15,21 @@
<MyType>WindowsForms</MyType> <MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile> <TargetFrameworkProfile>Client</TargetFrameworkProfile>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
@ -28,7 +43,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget> <PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType> <DebugType>None</DebugType>
<DefineDebug>false</DefineDebug> <DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace> <DefineTrace>true</DefineTrace>
<Optimize>true</Optimize> <Optimize>true</Optimize>
@ -48,7 +63,11 @@
<PropertyGroup> <PropertyGroup>
<OptionInfer>On</OptionInfer> <OptionInfer>On</OptionInfer>
</PropertyGroup> </PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Resorcen\Tree.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Deployment" /> <Reference Include="System.Deployment" />
@ -72,7 +91,15 @@
<Import Include="System.Xml.Linq" /> <Import Include="System.Xml.Linq" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Classen.vb" /> <Compile Include="Class_Mark.vb" />
<Compile Include="Class_MarkButton.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="Class_Place.vb" />
<Compile Include="Class_Rectangle.vb" />
<Compile Include="Class_TaggedIMG.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="F_SB_PictureTagger.vb"> <Compile Include="F_SB_PictureTagger.vb">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -95,9 +122,7 @@
<DependentUpon>Settings.settings</DependentUpon> <DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput> <DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile> </Compile>
<Compile Include="M_SB_PictureTagger.vb" />
<Compile Include="M_Tools.vb" /> <Compile Include="M_Tools.vb" />
<Compile Include="Setings.vb" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="F_SB_PictureTagger.resx"> <EmbeddedResource Include="F_SB_PictureTagger.resx">
@ -121,6 +146,31 @@
<LastGenOutput>Settings.Designer.vb</LastGenOutput> <LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="Resorcen\Tree.ico" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4 Client Profile %28x86 and x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
<ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -1,13 +0,0 @@
Namespace Stammbaum.Settings
Namespace PictureTagger
Module PictureTagger
Public Pub_oLoaded_TaggedIMG As New Stammbaum.Classen.PictureTagger.TaggedIMG
Public Pub_sPath As String 'Pfad des Aktuell Arbeits Verzeichnises
Public Pub_aPfade(0) As String 'Array mit den Photo Pfaden
Public Pub_nPfadeIndex As Long = 0 'IndexNR des aktuell Geladenen Photos aus pub_aPfade
Public Pub_aConfigForm(0) As String 'Array mit FormConfiguration
Public Pub_aSupportedFiles(0) As String 'Speichert die Unterstützten Extentions
Public Pub_nOrdnerTiefe As Integer = 0 'Recursive Ordnertiefe beim Ordnereinlesen
End Module
End Namespace
End Namespace

36
doc/cangeloog.txt Executable file
View File

@ -0,0 +1,36 @@
0.1
Ordner einlesen und Bilder in Array
Ausgeben in Strucktur
Lesen Von Informationen aus INI
Für und Zurück der Bilder


0.2
Versuch von ausbau an Strucktur TaggedIMG Gescheitert
Veralgemeinern Gescheitert
-Funktions Unfähig-

0.3
Erfolgreiches umsetzen der Strucktur TaggedIMG zu Classe
Umstruckturieren der Funcktionen und Rotienen verteilungen in den einzelnen Bereichen
Ausbau der Tools - Library
Ordner Tiefen Funktio Hinzugefügt, auf Drei Unterordner Begrenzt

0.4
Entbuggen von Grafierenden Fehlern
-Speicherrotine
-Laderotiene
-Erkennung von Änderungen
-Bild wird wieder in PictureBox Geladen
-Ordner wird bei Ordner Tiefen Änderung neu Geladen
Veralgemeinerung der Funktionen (Schnelles Umrüsten auf DB, XML, etc. als Tagg-Source möglich)

0.5
Speicher rotiene feinschlif (AutoSave Checkbox funktioniert wieder)
-Halbstadion (Auser Markierungen Funktioniert Alles)-



Geplante Funktionen:
-Markierungen Erstellen/Bearbeiten/Löschen/Laden/Speichern
-Merken der Einstellungen (Portable - Normal Mode)