commit 915f03e447f82f9e8b2565396a0c21d7d62258d2 Author: Eugen Höglinger Date: Thu Feb 27 14:22:13 2020 +0100 Projekt neu angelegt. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5a5f80a --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ + +#Ignore thumbnails created by Windows +Thumbs.db +#Ignore files built by Visual Studio +*.obj +*.exe +*.pdb +*.user +*.aps +*.pch +*.vspscc +*_i.c +*_p.c +*.ncb +*.suo +*.tlb +*.tlh +*.bak +*.cache +*.ilk +*.log +[Bb]in +[Dd]ebug*/ +*.lib +*.sbr +obj/ +[Rr]elease*/ +_ReSharper*/ +[Tt]est[Rr]esult* +.vs/ +#Nuget packages folder +packages/ diff --git a/AboutBox.sln b/AboutBox.sln new file mode 100644 index 0000000..4feb763 --- /dev/null +++ b/AboutBox.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.572 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AboutBox", "AboutBox\AboutBox.csproj", "{32F8CF98-005D-4F81-8381-CC2B8FC7A4D8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_AboutBox", "Test_AboutBox\Test_AboutBox.csproj", "{FC5324DA-3FA6-41F7-9F11-4060E8057B55}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {32F8CF98-005D-4F81-8381-CC2B8FC7A4D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {32F8CF98-005D-4F81-8381-CC2B8FC7A4D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {32F8CF98-005D-4F81-8381-CC2B8FC7A4D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {32F8CF98-005D-4F81-8381-CC2B8FC7A4D8}.Release|Any CPU.Build.0 = Release|Any CPU + {FC5324DA-3FA6-41F7-9F11-4060E8057B55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC5324DA-3FA6-41F7-9F11-4060E8057B55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC5324DA-3FA6-41F7-9F11-4060E8057B55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC5324DA-3FA6-41F7-9F11-4060E8057B55}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {15165E4A-C2AA-46F2-94D4-379F9DC52145} + EndGlobalSection +EndGlobal diff --git a/AboutBox/AboutBox.Designer.cs b/AboutBox/AboutBox.Designer.cs new file mode 100644 index 0000000..98c96b5 --- /dev/null +++ b/AboutBox/AboutBox.Designer.cs @@ -0,0 +1,125 @@ +namespace Eugen.ESystem.Windows.Forms +{ + partial class AboutBox + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutBox)); + this.pictureBox = new System.Windows.Forms.PictureBox(); + this.labelProgramName = new System.Windows.Forms.Label(); + this.labelVersion = new System.Windows.Forms.Label(); + this.labelCopyright = new System.Windows.Forms.Label(); + this.labelDisklaimer = new System.Windows.Forms.Label(); + this.textBox = new System.Windows.Forms.TextBox(); + this.buttonExport = new System.Windows.Forms.Button(); + this.buttonClose = new System.Windows.Forms.Button(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox + // + resources.ApplyResources(this.pictureBox, "pictureBox"); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.TabStop = false; + // + // labelProgramName + // + resources.ApplyResources(this.labelProgramName, "labelProgramName"); + this.labelProgramName.Name = "labelProgramName"; + // + // labelVersion + // + resources.ApplyResources(this.labelVersion, "labelVersion"); + this.labelVersion.Name = "labelVersion"; + // + // labelCopyright + // + resources.ApplyResources(this.labelCopyright, "labelCopyright"); + this.labelCopyright.Name = "labelCopyright"; + // + // labelDisklaimer + // + resources.ApplyResources(this.labelDisklaimer, "labelDisklaimer"); + this.labelDisklaimer.Name = "labelDisklaimer"; + // + // textBox + // + resources.ApplyResources(this.textBox, "textBox"); + this.textBox.Name = "textBox"; + this.textBox.ReadOnly = true; + // + // buttonExport + // + resources.ApplyResources(this.buttonExport, "buttonExport"); + this.buttonExport.Name = "buttonExport"; + this.buttonExport.UseVisualStyleBackColor = true; + this.buttonExport.Click += new System.EventHandler(this.buttonExport_Click); + // + // buttonClose + // + resources.ApplyResources(this.buttonClose, "buttonClose"); + this.buttonClose.Name = "buttonClose"; + this.buttonClose.UseVisualStyleBackColor = true; + this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click); + // + // saveFileDialog + // + this.saveFileDialog.FileOk += new System.ComponentModel.CancelEventHandler(this.saveFileDialog_FileOk); + // + // AboutBox + // + resources.ApplyResources(this, "$this"); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.buttonClose); + this.Controls.Add(this.buttonExport); + this.Controls.Add(this.textBox); + this.Controls.Add(this.labelDisklaimer); + this.Controls.Add(this.labelCopyright); + this.Controls.Add(this.labelVersion); + this.Controls.Add(this.labelProgramName); + this.Controls.Add(this.pictureBox); + this.Name = "AboutBox"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label labelProgramName; + private System.Windows.Forms.Label labelVersion; + private System.Windows.Forms.Label labelCopyright; + private System.Windows.Forms.Label labelDisklaimer; + private System.Windows.Forms.TextBox textBox; + private System.Windows.Forms.Button buttonExport; + private System.Windows.Forms.Button buttonClose; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + } +} \ No newline at end of file diff --git a/AboutBox/AboutBox.cs b/AboutBox/AboutBox.cs new file mode 100644 index 0000000..7fff3f4 --- /dev/null +++ b/AboutBox/AboutBox.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Resources; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Eugen.ESystem.Windows.Forms +{ + public partial class AboutBox : Form + { + #region Version und Copyright + // Version und Copyright + string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + string copyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + //Assembly Datum und Zeit + static DateTime value = AssemblyDateTime(); + string date = value.ToShortDateString(); + string time = value.ToLongTimeString(); + private static DateTime AssemblyDateTime() + { + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); + //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) + return buildDateTime; + } + #endregion + + #region DLL-Info + /// + /// Contains the name of the dll file. + /// + public static string DllName { private set; get; } + + /// + /// Contains the version of the dll file. + /// + public static string DllVersion { private set; get; } + + /// + /// Contains the copyright notice. + /// + public static string Copyright { private set; get; } + + /// + /// Contains the name-, version- and copyright-information of the dll file. + /// + public static string[] DllInfo { private set; get; } + + private void SetDllInfo() + { + //Name, Version und Copyright setzen + DllName = dllName; + DllVersion = dllVersion; + Copyright = this.copyright; + + string[] dllInfo = new string[3]; + dllInfo[0] = dllName; + dllInfo[1] = dllVersion; + dllInfo[2] = this.copyright; + DllInfo = dllInfo; + } + #endregion + + public AboutBox(string programName, string programVersion, string programCopyright) + { + SetDllInfo(); //Name, Version und Copyright der DLL setzen + + InitializeComponent(); + + SetContent(programName, programVersion, programCopyright); //Fensterinhalt setzen + } + + protected string ProgramName { private set; get; } + protected string ProgramVersion { private set; get; } + protected string ProgramCopyright { private set; get; } + + private void buttonClose_Click(object sender, EventArgs e) + { + this.Close(); //Das Fenster schliessen + } + + private void buttonExport_Click(object sender, EventArgs e) + { + //Speichert den Inhalt der TextBox oder den selektierten Bereich daraus + saveFileDialog.Filter = Language.dialog001; + saveFileDialog.ShowDialog(); + } + + private void saveFileDialog_FileOk(object sender, CancelEventArgs e) + { + string fileName = saveFileDialog.FileName; + string text = ExportText(); + + try + { + File.WriteAllText(fileName, text); //Schreibt den Text in eine Datei + } + catch (Exception) + { + MessageBox.Show(Language.message001, + Language.messageHead001, + MessageBoxButtons.OK, + MessageBoxIcon.Error, + MessageBoxDefaultButton.Button1); + } + } + + private void SetContent(string programName, string programVersion, string programCopyright) + { + labelProgramName.Text = programName; + ProgramName = programName; + if (programVersion.StartsWith("V")) + { + labelVersion.Text = programVersion; + ProgramVersion = programVersion; + } + else + { + labelVersion.Text = String.Concat("Version ", programVersion); + ProgramVersion = labelVersion.Text; + } + labelCopyright.Text = programCopyright; + ProgramCopyright = programCopyright; + } + + private void SaveFileDialogFileOk(object sender, System.ComponentModel.CancelEventArgs e) + { + string fileName = saveFileDialog.FileName; + string text = ExportText(); + + try + { + File.WriteAllText(fileName, text); //Schreibt den Text in eine Datei + } + catch (Exception) + { + + MessageBox.Show(Language.message001, + Language.messageHead001, + MessageBoxButtons.OK, + MessageBoxIcon.Error, + MessageBoxDefaultButton.Button1); + } + } + + private string ExportText() + { + if (textBox.SelectionLength > 0) + { + return textBox.SelectedText; //Gibt den selektierten Text zurück + } + else + { + return String.Concat(ProgramName, "\r\n", ProgramVersion, "\r\n", ProgramCopyright, "\r\n--------------------------------------------------------------------------------\r\n", FixLineLenght.Format(textBox.Text, 80)); //Gibt den ganzen Text zurück + } + } + } +} diff --git a/AboutBox/AboutBox.csproj b/AboutBox/AboutBox.csproj new file mode 100644 index 0000000..d524f3d --- /dev/null +++ b/AboutBox/AboutBox.csproj @@ -0,0 +1,97 @@ + + + + + Debug + AnyCPU + {32F8CF98-005D-4F81-8381-CC2B8FC7A4D8} + Library + Properties + AboutBox + AboutBox + v4.6.1 + 512 + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + Form + + + AboutBox.cs + + + + True + True + Language.de.resx + + + True + True + Language.resx + + + True + True + Language.en.resx + + + + + + AboutBox.cs + + + AboutBox.cs + + + AboutBox.cs + + + ResXFileCodeGenerator + Language.de.Designer.cs + Eugen.ESystem.Windows.Forms + + + ResXFileCodeGenerator + Language.en.Designer.cs + Eugen.ESystem.Windows.Forms + + + ResXFileCodeGenerator + Language.Designer.cs + Eugen.ESystem.Windows.Forms + + + + \ No newline at end of file diff --git a/AboutBox/AboutBox.de.resx b/AboutBox/AboutBox.de.resx new file mode 100644 index 0000000..ec8bfdf --- /dev/null +++ b/AboutBox/AboutBox.de.resx @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/AboutBox/AboutBox.en.resx b/AboutBox/AboutBox.en.resx new file mode 100644 index 0000000..31067b0 --- /dev/null +++ b/AboutBox/AboutBox.en.resx @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 280, 44 + + + ProgramName + + + 55, 13 + + + Disklaimer + + + THE SOFTWARE IS PROVIDED AS IS, WITHOUT ANY LIABILITY OF ANY KIND. UP TO THE MAXIMUM, IN THIS CASE PERMITTED BY LAW, THE AUTHOR CONTINUES TO DISCLAIM ALL LIABILITY, INCLUDING ANY WARRANTY AMONG MERCHANTS, THE WARRANTY FOR USE FOR SPECIFIC PURPOSES AND NON-USABILITY. THE ENTIRE RISK ARISING FROM THE USE OR PERFORMANCE OF THE PRODUCT AND THE DOCUMENTATION REMAINS WITH THE USER OF THIS SOFTWARE. TO THE FULLEST EXTENT PERMITTED BY LAW, THE AUTHOR SHALL IN NO EVENT BE LIABLE FOR ANY CONSEQUENTIAL, INCIDENTAL, INDIRECT OR OTHER DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION OR LOSS OF PROFITS) ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE PRODUCT, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + + + Export + + + Close + + \ No newline at end of file diff --git a/AboutBox/AboutBox.resx b/AboutBox/AboutBox.resx new file mode 100644 index 0000000..7de76d2 --- /dev/null +++ b/AboutBox/AboutBox.resx @@ -0,0 +1,423 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + + 20, 20 + + + 32, 32 + + + + 0 + + + pictureBox + + + System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 7 + + + True + + + Microsoft Sans Serif, 28pt, style=Bold + + + 70, 13 + + + 308, 44 + + + 4 + + + Programmname + + + labelProgramName + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 6 + + + True + + + Microsoft Sans Serif, 10pt + + + 80, 78 + + + 56, 17 + + + 5 + + + Version + + + labelVersion + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 5 + + + True + + + Microsoft Sans Serif, 10pt + + + 80, 104 + + + 68, 17 + + + 6 + + + Copyright + + + labelCopyright + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 4 + + + True + + + 12, 144 + + + 94, 13 + + + 7 + + + Verzichtserklärung + + + labelDisklaimer + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 3 + + + 12, 162 + + + True + + + + Vertical + + + 470, 173 + + + 3 + + + DIE SOFTWARE WIRD ZUR VERFÜGUNG GESTELLT, WIE SIE IST, OHNE JEGLICHE HAFTUNG IRGENDEINER ART. BIS ZUM MAXIMAL, IN DIESEM FALL GESETZLICH ERLAUBTEN, LEHNT DER AUTOR WEITERHIN JEDE HAFTUNG AB, EINGESCHLOSSEN JEDE GARANTIE UNTER KAUFLEUTEN, DIE GARANTIE FÜR DEN EINSATZ ZU BESTIMMTEN ZWECKEN UND NICHTEINSETZBARKEIT. DIE GESAMTE GEFAHR, DIE AUS DEM GEBRAUCH ODER DER LEISTUNG VON DEM PRODUKT UND DEN UNTERLAGEN HERAUS ENTSTEHT, BLEIBT BEI DEM BENUTZER DIESER SOFTWARE. SOWEIT GESETZLICH ZULÄSSIG, IST DER AUTOR IN KEINEM FALL HAFTBAR FÜR IRGENDWELCHE FOLGE-, ZUFÄLLIGEN, INDIREKTEN ODER ANDEREN SCHÄDEN WELCHER ART AUCH IMMER (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF SCHÄDEN AUS ENTGANGENEN GEWINN, GESCHÄFTSUNTERBRECHUNG, VERLUST VON GESCHÄFTLICHEN INFORMATIONEN ODER VERMÖGENSSCHÄDEN), DIE AUS DER VERWENDUNG ODER DER UNMÖGLICHKEIT DER VERWENDUNG DES SOFTWAREPRODUKTS RESULTIEREN, SELBST WENN DER AUTOR AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WORDEN IST. + + + textBox + + + System.Windows.Forms.TextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 2 + + + 12, 341 + + + 75, 23 + + + 2 + + + Exportieren + + + buttonExport + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 1 + + + 407, 341 + + + 75, 23 + + + 1 + + + Schliesen + + + buttonClose + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + $this + + + 0 + + + 17, 17 + + + True + + + 6, 13 + + + 492, 369 + + + 500, 400 + + + 500, 400 + + + Über + + + saveFileDialog + + + System.Windows.Forms.SaveFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + About + + + System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/AboutBox/FixLineLenght.cs b/AboutBox/FixLineLenght.cs new file mode 100644 index 0000000..3713a79 --- /dev/null +++ b/AboutBox/FixLineLenght.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Eugen.ESystem.Windows.Forms +{ + public static class FixLineLenght + { + /// + /// Formats a string with a fixed line length. + /// + static FixLineLenght() + { + } + + /// + /// Formats a string with a fixed line length. + /// + /// String to be formatted. + /// Maximum line length + /// + public static string Format(string text, int lineLenght) + { + int pos = 0; + int spacePos = 0; + string character = ""; + string temp = ""; + string result = ""; + + while (text.Length > 0) + { + if (text.Length <= lineLenght) + { + result = String.Concat(result, text); + text = ""; + } + else + { + while (pos <= lineLenght) + { + character = text.Remove(0, pos).Remove(1); + + if (character == " ") + { + spacePos = pos + 1; + } + + pos++; + } + + temp = text.Remove(spacePos - 1); + text = text.Remove(0, spacePos); + result = String.Concat(result, temp, "\r\n"); + pos = 0; + spacePos = 0; + } + } + + return result; + } + } +} diff --git a/AboutBox/Icons.resx b/AboutBox/Icons.resx new file mode 100644 index 0000000..f779628 --- /dev/null +++ b/AboutBox/Icons.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\Information.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\program.cs;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 + + \ No newline at end of file diff --git a/AboutBox/Language.Designer.cs b/AboutBox/Language.Designer.cs new file mode 100644 index 0000000..6f3ed0f --- /dev/null +++ b/AboutBox/Language.Designer.cs @@ -0,0 +1,90 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace Eugen.ESystem.Windows.Forms { + using System; + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Language { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Language() { + } + + /// + /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("About.Language", typeof(Language).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Text-Datei (*.txt)|*.txt|Alle Dateien (*.*)|*.* ähnelt. + /// + internal static string dialog001 { + get { + return ResourceManager.GetString("dialog001", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Datei konnte nicht gespeichert werden. ähnelt. + /// + internal static string message001 { + get { + return ResourceManager.GetString("message001", resourceCulture); + } + } + + /// + /// Sucht eine lokalisierte Zeichenfolge, die Fehler ähnelt. + /// + internal static string messageHead001 { + get { + return ResourceManager.GetString("messageHead001", resourceCulture); + } + } + } +} diff --git a/AboutBox/Language.de.Designer.cs b/AboutBox/Language.de.Designer.cs new file mode 100644 index 0000000..e69de29 diff --git a/AboutBox/Language.de.resx b/AboutBox/Language.de.resx new file mode 100644 index 0000000..e702524 --- /dev/null +++ b/AboutBox/Language.de.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Text-Datei (*.txt)|*.txt|Alle Dateien (*.*)|*.* + + + Datei konnte nicht gespeichert werden. + + + Fehler + + \ No newline at end of file diff --git a/AboutBox/Language.en.Designer.cs b/AboutBox/Language.en.Designer.cs new file mode 100644 index 0000000..e69de29 diff --git a/AboutBox/Language.en.resx b/AboutBox/Language.en.resx new file mode 100644 index 0000000..794d239 --- /dev/null +++ b/AboutBox/Language.en.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Text-File (*.txt)|*.txt|All Files (*.*)|*.* + + + File could not be saved. + + + Error + + \ No newline at end of file diff --git a/AboutBox/Language.resx b/AboutBox/Language.resx new file mode 100644 index 0000000..e702524 --- /dev/null +++ b/AboutBox/Language.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Text-Datei (*.txt)|*.txt|Alle Dateien (*.*)|*.* + + + Datei konnte nicht gespeichert werden. + + + Fehler + + \ No newline at end of file diff --git a/AboutBox/Properties/AssemblyInfo.cs b/AboutBox/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..e0dae07 --- /dev/null +++ b/AboutBox/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("About")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("About")] +[assembly: AssemblyCopyright("Copyright © 2019 by Eugen Höglinger")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("32f8cf98-005d-4f81-8381-cc2b8fc7a4d8")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +//[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/AboutBox/Properties/Settings.Designer.cs b/AboutBox/Properties/Settings.Designer.cs new file mode 100644 index 0000000..c529d46 --- /dev/null +++ b/AboutBox/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion:4.0.30319.42000 +// +// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +// der Code erneut generiert wird. +// +//------------------------------------------------------------------------------ + +namespace About.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/AboutBox/Properties/Settings.settings b/AboutBox/Properties/Settings.settings new file mode 100644 index 0000000..049245f --- /dev/null +++ b/AboutBox/Properties/Settings.settings @@ -0,0 +1,6 @@ + + + + + + diff --git a/Daten/Construction.png b/Daten/Construction.png new file mode 100644 index 0000000..1d4b1d0 Binary files /dev/null and b/Daten/Construction.png differ diff --git a/Daten/Email.png b/Daten/Email.png new file mode 100644 index 0000000..ec32fd8 Binary files /dev/null and b/Daten/Email.png differ diff --git a/Daten/Error.png b/Daten/Error.png new file mode 100644 index 0000000..4248432 Binary files /dev/null and b/Daten/Error.png differ diff --git a/Daten/Information.png b/Daten/Information.png new file mode 100644 index 0000000..6c532b2 Binary files /dev/null and b/Daten/Information.png differ diff --git a/Daten/Instruction.png b/Daten/Instruction.png new file mode 100644 index 0000000..79f1c8d Binary files /dev/null and b/Daten/Instruction.png differ diff --git a/Daten/Question.png b/Daten/Question.png new file mode 100644 index 0000000..22ccc4f Binary files /dev/null and b/Daten/Question.png differ diff --git a/Daten/Telephone.png b/Daten/Telephone.png new file mode 100644 index 0000000..7aadfda Binary files /dev/null and b/Daten/Telephone.png differ diff --git a/Daten/Tips.png b/Daten/Tips.png new file mode 100644 index 0000000..73a3cc0 Binary files /dev/null and b/Daten/Tips.png differ diff --git a/Daten/Warning.png b/Daten/Warning.png new file mode 100644 index 0000000..82772fe Binary files /dev/null and b/Daten/Warning.png differ diff --git a/Test_AboutBox/Form1.Designer.cs b/Test_AboutBox/Form1.Designer.cs new file mode 100644 index 0000000..5b7f9c2 --- /dev/null +++ b/Test_AboutBox/Form1.Designer.cs @@ -0,0 +1,73 @@ +namespace Eugen.ESystem.Windows.Forms +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button = new System.Windows.Forms.Button(); + this.labelInfo = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // button + // + this.button.Location = new System.Drawing.Point(13, 234); + this.button.Name = "button"; + this.button.Size = new System.Drawing.Size(267, 23); + this.button.TabIndex = 0; + this.button.Text = "Über anzeigen"; + this.button.UseVisualStyleBackColor = true; + this.button.Click += new System.EventHandler(this.button_Click); + // + // labelInfo + // + this.labelInfo.AutoSize = true; + this.labelInfo.Location = new System.Drawing.Point(13, 13); + this.labelInfo.Name = "labelInfo"; + this.labelInfo.Size = new System.Drawing.Size(16, 13); + this.labelInfo.TabIndex = 1; + this.labelInfo.Text = "..."; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(292, 269); + this.Controls.Add(this.labelInfo); + this.Controls.Add(this.button); + this.Name = "Form1"; + this.Text = "Test_About"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button button; + private System.Windows.Forms.Label labelInfo; + } +} \ No newline at end of file diff --git a/Test_AboutBox/Form1.cs b/Test_AboutBox/Form1.cs new file mode 100644 index 0000000..16d700e --- /dev/null +++ b/Test_AboutBox/Form1.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Eugen.ESystem.Windows.Forms +{ + public partial class Form1 : Form + { + #region Version und Copyright + // Version und Copyright + string name = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + string version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + string copyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + string icon = Application.StartupPath + "\\Info.bmp"; + //Assembly Datum und Zeit + static DateTime value = AssemblyDateTime(); + string date = value.ToShortDateString(); + string time = value.ToLongTimeString(); + private static DateTime AssemblyDateTime() + { + var version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + var buildDateTime = new DateTime(2000, 1, 1).Add(new TimeSpan(TimeSpan.TicksPerDay * version.Build + TimeSpan.TicksPerSecond * 2 * version.Revision)); + //Tage seit dem 1. Januar 2000 und Sekunden seit Mitternacht, (multiplizier mit 2 ergibt das Original) + return buildDateTime; + } + #endregion + + public Form1() + { + InitializeComponent(); + } + + private void button_Click(object sender, EventArgs e) + { + // + //Diese Zeile und die dazugehörige Methode in das Programm kopieren + // + // Zeigt das 'AboutBox' Fenster an + ShowAboutBox(name, version, copyright); + } + + private void ShowAboutBox(string programName, string programVersion, string programCopyright) + { + var about = new Eugen.ESystem.Windows.Forms.AboutBox(programName, programVersion, programCopyright); + about.ShowDialog(); + + labelInfo.Text = String.Concat(AboutBox.DllName, "\n", AboutBox.DllVersion, "\n", AboutBox.Copyright); + } + } +} diff --git a/Test_AboutBox/Form1.resx b/Test_AboutBox/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Test_AboutBox/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Test_AboutBox/Program.cs b/Test_AboutBox/Program.cs new file mode 100644 index 0000000..a3a8c45 --- /dev/null +++ b/Test_AboutBox/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Eugen.ESystem.Windows.Forms +{ + static class Program + { + /// + /// Der Haupteinstiegspunkt für die Anwendung. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Test_AboutBox/Properties/AssemblyInfo.cs b/Test_AboutBox/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..aab4b93 --- /dev/null +++ b/Test_AboutBox/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Allgemeine Informationen über eine Assembly werden über die folgenden +// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +// die einer Assembly zugeordnet sind. +[assembly: AssemblyTitle("Test_About")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Test_About")] +[assembly: AssemblyCopyright("Copyright © 2019 by Eugen Höglinger")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly +// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von +// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen. +[assembly: ComVisible(false)] + +// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird +[assembly: Guid("fc5324da-3fa6-41f7-9f11-4060e8057b55")] + +// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +// +// Hauptversion +// Nebenversion +// Buildnummer +// Revision +// +// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +// indem Sie "*" wie unten gezeigt eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +// [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Test_AboutBox/Test_AboutBox.csproj b/Test_AboutBox/Test_AboutBox.csproj new file mode 100644 index 0000000..48e13f9 --- /dev/null +++ b/Test_AboutBox/Test_AboutBox.csproj @@ -0,0 +1,70 @@ + + + + + Debug + AnyCPU + {FC5324DA-3FA6-41F7-9F11-4060E8057B55} + WinExe + Properties + Test_AboutBox + Test_AboutBox + v4.6.1 + 512 + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + + + Form1.cs + + + + + {32f8cf98-005d-4f81-8381-cc2b8fc7a4d8} + AboutBox + + + + \ No newline at end of file