From 087d7eb31da8b6fe21f5cc298310c92934251dfe Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Mon, 16 Feb 2015 02:34:00 +0200 Subject: [PATCH] v0.1 --- .../Form_SB-PictureTagger.Designer.vb | 297 +++++++++++++----- SB-PictureTagger/Form_SB-PictureTagger.resx | 12 + SB-PictureTagger/Form_SB-PictureTagger.vb | 70 ++++- SB-PictureTagger/Modul_SB-PictureTagger.vb | 195 +++++++++++- SB-PictureTagger/Modul_Tools.vb | 180 +++++++++-- SB-PictureTagger/TaggedIMG.vb | 63 ++-- 6 files changed, 652 insertions(+), 165 deletions(-) diff --git a/SB-PictureTagger/Form_SB-PictureTagger.Designer.vb b/SB-PictureTagger/Form_SB-PictureTagger.Designer.vb index 60c3848..06069c3 100644 --- a/SB-PictureTagger/Form_SB-PictureTagger.Designer.vb +++ b/SB-PictureTagger/Form_SB-PictureTagger.Designer.vb @@ -30,23 +30,35 @@ Partial Class Main Me.Label3 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label() - Me.TextBox2 = New System.Windows.Forms.TextBox() - Me.RichTextBox1 = New System.Windows.Forms.RichTextBox() - Me.TextBox1 = New System.Windows.Forms.TextBox() + 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.cb_marks_visible = New System.Windows.Forms.CheckBox() Me.DataGridView1 = New System.Windows.Forms.DataGridView() - 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.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.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.TextBox3 = New System.Windows.Forms.TextBox() + Me.TextBox4 = New System.Windows.Forms.TextBox() + Me.rtb_Place_Description = New System.Windows.Forms.RichTextBox() + Me.GroupBox4 = New System.Windows.Forms.GroupBox() + Me.cb_marks_visible = New System.Windows.Forms.CheckBox() + Me.cb_AutoSave = New System.Windows.Forms.CheckBox() + Me.Label7 = New System.Windows.Forms.Label() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() Me.GroupBox1.SuspendLayout() Me.GroupBox2.SuspendLayout() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox3.SuspendLayout() + Me.GroupBox4.SuspendLayout() Me.SuspendLayout() ' 'PictureBox1 @@ -61,31 +73,31 @@ Partial Class Main '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(196, 661) + Me.b_next.Location = New System.Drawing.Point(196, 651) Me.b_next.Name = "b_next" Me.b_next.Size = New System.Drawing.Size(178, 51) Me.b_next.TabIndex = 2 - Me.b_next.Text = "Folowing" + Me.b_next.Text = "Nächstes Bild" 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, 661) + 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 = "Last" + 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, 661) + 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 = "EXIT" + Me.b_exit.Text = "Beenden" Me.b_exit.UseVisualStyleBackColor = True ' 'GroupBox1 @@ -93,15 +105,15 @@ Partial Class Main Me.GroupBox1.Controls.Add(Me.Label3) Me.GroupBox1.Controls.Add(Me.Label2) Me.GroupBox1.Controls.Add(Me.Label1) - Me.GroupBox1.Controls.Add(Me.TextBox2) - Me.GroupBox1.Controls.Add(Me.RichTextBox1) - Me.GroupBox1.Controls.Add(Me.TextBox1) + 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, 163) + Me.GroupBox1.Size = New System.Drawing.Size(352, 162) Me.GroupBox1.TabIndex = 6 Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "MainTaggs" + Me.GroupBox1.Text = "Bild" ' 'Label3 ' @@ -117,9 +129,9 @@ Partial Class Main Me.Label2.AutoSize = True Me.Label2.Location = New System.Drawing.Point(8, 45) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(28, 13) + Me.Label2.Size = New System.Drawing.Size(59, 13) Me.Label2.TabIndex = 4 - Me.Label2.Text = "Zeit:" + Me.Label2.Text = "Zeit/-raum:" ' 'Label1 ' @@ -130,88 +142,49 @@ Partial Class Main Me.Label1.TabIndex = 3 Me.Label1.Text = "Titel:" ' - 'TextBox2 + 'tb_Bild_Time ' - Me.TextBox2.Location = New System.Drawing.Point(83, 45) - Me.TextBox2.Name = "TextBox2" - Me.TextBox2.Size = New System.Drawing.Size(263, 20) - Me.TextBox2.TabIndex = 2 + 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 ' - 'RichTextBox1 + 'rtb_Bild_Description ' - Me.RichTextBox1.Location = New System.Drawing.Point(83, 71) - Me.RichTextBox1.Name = "RichTextBox1" - Me.RichTextBox1.Size = New System.Drawing.Size(263, 86) - Me.RichTextBox1.TabIndex = 1 - Me.RichTextBox1.Text = "" + 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 = "Tasks: Info in Textvelder laden,TextvelderReset, Info aus Textveldern Laden und z" & _ + "um Speichern übergeben, Mark-Array Funktion,LoadPhotoDir abfangen einer lehren P" & _ + "fadangabe, Kreat New Class TaggedIMG" ' - 'TextBox1 + 'tb_Bild_Title ' - Me.TextBox1.Location = New System.Drawing.Point(83, 19) - Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(263, 20) - Me.TextBox1.TabIndex = 0 + 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.cb_marks_visible) Me.GroupBox2.Controls.Add(Me.DataGridView1) - Me.GroupBox2.Location = New System.Drawing.Point(742, 185) + Me.GroupBox2.Location = New System.Drawing.Point(742, 317) Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(352, 445) + Me.GroupBox2.Size = New System.Drawing.Size(352, 246) Me.GroupBox2.TabIndex = 7 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "MarkTaggs" - ' - 'cb_marks_visible - ' - Me.cb_marks_visible.AutoSize = True - Me.cb_marks_visible.Location = New System.Drawing.Point(11, 28) - Me.cb_marks_visible.Name = "cb_marks_visible" - Me.cb_marks_visible.Size = New System.Drawing.Size(121, 17) - Me.cb_marks_visible.TabIndex = 2 - Me.cb_marks_visible.Text = "Zeige Markierungen" - Me.cb_marks_visible.UseVisualStyleBackColor = True + 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, 51) + Me.DataGridView1.Location = New System.Drawing.Point(11, 19) Me.DataGridView1.Name = "DataGridView1" - Me.DataGridView1.Size = New System.Drawing.Size(335, 388) + Me.DataGridView1.Size = New System.Drawing.Size(329, 221) Me.DataGridView1.TabIndex = 1 ' - '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, 661) - 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 = "Load Folder" - Me.b_loaddir.UseVisualStyleBackColor = True - ' - 'b_save - ' - Me.b_save.Font = New System.Drawing.Font("Comic Sans MS", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.b_save.Location = New System.Drawing.Point(380, 661) - 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 = "Save Chanches" - Me.b_save.UseVisualStyleBackColor = True - ' - '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.Location = New System.Drawing.Point(564, 661) - Me.b_reloaddir.Name = "b_reloaddir" - Me.b_reloaddir.Size = New System.Drawing.Size(165, 51) - Me.b_reloaddir.TabIndex = 10 - Me.b_reloaddir.Text = "Reload Folder" - Me.b_reloaddir.UseVisualStyleBackColor = True - ' 'Column1 ' Me.Column1.HeaderText = "Nr." @@ -234,11 +207,147 @@ Partial Class Main 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 + ' + 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.Name = "b_reloaddir" + Me.b_reloaddir.Size = New System.Drawing.Size(165, 51) + Me.b_reloaddir.TabIndex = 10 + Me.b_reloaddir.Text = "Neu Laden" + Me.b_reloaddir.UseVisualStyleBackColor = True + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.rtb_Place_Description) + Me.GroupBox3.Controls.Add(Me.Label4) + Me.GroupBox3.Controls.Add(Me.Label5) + Me.GroupBox3.Controls.Add(Me.Label6) + Me.GroupBox3.Controls.Add(Me.TextBox3) + Me.GroupBox3.Controls.Add(Me.TextBox4) + Me.GroupBox3.Location = New System.Drawing.Point(742, 184) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(352, 127) + Me.GroupBox3.TabIndex = 11 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Aufnahme Ort" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(8, 74) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(69, 13) + Me.Label4.TabIndex = 5 + Me.Label4.Text = "Kommentare:" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(8, 45) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(67, 13) + Me.Label5.TabIndex = 4 + Me.Label5.Text = "Koordinaten:" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Location = New System.Drawing.Point(6, 22) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(48, 13) + Me.Label6.TabIndex = 3 + Me.Label6.Text = "Adresse:" + ' + 'TextBox3 + ' + Me.TextBox3.Location = New System.Drawing.Point(83, 45) + Me.TextBox3.Name = "TextBox3" + Me.TextBox3.Size = New System.Drawing.Size(263, 20) + Me.TextBox3.TabIndex = 2 + ' + 'TextBox4 + ' + Me.TextBox4.Location = New System.Drawing.Point(83, 19) + Me.TextBox4.Name = "TextBox4" + Me.TextBox4.Size = New System.Drawing.Size(263, 20) + Me.TextBox4.TabIndex = 0 + ' + 'rtb_Place_Description + ' + Me.rtb_Place_Description.Location = New System.Drawing.Point(83, 69) + 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 = "" + ' + 'GroupBox4 + ' + Me.GroupBox4.Controls.Add(Me.cb_AutoSave) + Me.GroupBox4.Controls.Add(Me.cb_marks_visible) + Me.GroupBox4.Location = New System.Drawing.Point(742, 569) + Me.GroupBox4.Name = "GroupBox4" + Me.GroupBox4.Size = New System.Drawing.Size(346, 61) + Me.GroupBox4.TabIndex = 12 + Me.GroupBox4.TabStop = False + Me.GroupBox4.Text = "Optionen" + ' + 'cb_marks_visible + ' + Me.cb_marks_visible.AutoSize = True + 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 = 3 + Me.cb_marks_visible.Text = "Zeige Markierungen" + Me.cb_marks_visible.UseVisualStyleBackColor = True + ' + 'cb_AutoSave + ' + Me.cb_AutoSave.AutoSize = True + Me.cb_AutoSave.Location = New System.Drawing.Point(11, 38) + Me.cb_AutoSave.Name = "cb_AutoSave" + Me.cb_AutoSave.Size = New System.Drawing.Size(135, 17) + Me.cb_AutoSave.TabIndex = 4 + Me.cb_AutoSave.Text = "Automatisch Speichern" + Me.cb_AutoSave.UseVisualStyleBackColor = True + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(9, 633) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(0, 13) + Me.Label7.TabIndex = 13 + ' 'Main ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1106, 723) + Me.Controls.Add(Me.Label7) + Me.Controls.Add(Me.GroupBox4) + Me.Controls.Add(Me.GroupBox3) Me.Controls.Add(Me.b_reloaddir) Me.Controls.Add(Me.b_save) Me.Controls.Add(Me.b_loaddir) @@ -254,9 +363,13 @@ Partial Class Main Me.GroupBox1.ResumeLayout(False) Me.GroupBox1.PerformLayout() Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() + Me.GroupBox4.ResumeLayout(False) + Me.GroupBox4.PerformLayout() Me.ResumeLayout(False) + Me.PerformLayout() End Sub Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox @@ -267,18 +380,28 @@ Partial Class Main 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 TextBox2 As System.Windows.Forms.TextBox - Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox - Friend WithEvents TextBox1 As System.Windows.Forms.TextBox + 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 cb_marks_visible As System.Windows.Forms.CheckBox Friend WithEvents b_save As System.Windows.Forms.Button Friend WithEvents b_reloaddir As System.Windows.Forms.Button Friend WithEvents Column1 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Position As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Radius As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents TextBox3 As System.Windows.Forms.TextBox + Friend WithEvents TextBox4 As System.Windows.Forms.TextBox + Friend WithEvents rtb_Place_Description As System.Windows.Forms.RichTextBox + Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox + Friend WithEvents cb_AutoSave As System.Windows.Forms.CheckBox + Friend WithEvents cb_marks_visible As System.Windows.Forms.CheckBox + Friend WithEvents Label7 As System.Windows.Forms.Label End Class diff --git a/SB-PictureTagger/Form_SB-PictureTagger.resx b/SB-PictureTagger/Form_SB-PictureTagger.resx index 78bf064..fe3f17d 100644 --- a/SB-PictureTagger/Form_SB-PictureTagger.resx +++ b/SB-PictureTagger/Form_SB-PictureTagger.resx @@ -129,4 +129,16 @@ True + + True + + + True + + + True + + + True + \ No newline at end of file diff --git a/SB-PictureTagger/Form_SB-PictureTagger.vb b/SB-PictureTagger/Form_SB-PictureTagger.vb index 8cf4185..be57da9 100644 --- a/SB-PictureTagger/Form_SB-PictureTagger.vb +++ b/SB-PictureTagger/Form_SB-PictureTagger.vb @@ -3,18 +3,26 @@ Imports System.IO Public Class Main 'Deklariere Public Variables - Public pub_aPhotos(0) As String 'Array mit den Photo Pfaden - Public pub_sPath As String 'String mit dem Arbeits Verzeichnis - Public pub_nPhotoIndex As Long = 0 'IndexNR des pub_aPhotos Arrays - Public pub_bChangeTagg As Boolean = False + Public pub_aPhotos(0) As String 'Array mit den Photo Pfaden + Public pub_sPath As String 'String mit dem Arbeits Verzeichnis + Public pub_nPhotoIndex As Long = 0 'IndexNR des pub_aPhotos Arrays + Public pub_bChangeTagg As Boolean = False 'Wenn ein Tagg geänderd wird:= True bis SaveTagg() + Public pub_aConfigForm(0) As Object 'Array mit FormConfiguration '################################################################################################################### '############### Main ############################################################################################## '################################################################################################################### Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + 'Initial + LoadConfigForm() - End Sub + End Sub 'Main_Load + + Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing + SaveTagg() + SaveConfigForm() + End Sub 'Form1_Closing '################################################################################################################### @@ -24,31 +32,58 @@ Public Class Main '################################################################################################################### '############### Form1_Sub-Tasks ################################################################################### '################################################################################################################### + Private Sub LoadConfigForm() + 'pub_aConfigForm() + ' <--- IN Work + 'pub_sPath = INI:last_Path + End Sub 'LoadConfigForm + + Private Sub SaveConfigForm() + 'pub_aConfigForm() + ' <--- IN Work + 'INI:last_Path = pub_sPath + 'INI:Auto_Save = + End Sub 'SaveConfigForm Private Sub Reload() - SaveTagg() + If pub_bChangeTagg Then + SaveTaggByEvent() + End If ReDim pub_aPhotos(0) pub_aPhotos(0) = "" pub_aPhotos = Modul_SB_PictureTagger.DirReadPhotos(pub_sPath) pub_nPhotoIndex = 0 LoadTaggedIMG() End Sub 'Reload - Private Sub SaveTagg() - If pub_bChangeTagg = True Then - 'Call The Save Methode from Modul_SB-PictureTagger - pub_bChangeTagg = False + 'Call The Save Methode from Modul_SB-PictureTagger + + + + pub_bChangeTagg = False + End Sub 'SaveTagg + + Private Sub SaveTaggByEvent() + If cb_AutoSave.Checked Then + SaveTagg() + ElseIf MessageBox.Show("Do you want to save changes?", "SB-PictureTagger", MessageBoxButtons.YesNo) = DialogResult.Yes Then + SaveTagg() End If - End Sub + End Sub 'SaveTaggByEvent Private Sub LoadTaggedIMG() Dim ID As String = pub_aPhotos(pub_nPhotoIndex) Dim TaggedIMG_Now As New TaggedIMG If ID <> "" Then 'Später wird die ID der DB übergeben - SaveTagg() + If pub_bChangeTagg Then + SaveTaggByEvent() + End If TaggedIMG_Now = Modul_SB_PictureTagger.LoadPicture(ID) + Label7.Text = TaggedIMG_Now.Path + 'Befülle PictureBox PictureBox1.Image = TaggedIMG_Now.Image 'Befülle TextBox + 'Erstelle Marks End If End Sub 'LoadTaggedIMG @@ -60,13 +95,12 @@ Public Class Main Private Sub b_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_exit.Click ' Programm Beenden - SaveTagg() Me.Close() End Sub 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 - Modul_Tools.FolderBrowserDialog(pub_sPath) + pub_sPath = Modul_Tools.FolderBrowserDialog() Reload() End Sub @@ -75,11 +109,13 @@ Public Class Main End Sub Private Sub b_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_save.Click - SaveTagg() + If pub_bChangeTagg = True Then + SaveTagg() + End If End Sub Private Sub b_next_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_next.Click - If pub_nPhotoIndex < (UBound(pub_aPhotos) - 1) Then + If pub_nPhotoIndex <= (UBound(pub_aPhotos) - 1) Then pub_nPhotoIndex += 1 LoadTaggedIMG() End If @@ -97,7 +133,7 @@ Public Class Main '############### CheckBox Events: CheckStateChanged ################################################################ '################################################################################################################### - Private Sub cb_marks_visible_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cb_marks_visible.CheckStateChanged + Private Sub cb_marks_visible_CheckStateChanged(ByVal sender As Object, ByVal e As System.EventArgs) 'Wenn cb_marks_visible=true then ZeichneMarks() ELSE VerstekeMarks() End Sub diff --git a/SB-PictureTagger/Modul_SB-PictureTagger.vb b/SB-PictureTagger/Modul_SB-PictureTagger.vb index fae9369..5e2c311 100644 --- a/SB-PictureTagger/Modul_SB-PictureTagger.vb +++ b/SB-PictureTagger/Modul_SB-PictureTagger.vb @@ -3,17 +3,20 @@ Imports System.IO Module Modul_SB_PictureTagger Structure Mark - Dim Position As String - Dim ID As String + Dim PositionX As Long + Dim PositionY As Long + Dim ID As Long + Dim Radius As Long Dim Description As String End Structure 'Mark Structure Place - Dim Adresse - Dim Description - Dim GPS + Dim Title As String + Dim Adresse As String + Dim Description As String + Dim GPS As String End Structure Structure TaggedIMG - Dim ID As Long + Dim ID As String Dim Title As String Dim Description As String Dim Time As String @@ -21,14 +24,36 @@ Module Modul_SB_PictureTagger Dim Image As Image Dim Path As String Dim Place As Place + 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 Array.IndexOf(Me.Mark, ) Then Index = 1 + UBound(Me.Mark) + + 'ReDim Me.Mark(Index) + 'Me.Mark(Index).ID = ID + 'Me.Mark(Index).PositionX = PositionX + 'Me.Mark(Index).PositionY = PositionY + 'Me.Mark(Index).Radius = Radius + 'Me.Mark(Index).Description = Description + + End Sub End Structure 'TaggedIMG + + 'Methoden Index: '1.LoadPicture ' Parameter: "-SupportedFormats-" -> Array of Supported Formats; ' Parameter: File Pfad -> Picture ##in Work!## '2.DirReadPhotos ' Parameter: Ordner Pfad; Return: Array von Pfaden der Bilddateien des Ordners + '3.Load_Taggs + ' Parameter: TaggedIMG-Objekt, DB_Locate -> Indirekte änderung des TaggedIMG-Objekts + '4.Save_Taggs + ' Parameter: TaggedIMG-Objekt, DB_Locate + + + + @@ -57,15 +82,27 @@ Module Modul_SB_PictureTagger 'BildLadeFunktion 'Main Work############################################### Dim iPicture As New TaggedIMG + Dim iPicture_Verz As String 'Testen ob Vormat unterstüzt! - iPicture.Path = sPath - iPicture.Image = Image.FromFile(sPath) + If (Array.IndexOf(aPhotoFormats, IO.Path.GetExtension(sPath))) >= 0 Then + iPicture_Verz = IO.Path.GetDirectoryName(sPath) + iPicture.Path = sPath + iPicture.Image = Image.FromFile(sPath) + iPicture.ID = IO.Path.GetFileName(sPath) - 'Wird hier später mit Tagg Bestückt! + 'Wen Forhanden Exif infos lesen und eintragen (werden von DB überschrieben, wenn dor ein Wert vorhanden ist) + + 'Wird hier mit Tagg Bestückt! + ' iPicture_Verz wird zum localisieren der INI benötigt + Load_Taggs(iPicture, iPicture_Verz) - LoadPicture = iPicture + LoadPicture = iPicture + Else + MsgBox("Unsupported Format!") + LoadPicture = "" + End If 'Main Work Ende########################################## Else MsgBox("Can't load Picture") @@ -73,7 +110,6 @@ Module Modul_SB_PictureTagger End If End Function 'LoadPicture - '################################################################################################################### '############### 2.DirReadPhotos ################################################################################### '################################################################################################################### @@ -142,6 +178,143 @@ Module Modul_SB_PictureTagger End Function 'DirReadPhotos + '################################################################################################################### + '############### 3.Load_Taggs ################################################################################### + '################################################################################################################### + + + 'Taggs auslesen (jezt noch aus INI - später aus DB) + Private Sub Load_Taggs(ByRef iPicture As TaggedIMG, ByVal DB_Locate As String) + 'Grund Vars Deklarieren + Dim ID As String = iPicture.ID + Dim sDB As String = "Tagg.ini" + Dim i As Long + + + sDB = Path.Combine(DB_Locate, sDB) + If File.Exists(sDB) And ID <> "" Then + 'Dekalriere + 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 String + + 'Titel + iPicture.Title = Modul_Tools.Config_INI_ReadValue(sDB, ID, "Title") + 'Kurzbeschreibung + '############################################################## + 'ReFormate Description Text from "Description" + iPicture.Description = Modul_Tools.Base64_To_Ascii(Modul_Tools.Config_INI_ReadValue(sDB, ID, "Description")) + '############################################################## + + 'Zeitangabe + iPicture.Time = Modul_Tools.Config_INI_ReadValue(sDB, ID, "Time") + 'Ortsangabe-Title + iPicture.Place.Title = Modul_Tools.Config_INI_ReadValue(sDB, ID, "Place_Title") + 'Ortsangabe-Adresse + iPicture.Place.Adresse = Modul_Tools.Config_INI_ReadValue(sDB, ID, "Place_Adresse") + 'Ortsangabe-Kurzbeschreibung + '############################################################## + 'ReFormate Description Text from "Place.Description" + iPicture.Place.Description = Modul_Tools.Base64_To_Ascii(Modul_Tools.Config_INI_ReadValue(sDB, ID, "Place_Description")) + '############################################################## + + 'Ortsangabe-GPS Koordinaten + iPicture.Place.GPS = Modul_Tools.Config_INI_ReadValue(sDB, ID, "Place_GPS") + + + 'Load Marks + 'sMark_Index = Modul_Tools.Config_INI_ReadValue(sDB, ID, "Title") + i = 0 + Do While i <= 200 + Mark_Index = ("Mark" & Convert.ToString(i) & "_ID") + Mark_ID = Modul_Tools.Config_INI_ReadValue(sDB, ID, Mark_Index) + If Mark_ID <> "" Then + i += 1 + + Mark_PositionX = Convert.ToDouble(Modul_Tools.Config_INI_ReadValue(sDB, ID, "Mark" & Convert.ToString(i) & "_PositionX", "0")) + Mark_PositionY = Convert.ToInt32(Modul_Tools.Config_INI_ReadValue(sDB, ID, "Mark" & Convert.ToString(i) & "_PositionY", "0")) + Mark_Radius = Convert.ToInt32(Modul_Tools.Config_INI_ReadValue(sDB, ID, "Mark" & Convert.ToString(i) & "_Radius", "0")) + '############################################################## + 'ReFormate Description Text from "Mark_Description" + Mark_Description = Modul_Tools.Base64_To_Ascii(Modul_Tools.Config_INI_ReadValue(sDB, ID, "Mark" & Convert.ToString(i) & "_Description", "0")) + '############################################################## + + 'Erstellen eines Neuen Marks + iPicture.Create_NewMark(Mark_ID, Mark_PositionX, Mark_PositionY, Mark_Radius, Mark_Description) + Else + 'Verlasse Schleife + Exit Do + End If + Loop + i = 0 + End If + End Sub + + '################################################################################################################### + '############### 4.Save_Taggs ################################################################################### + '################################################################################################################### + Private Sub Save_Taggs(ByVal iPicture As TaggedIMG, ByVal DB_Locate As String) + 'Grund Vars Deklarieren + Dim ID As String = iPicture.ID + Dim sDB As String = "Tagg.ini" + Dim i As Long + + sDB = Path.Combine(DB_Locate, sDB) + If (ID <> "") And (Not File.Exists(sDB)) Then + File.Create(sDB) + + 'Titel + If iPicture.Title <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Title", iPicture.Title) + + 'Kurzbeschreibung + '############################################################## + 'Formate Description Text from "Description" + If iPicture.Description <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Description", Modul_Tools.Ascii_To_Base64(iPicture.Description)) + '############################################################## + + 'Zeitangabe + If iPicture.Time <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Time", iPicture.Time) + 'Ortsangabe-Title + If iPicture.Place.Title <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Place_Title", iPicture.Place.Title) + 'Ortsangabe-Adresse + If iPicture.Place.Adresse <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Place_Adresse", iPicture.Place.Adresse) + + 'Ortsangabe-Kurzbeschreibung + '############################################################## + 'Formate Description Text from "iPicture.Place.Description" + If iPicture.Place.Description <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Place_Description", Modul_Tools.Ascii_To_Base64(iPicture.Place.Description)) + '############################################################## + + 'Ortsangabe-GPS Koordinaten + If iPicture.Place.GPS <> "" Then Modul_Tools.Config_INI_WriteValue(sDB, ID, "Place_GPS", iPicture.Place.GPS) + + + 'Save Marks + i = 0 + If iPicture.Mark(0).ID <> "" Then + For i = 0 To UBound(iPicture.Mark) + Modul_Tools.Config_INI_WriteValue(sDB, ID, "Mark" & i & "_ID", Convert.ToString(i)) + Modul_Tools.Config_INI_WriteValue(sDB, ID, "Mark" & i & "_PositionX", Convert.ToString(iPicture.Mark(i).PositionX)) + Modul_Tools.Config_INI_WriteValue(sDB, ID, "Mark" & i & "_PositionY", Convert.ToString(iPicture.Mark(i).PositionY)) + Modul_Tools.Config_INI_WriteValue(sDB, ID, "Mark" & i & "_Radius", Convert.ToString(iPicture.Mark(i).Radius)) + + '############################################################## + 'Formate Description Text from "Mark Deskription" + Modul_Tools.Config_INI_WriteValue(sDB, ID, "Mark" & i & "_Description", Modul_Tools.Ascii_To_Base64(iPicture.Mark(i).Description)) + '############################################################## + + Next i + End If + i = 0 + End If + + + End Sub + + diff --git a/SB-PictureTagger/Modul_Tools.vb b/SB-PictureTagger/Modul_Tools.vb index 5e9e409..cef29d1 100644 --- a/SB-PictureTagger/Modul_Tools.vb +++ b/SB-PictureTagger/Modul_Tools.vb @@ -1,13 +1,37 @@ -Module Modul_Tools +Option Explicit On +Imports System.IO + +Module Modul_Tools 'Methonden_Index: - '1.Datei- und Ordnerdialoge (Mindesanforderung: VB.Net 2005; Framework: 2.0) - ' 1.1 FolderBrowserDialog - ' 1.2 OpenFileDialog - ' 1.3 SaveFileDialog + '1.Datei- und Ordnerdialoge + ' 1.1 FolderBrowserDialog <-- in Work (Main works) + ' 1.2 OpenFileDialog <-- in Work (Don't work) + ' 1.3 SaveFileDialog <-- in Work + '2.Config Load/Save + ' 2.1 From INI + ' 2.1.1 Config_INI_ReadValue + ' 2.1.2 Config_INI_WriteValue + ' ExampleConf = Config_INI_ReadValue(FilePath, Section, Key, [DefaultWert]) + ' [Error =] Config_INI_WriteValue(FilePath, Section, Key, Wert) + ' 2.2 From My CMD seting Files + '3.PortableMode + ' 3.1 PortableModeTrue + ' Übergabe: ConfigFile Return: (PortableMode=True/False) + ' 3.2 PortableMode + ' Übergabe: ConfigFile [WorkDir] [AppName] Return: (PortableMode=True/False) + ' ConfigFile Nahme und Extendion - Wird Indirekt Geändert zu KonfigPfad + ' WorkDir Pfad des Arbeitsverzeichnises - Wird Indirekt Geändert + ' AppName Erstellt einen Neuern Ordner mit Diesen Nahme, wenn Nicht Portabler Mode + '4.GPS_Tools + ' 4.1 GPS_to_GMaps + + '5.Ascii<->Base64 + ' 5.1 Ascii_To_Base64 + ' 5.2 Base64_To_Ascii @@ -23,33 +47,29 @@ '############### 1.1 FolderBrowserDialog ########################################################################### '################################################################################################################### - Public Sub FolderBrowserDialog(ByRef sPath As String) + Public Function FolderBrowserDialog(Optional ByVal sStartPath As String = "C:\", Optional ByVal ShowNewFolderButton As Boolean = True, Optional ByRef CheckError As Boolean = False) As String 'Verändert die übergebene variable, 'wenn der benutzer durch "OK" den neuen Pfad bestätigt - - Using fbd As New FolderBrowserDialog - With fbd + FolderBrowserDialog = "" + Using FolderBrowserD As New FolderBrowserDialog + With FolderBrowserD ' Ordnervorschlag - .SelectedPath = "c:\" - ' RootFolder verwendet man nur zum Eingrenzen auf eine _ - ' bestimmte Ordnerebene - ' z.B.: .RootFolder = Environment.SpecialFolder.MyPictures + .SelectedPath = sStartPath .Description = "Bitte einen Ordner auswählen." - ' Button "Neuen Ordner erstellen" anzeigen - .ShowNewFolderButton = True - ' Zeile ruft den Dialog auf, weitere Ausführung nur bei - ' Resultat OK: + '#Button "Neuen Ordner erstellen" anzeigen + .ShowNewFolderButton = ShowNewFolderButton + '#ruft Dialog auf, weitere Ausführung nur bei Resultat "OK" If .ShowDialog = Windows.Forms.DialogResult.OK Then - sPath = .SelectedPath + FolderBrowserDialog = .SelectedPath Else - 'Nothing + CheckError = True '#Ausführung bei Abruch End If - End With + End With 'FolderBrowserD End Using - End Sub 'FolderBrowserDialog + End Function 'FolderBrowserDialog '################################################################################################################### '############### 1.2 OpenFileDialog ################################################################################ @@ -174,10 +194,122 @@ 'End Function 'FilterDescription '################################################################################################################### - '############### 1.Datei- und Ordnerdialoge ################################# ENDE ######################### - '############### http://www.vb-fun.de/dotnet/tipps/tip0212.shtml ################################################### + '############### 2.Config Load/Save ################################################################################ + '############### Methonden für Laden von Variablen aus DB;INI,... ################################################## + '################################################################################################################### + ' 2.1 From INI + ' 2.1.1 Config_INI_ReadValue + ' 2.1.2 Config_INI_WriteValue + ' 2.2 From My CMD seting Files + + '################################################################################################################### + '############### 2.1 Config_From_INI ############################################################################### + '################################################################################################################### + 'FamExample = Config_INI_ReadValue(FilePath, Section, Key, [""]) + 'Config_INI_WriteValue(FilePath, Section, Key, Wert) + + 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 + 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 + + Public Function Config_INI_ReadValue(ByVal sFilePath As String, ByVal sSection As String, ByVal sKey As String, Optional ByVal sDefault As String = "") As String + Dim strTemp As String = Space(1024), lLength As Integer + lLength = GetPrivateProfileString(sSection, sKey, sDefault, strTemp, strTemp.Length, sFilePath) + Return (strTemp.Substring(0, lLength)) + End Function + Public Function Config_INI_WriteValue(ByVal sFilePath As String, ByVal sSection As String, ByVal sKey As String, ByVal sValue As String) As Boolean + Return (Not (WritePrivateProfileString(sSection, sKey, sValue, sFilePath) = 0)) + End Function + + '################################################################################################################### + '############### 2.2 Config_From_My-CMD-File ####################################################################### + '################################################################################################################### + 'Syntax der Datei: + 'Variable1 = Wertxy + 'Variable2 = Zahtl2 + '... + 'Alles in String (Mussa auf zahl Überprüft werden und dan DeDim as Integer ...) + + + '################################################################################################################### + '############### 3.PortableMode #################################################################################### + '############### Veststellen ob Portable und deren Eigenarten ###################################################### + '################################################################################################################### + ' 3.1 3.PortableModeTrue + 'Festlegung ob Portable oder nicht + Public Function PortableModeTrue(ByVal ConfigFileName As String) As Boolean + If File.Exists(".\" & ConfigFileName) Then + PortableModeTrue = True + Else + PortableModeTrue = False + End If + + End Function 'PortableModeTrue + + 'Übergabe: ConfigFile [WorkDir] [AppName] Return: (PortableMode=True/False) + 'ConfigFile Nahme und Extendion - Wird Indirekt Geändert zu KonfigPfad + 'WorkDir Pfad des Arbeitsverzeichnises - Wird Indirekt Geändert + 'AppName Erstellt einen Neuern Ordner mit Diesen Nahme, wenn Nicht Portabler Mode + + Public Function PortableMode(ByRef ConfigFile As String, Optional ByRef WorkDir As String = "-default-", Optional ByVal AppName As String = "-default-") As Boolean + If AppName = ("-default-" Or "") Then + AppName = Application.ProductName + End If + If Not Directory.Exists(WorkDir) Then WorkDir = "-default-" + If WorkDir = ("-default-" Or "") Then + WorkDir = Application.StartupPath + End If + + If File.Exists(Path.Combine(WorkDir, ConfigFile)) Then + PortableMode = True + ConfigFile = Path.Combine(WorkDir, ConfigFile) + Else + PortableMode = False + WorkDir = Environment.GetEnvironmentVariable("APPDATA") & "\" & AppName + If Not Directory.Exists(WorkDir) Then Directory.CreateDirectory(WorkDir) + ConfigFile = Path.Combine(WorkDir, ConfigFile) + If Not File.Exists(ConfigFile) Then File.Create(ConfigFile) + End If + + End Function 'PortableMode + + '################################################################################################################### + '############### 4.GPS_Tools ####################################################################################### '################################################################################################################### + Public Sub GPS_to_GMaps(ByVal GPS As String) + 'Soll anhand der GPS Koordinaten GoogleMaps öfnen + 'URL ansteuerung: https://developers.google.com/maps/documentation/staticmaps/ + ' String = "52.520817 13.40945" + ' + 'Umrechnung von Geo-Koordinaten: http://rechneronline.de/geo-koordinaten/ + ' ___________________________________________________________________________________________________ + '| 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 | + ' --------------------------------------------------------------------------------------------------- + ' URL= "http://maps.google.com/maps?q=" & String + 'In Projekt SB-PictureTagger: Set a LincLable ;) + End Sub + '################################################################################################################### + '############### 5.Ascii<->Base64 ################################################################################## + '################################################################################################################### -End Module + 'Ascii to Base64 + Public Function Ascii_To_Base64(ByVal AsciiString As String) As String + Dim base64encoded As String = vbNull + Dim raw As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(AsciiString) + base64encoded = System.Convert.ToBase64String(raw) + Ascii_To_Base64 = base64encoded + End Function + 'Base64 to Ascii + Public Function Base64_To_Ascii(ByVal Base64String As String) As String + Try + Dim raw As Byte() = System.Convert.FromBase64String(Base64String) + Base64_To_Ascii = System.Text.ASCIIEncoding.ASCII.GetString(raw) + Catch ex As Exception + MsgBox(ex.Message) + Base64_To_Ascii = "" + End Try + End Function + +End Module 'Modul_Tools diff --git a/SB-PictureTagger/TaggedIMG.vb b/SB-PictureTagger/TaggedIMG.vb index 999b5bf..f957437 100644 --- a/SB-PictureTagger/TaggedIMG.vb +++ b/SB-PictureTagger/TaggedIMG.vb @@ -1,32 +1,43 @@ -'Public Class TaggedIMG2 +Public Class TaggedIMG2 -' 'Public Class Mark -' ' Dim Position As String -' ' Dim ID As String -' ' Dim Description As String -' 'End Class 'Mark -' Public Class Place -' Dim Adresse -' Public Description -' Public GPS -' End Class + 'Soll die "Struktur" einmal ersetzen und zum Formweit ereichbares Objecte erstellen dienen -' Public Class Mark( -' Public Mark_PositionX() As Long -' Public Mark_PositionY() As Long -' Public Mark_Radius() As Long -' Public Mark_Description() As String -' End Class + 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 + Public Class Place + Dim Adresse + Dim Description + Dim GPS + End Class -' Public ID As Long -' Public Title As String -' Public Description As String -' Public Time As String -' Public Image As Image -' Public Path As String + Public ID As String + Public Title As String + Public Description As String + Public Time As String + Public Markierung() As Mark + Public Image As Image + Public Path As String + Public Ort As Place + 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 - - -'End Class +End Class