From 9ed6e8b521504aa9a9d6872658f0a14cbc1444fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eugen=20H=C3=B6glinger?= Date: Wed, 25 Nov 2020 17:34:09 +0100 Subject: [PATCH] Initialize --- Daten/Construction.png | Bin 0 -> 1859 bytes Daten/Email.png | Bin 0 -> 3080 bytes Daten/Error.png | Bin 0 -> 1911 bytes Daten/Information.png | Bin 0 -> 2818 bytes Daten/Instruction.png | Bin 0 -> 2223 bytes Daten/Question.png | Bin 0 -> 2856 bytes Daten/Telephone.png | Bin 0 -> 2601 bytes Daten/Tips.png | Bin 0 -> 2192 bytes Daten/Warning.png | Bin 0 -> 1944 bytes Info/Class1.cs | 12 - Info/Info.csproj | 54 ---- Info.sln => InfoBox.sln | 8 +- InfoBox/FixLineLenght.cs | 75 ++++++ InfoBox/InfoBox.Designer.cs | 175 ++++++++++++ InfoBox/InfoBox.cs | 264 +++++++++++++++++++ InfoBox/InfoBox.csproj | 128 +++++++++ InfoBox/InfoBox.resx | 123 +++++++++ InfoBox/Language.Designer.cs | 90 +++++++ InfoBox/Language.de.Designer.cs | 0 InfoBox/Language.de.resx | 129 +++++++++ InfoBox/Language.en.Designer.cs | 0 InfoBox/Language.en.resx | 129 +++++++++ InfoBox/Language.resx | 129 +++++++++ InfoBox/Pictures.Designer.cs | 153 +++++++++++ InfoBox/Pictures.resx | 148 +++++++++++ {Info => InfoBox}/Properties/AssemblyInfo.cs | 8 +- InfoBox/Resources/Construction.png | Bin 0 -> 1859 bytes InfoBox/Resources/Email.png | Bin 0 -> 3080 bytes InfoBox/Resources/Error.png | Bin 0 -> 1911 bytes InfoBox/Resources/Information.png | Bin 0 -> 2818 bytes InfoBox/Resources/Instruction.png | Bin 0 -> 2223 bytes InfoBox/Resources/Question.png | Bin 0 -> 2856 bytes InfoBox/Resources/Telephone.png | Bin 0 -> 2601 bytes InfoBox/Resources/Tips.png | Bin 0 -> 2192 bytes InfoBox/Resources/Warning.png | Bin 0 -> 1944 bytes Test_Info/App.config | 6 + Test_Info/Form1.Designer.cs | 118 +++++++++ Test_Info/Form1.cs | 141 ++++++++++ Test_Info/Form1.resx | 120 +++++++++ Test_Info/Program.cs | 22 ++ Test_Info/Properties/AssemblyInfo.cs | 36 +++ Test_Info/Properties/Resources.Designer.cs | 71 +++++ Test_Info/Properties/Resources.resx | 117 ++++++++ Test_Info/Properties/Settings.Designer.cs | 30 +++ Test_Info/Properties/Settings.settings | 7 + Test_Info/Test_InfoBox.csproj | 89 +++++++ 46 files changed, 2311 insertions(+), 71 deletions(-) create mode 100644 Daten/Construction.png create mode 100644 Daten/Email.png create mode 100644 Daten/Error.png create mode 100644 Daten/Information.png create mode 100644 Daten/Instruction.png create mode 100644 Daten/Question.png create mode 100644 Daten/Telephone.png create mode 100644 Daten/Tips.png create mode 100644 Daten/Warning.png delete mode 100644 Info/Class1.cs delete mode 100644 Info/Info.csproj rename Info.sln => InfoBox.sln (61%) create mode 100644 InfoBox/FixLineLenght.cs create mode 100644 InfoBox/InfoBox.Designer.cs create mode 100644 InfoBox/InfoBox.cs create mode 100644 InfoBox/InfoBox.csproj create mode 100644 InfoBox/InfoBox.resx create mode 100644 InfoBox/Language.Designer.cs create mode 100644 InfoBox/Language.de.Designer.cs create mode 100644 InfoBox/Language.de.resx create mode 100644 InfoBox/Language.en.Designer.cs create mode 100644 InfoBox/Language.en.resx create mode 100644 InfoBox/Language.resx create mode 100644 InfoBox/Pictures.Designer.cs create mode 100644 InfoBox/Pictures.resx rename {Info => InfoBox}/Properties/AssemblyInfo.cs (87%) create mode 100644 InfoBox/Resources/Construction.png create mode 100644 InfoBox/Resources/Email.png create mode 100644 InfoBox/Resources/Error.png create mode 100644 InfoBox/Resources/Information.png create mode 100644 InfoBox/Resources/Instruction.png create mode 100644 InfoBox/Resources/Question.png create mode 100644 InfoBox/Resources/Telephone.png create mode 100644 InfoBox/Resources/Tips.png create mode 100644 InfoBox/Resources/Warning.png create mode 100644 Test_Info/App.config create mode 100644 Test_Info/Form1.Designer.cs create mode 100644 Test_Info/Form1.cs create mode 100644 Test_Info/Form1.resx create mode 100644 Test_Info/Program.cs create mode 100644 Test_Info/Properties/AssemblyInfo.cs create mode 100644 Test_Info/Properties/Resources.Designer.cs create mode 100644 Test_Info/Properties/Resources.resx create mode 100644 Test_Info/Properties/Settings.Designer.cs create mode 100644 Test_Info/Properties/Settings.settings create mode 100644 Test_Info/Test_InfoBox.csproj diff --git a/Daten/Construction.png b/Daten/Construction.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4b1d04bacaeb61595945453c6126deda3c8153 GIT binary patch literal 1859 zcmV-J2fX-+P)pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMIczh2P5=M~!AV3xR9HvtlzUKA*B!^t?h5QK;DQ9%2eK;*?7D#<_*gA;ER8Ky zG{h968RI0T*5D**n`9iVm3zU0LBR;oNYPzDc6lryFVQB@BqSuHq=Gn+fCMyHK+vI0 zaKc!5e0%nArLE(ntcZHdKh% zN-Y98QLb?N!6t|&%fb&zCo`|Sj5EWhQ9V?Nw97BTlp&kcB@weQ?7?Jx8Ic5WF?re55}X*cV&eykq2t7@gpLu0-~R;jZ7D1~YFFM3{7 zyrxc%qN`RosJ!H=9itPY_;UQOc(eZyGOnZ{<%=DNsnkKu&$0{C?oR@f$fFCh+^OVc zCb!YHx8G>P?R@mr2T1GVz<;q5FI@a7f)9F3`6WqWgz4Wd^!;|#CyP3t`y`4zwNqX( z?7+m-grEn;r^b=pe*nL}{42b2DG_TM!{Nuz`ph|3SmxfN=gIEx+vXx?;58<<4&>;4kANNbG$Yo4VIxeb-7Xrw4Kl?^Zp%+J6}x zFL`X?VNaxA`6ZL*^uGaHa{;`)y|HrTkEmG0SiO3+(2wby8aave7k`Y$yMBnrKV1&( zAqBj6*EPbj|5;Q#kU3bGW-$Z&PQQ!jXxqvys;op2?g(#DlGrap$E?xobL9w$Nm%y z-*SSvWdw=uZ^HHK*D*Reip0c3DkrRfs;Vjk1Oy0r;MT2M>@YgVZm)e3+BXPvSp?Ci zweU&vxaqma)i7=OhG;qQJ8K&Bn14#j7KHQ7m-d+q03}DNaEv)5MtCcu3=udmW*#TW zj;Zj+BlTWPt}3OnvlZy*=s;&@C!(XH5gQwe;o)JlwY4!xUtb@4dgt%EVKf@yc()Ki z8Di+u3Bqzcq0dvnElHk5@Bbs(JuVR;2V@g*p9Hbi`;`)Gt>3`pPTJes5gHnb#>Pgr z70zpCn|JKkaaZv_vu@owY%flL{xyQ2G`bb#8hGwgjJxpih4elRPsIM5GN0~r*OA)GC9XNIVB+h(Vjnn5VQPWz6%9awG{9`dHnv39QDnxN( zK5T!mz}9e_VQ;WtL*5GL_t64UX;%)oAha|963(NUmM9_`&gJKej{6|GNzGdCl=~GE zDD89`Y?KoO>U>HbfyP4Mf1Hv_FfWI4lpx>;f%Y&Zd-|2TedwI~9=Mf$JSe7@ji_CrOlaZ^iUM{ND{Be+MU*WF76SIeGv9002ovPDHLkV1mf5f0+OP literal 0 HcmV?d00001 diff --git a/Daten/Email.png b/Daten/Email.png new file mode 100644 index 0000000000000000000000000000000000000000..ec32fd8c609bd8e2d2a3adbadc834659ea5f410e GIT binary patch literal 3080 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 literal 0 HcmV?d00001 diff --git a/Daten/Information.png b/Daten/Information.png new file mode 100644 index 0000000000000000000000000000000000000000..6c532b2c33cc411c77ea14ba3d969c496f41c9dd GIT binary patch literal 2818 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 literal 0 HcmV?d00001 diff --git a/Daten/Question.png b/Daten/Question.png new file mode 100644 index 0000000000000000000000000000000000000000..22ccc4f77eb4a07576a709d7d6471a82d43437c3 GIT binary patch literal 2856 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 LNkvXXu0mjf){yiz literal 0 HcmV?d00001 diff --git a/Daten/Tips.png b/Daten/Tips.png new file mode 100644 index 0000000000000000000000000000000000000000..73a3cc0354a3bca0c207431c03d5686db4b1a276 GIT binary patch literal 2192 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 eKL$TtaNIX0!wzWrc@jYY0000 - - - - Debug - AnyCPU - e23aff77-ebf4-4966-b3e4-a49fc6ce92c7 - Library - Properties - Info - Info - v4.6.1 - 512 - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Info.sln b/InfoBox.sln similarity index 61% rename from Info.sln rename to InfoBox.sln index d347696..b42047b 100644 --- a/Info.sln +++ b/InfoBox.sln @@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 VisualStudioVersion = 15.0.28307.645 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Info", "Info\Info.csproj", "{E23AFF77-EBF4-4966-B3E4-A49FC6CE92C7}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfoBox", "InfoBox\InfoBox.csproj", "{E23AFF77-EBF4-4966-B3E4-A49FC6CE92C7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_InfoBox", "Test_Info\Test_InfoBox.csproj", "{3683B887-8256-414A-B502-0F6B7088654D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +17,10 @@ Global {E23AFF77-EBF4-4966-B3E4-A49FC6CE92C7}.Debug|Any CPU.Build.0 = Debug|Any CPU {E23AFF77-EBF4-4966-B3E4-A49FC6CE92C7}.Release|Any CPU.ActiveCfg = Release|Any CPU {E23AFF77-EBF4-4966-B3E4-A49FC6CE92C7}.Release|Any CPU.Build.0 = Release|Any CPU + {3683B887-8256-414A-B502-0F6B7088654D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3683B887-8256-414A-B502-0F6B7088654D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3683B887-8256-414A-B502-0F6B7088654D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3683B887-8256-414A-B502-0F6B7088654D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/InfoBox/FixLineLenght.cs b/InfoBox/FixLineLenght.cs new file mode 100644 index 0000000..e7391ee --- /dev/null +++ b/InfoBox/FixLineLenght.cs @@ -0,0 +1,75 @@ +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); + + //Bei einem Zeilenumbruch oder Wagenrücklauf eine neu Zeile beginnen + if (character == "\n" || character == "\r") + { + spacePos = text.IndexOf("\n") + 1; + break; + } + + if (character == " ") + { + spacePos = pos + 1; + } + + pos++; + } + + temp = text.Remove(spacePos - 1); + if (temp.EndsWith("\n") || temp.EndsWith("\r")) + { + temp = temp.Remove(temp.Length - 1);// Ein schon enthaltenes '\n' oder '\r' am Ende de temporären Strings muss entfernt werden + } + text = text.Remove(0, spacePos); + result = String.Concat(result, temp, "\r\n"); + pos = 0; + spacePos = 0; + } + } + + return result; + } + } +} diff --git a/InfoBox/InfoBox.Designer.cs b/InfoBox/InfoBox.Designer.cs new file mode 100644 index 0000000..33bf0d3 --- /dev/null +++ b/InfoBox/InfoBox.Designer.cs @@ -0,0 +1,175 @@ +namespace Eugen.ESystem.Windows.Forms +{ + partial class InfoBox + { + /// + /// 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.pictureBox = new System.Windows.Forms.PictureBox(); + this.labelTitle = new System.Windows.Forms.Label(); + this.labelHeaderRow1 = new System.Windows.Forms.Label(); + this.labelHeaderRow2 = new System.Windows.Forms.Label(); + this.labelHeaderRow3 = new System.Windows.Forms.Label(); + this.textBox = new System.Windows.Forms.TextBox(); + this.buttonClose1 = new System.Windows.Forms.Button(); + this.buttonClose2 = new System.Windows.Forms.Button(); + this.buttonExport = new System.Windows.Forms.Button(); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox + // + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Information; + this.pictureBox.Location = new System.Drawing.Point(20, 20); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size(32, 32); + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // labelTitle + // + this.labelTitle.AutoSize = true; + this.labelTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 28F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.labelTitle.Location = new System.Drawing.Point(70, 15); + this.labelTitle.Name = "labelTitle"; + this.labelTitle.Size = new System.Drawing.Size(98, 44); + this.labelTitle.TabIndex = 4; + this.labelTitle.Text = "Title"; + // + // labelHeaderRow1 + // + this.labelHeaderRow1.AutoSize = true; + this.labelHeaderRow1.Location = new System.Drawing.Point(78, 80); + this.labelHeaderRow1.Name = "labelHeaderRow1"; + this.labelHeaderRow1.Size = new System.Drawing.Size(36, 13); + this.labelHeaderRow1.TabIndex = 5; + this.labelHeaderRow1.Text = "Zeile1"; + // + // labelHeaderRow2 + // + this.labelHeaderRow2.AutoSize = true; + this.labelHeaderRow2.Location = new System.Drawing.Point(78, 93); + this.labelHeaderRow2.Name = "labelHeaderRow2"; + this.labelHeaderRow2.Size = new System.Drawing.Size(39, 13); + this.labelHeaderRow2.TabIndex = 6; + this.labelHeaderRow2.Text = "Zeile 2"; + // + // labelHeaderRow3 + // + this.labelHeaderRow3.AutoSize = true; + this.labelHeaderRow3.Location = new System.Drawing.Point(78, 106); + this.labelHeaderRow3.Name = "labelHeaderRow3"; + this.labelHeaderRow3.Size = new System.Drawing.Size(39, 13); + this.labelHeaderRow3.TabIndex = 7; + this.labelHeaderRow3.Text = "Zeile 3"; + // + // textBox + // + this.textBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBox.Location = new System.Drawing.Point(12, 140); + this.textBox.Multiline = true; + this.textBox.Name = "textBox"; + this.textBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; + this.textBox.Size = new System.Drawing.Size(668, 288); + this.textBox.TabIndex = 3; + // + // buttonClose1 + // + this.buttonClose1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonClose1.Location = new System.Drawing.Point(605, 434); + this.buttonClose1.Name = "buttonClose1"; + this.buttonClose1.Size = new System.Drawing.Size(75, 23); + this.buttonClose1.TabIndex = 1; + this.buttonClose1.Text = "Schließen"; + this.buttonClose1.UseVisualStyleBackColor = true; + this.buttonClose1.Click += new System.EventHandler(this.buttonClose1_Click); + // + // buttonClose2 + // + this.buttonClose2.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.buttonClose2.Location = new System.Drawing.Point(309, 434); + this.buttonClose2.Name = "buttonClose2"; + this.buttonClose2.Size = new System.Drawing.Size(75, 23); + this.buttonClose2.TabIndex = 1; + this.buttonClose2.Text = "Schließen"; + this.buttonClose2.UseVisualStyleBackColor = true; + this.buttonClose2.Click += new System.EventHandler(this.buttonClose2_Click); + // + // buttonExport + // + this.buttonExport.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonExport.Location = new System.Drawing.Point(12, 434); + this.buttonExport.Name = "buttonExport"; + this.buttonExport.Size = new System.Drawing.Size(75, 23); + this.buttonExport.TabIndex = 2; + this.buttonExport.Text = "Exportieren"; + this.buttonExport.UseVisualStyleBackColor = true; + this.buttonExport.Click += new System.EventHandler(this.buttonExport_Click); + // + // saveFileDialog + // + this.saveFileDialog.FileOk += new System.ComponentModel.CancelEventHandler(this.saveFileDialog_FileOk); + // + // InfoBox + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(692, 469); + this.Controls.Add(this.buttonExport); + this.Controls.Add(this.buttonClose2); + this.Controls.Add(this.buttonClose1); + this.Controls.Add(this.textBox); + this.Controls.Add(this.labelHeaderRow3); + this.Controls.Add(this.labelHeaderRow2); + this.Controls.Add(this.labelHeaderRow1); + this.Controls.Add(this.labelTitle); + this.Controls.Add(this.pictureBox); + this.MinimumSize = new System.Drawing.Size(400, 300); + this.Name = "InfoBox"; + this.Text = "WindowTitle"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label labelTitle; + private System.Windows.Forms.Label labelHeaderRow1; + private System.Windows.Forms.Label labelHeaderRow2; + private System.Windows.Forms.Label labelHeaderRow3; + private System.Windows.Forms.TextBox textBox; + private System.Windows.Forms.Button buttonClose1; + private System.Windows.Forms.Button buttonClose2; + private System.Windows.Forms.Button buttonExport; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + } +} \ No newline at end of file diff --git a/InfoBox/InfoBox.cs b/InfoBox/InfoBox.cs new file mode 100644 index 0000000..146cbe0 --- /dev/null +++ b/InfoBox/InfoBox.cs @@ -0,0 +1,264 @@ +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 InfoBox : Form + { + #region Version und Copyright + // Version und Copyright + static string dllName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + static string dllVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + static string copyright = GenerateCopyright(); + 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; + } + + private static string CurrentYear() + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + + private static string StartYear() + { + string startYear = ""; + if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) + { + startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); + while (startYear.StartsWith(" ")) + { + startYear = startYear.Remove(0, 1); + } + startYear = startYear.Remove(startYear.IndexOf(" ")); + return startYear; + } + else + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + } + + private static string GenerateCopyright() + { + string startYear = StartYear(); + string currentYear = CurrentYear(); + + if (startYear == currentYear) + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + else + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace(startYear, String.Concat(startYear, "-", currentYear)); + } + } + #endregion + + #region DLL-Info + /// + /// Contains the name of the program file + /// + public static string DllName { set; get; } + + /// + /// Contains the version of the program file + /// + public static string DllVersion { set; get; } + + /// + /// Contains the copyright notice + /// + public static string Copyright { set; get; } + + private static void SetDllInfo() + { + //Name, Version und Copyright setzen + DllName = dllName; + DllVersion = dllVersion; + Copyright = copyright; + } + #endregion + + /// + /// Displays a self-defined information box + /// + static InfoBox() + { + SetDllInfo(); //Name, Version und Copyright der DLL setzen + } + + /// + /// Displays a self-defined information box + /// + /// A valid string. + /// The icon that is displayed. + /// A valid string. + /// A valid string. + /// A valid string. + /// A valid string. + /// A valid string. + /// 'True' = The Export function is available. 'False' = The export function is not available. + public InfoBox(string caption, Icons icon, string title, string headerRow1, string headerRow2, string headerRow3, string text, bool export) + { + SetDllInfo(); //Name, Version und Copyright der DLL setzen + + InitializeComponent(); + + SetContent(caption, icon, title, headerRow1, headerRow2, headerRow3, text, export); //Fensterinhalt setzen + } + + /// + /// Available Icons + /// + public enum Icons + { + Construction, + Email, + Error, + Information, + Instruction, + Question, + Telephon, + Tips, + Warning + } + + private void buttonClose1_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void buttonClose2_Click(object sender, EventArgs e) + { + this.Close(); + } + + 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 windowTitle, Icons icon, string title, string headerRow1, string headerRow2, string headerRow3, string text, bool export) + { + //Export Button freischalten oder nicht + if (export) + { + buttonExport.Visible = true; + buttonClose1.Visible = true; + buttonClose2.Visible = false; + } + else + { + buttonExport.Visible = false; + buttonClose1.Visible = false; + buttonClose2.Visible = true; + } + + //Icon setzen + switch (icon) + { + case Icons.Construction: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Construction; + break; + case Icons.Email: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Email; + break; + case Icons.Error: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Error; + break; + case Icons.Information: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Information; + break; + case Icons.Instruction: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Instruction; + break; + case Icons.Question: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Question; + break; + case Icons.Telephon: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Telephone; + break; + case Icons.Tips: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Tips; + break; + case Icons.Warning: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Warning; + break; + default: + this.pictureBox.Image = global::Eugen.ESystem.Windows.Forms.Pictures.Information; + break; + } + + this.Text = windowTitle; //Fenster Titel + labelTitle.Text = title; //Titel schreiben + labelHeaderRow1.Text = headerRow1; //Header Zeile 1 schreiben + labelHeaderRow2.Text = headerRow2; //Header Zeile 2 schreiben + labelHeaderRow3.Text = headerRow3; //Header Zeile 3 schreiben + textBox.Text = text; //Text schreiben + } + + private string ExportText() + { + if (textBox.SelectionLength > 0) + { + return textBox.SelectedText; //Gibt den selektierten Text zurück + } + else + { + return FixLineLenght.Format(textBox.Text, 80); //Gibt den ganzen Text formatiert zurück + } + } + + /// + /// Sets a user specific window size. + /// + /// A value greater than 400. + /// A value greater than 300. + public void SetSize(int width, int height) + { + this.ClientSize = new System.Drawing.Size(width - 8, height - 31); + } + } +} diff --git a/InfoBox/InfoBox.csproj b/InfoBox/InfoBox.csproj new file mode 100644 index 0000000..7b887c5 --- /dev/null +++ b/InfoBox/InfoBox.csproj @@ -0,0 +1,128 @@ + + + + + Debug + AnyCPU + {E23AFF77-EBF4-4966-B3E4-A49FC6CE92C7} + Library + Properties + InfoBox + InfoBox + v4.6.1 + 512 + false + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + InfoBox.cs + + + True + True + Language.de.resx + + + True + True + Language.resx + + + True + True + Language.en.resx + + + True + True + Pictures.resx + + + + + + InfoBox.cs + + + Eugen.ESystem.Windows.Forms + ResXFileCodeGenerator + Language.de.Designer.cs + + + Eugen.ESystem.Windows.Forms + ResXFileCodeGenerator + Language.en.Designer.cs + + + ResXFileCodeGenerator + Language.Designer.cs + Eugen.ESystem.Windows.Forms + + + ResXFileCodeGenerator + Pictures.Designer.cs + Eugen.ESystem.Windows.Forms + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/InfoBox/InfoBox.resx b/InfoBox/InfoBox.resx new file mode 100644 index 0000000..5e7f0a6 --- /dev/null +++ b/InfoBox/InfoBox.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + \ No newline at end of file diff --git a/InfoBox/Language.Designer.cs b/InfoBox/Language.Designer.cs new file mode 100644 index 0000000..3ede241 --- /dev/null +++ b/InfoBox/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("Info.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/InfoBox/Language.de.Designer.cs b/InfoBox/Language.de.Designer.cs new file mode 100644 index 0000000..e69de29 diff --git a/InfoBox/Language.de.resx b/InfoBox/Language.de.resx new file mode 100644 index 0000000..e702524 --- /dev/null +++ b/InfoBox/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/InfoBox/Language.en.Designer.cs b/InfoBox/Language.en.Designer.cs new file mode 100644 index 0000000..e69de29 diff --git a/InfoBox/Language.en.resx b/InfoBox/Language.en.resx new file mode 100644 index 0000000..794d239 --- /dev/null +++ b/InfoBox/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/InfoBox/Language.resx b/InfoBox/Language.resx new file mode 100644 index 0000000..e702524 --- /dev/null +++ b/InfoBox/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/InfoBox/Pictures.Designer.cs b/InfoBox/Pictures.Designer.cs new file mode 100644 index 0000000..f65b526 --- /dev/null +++ b/InfoBox/Pictures.Designer.cs @@ -0,0 +1,153 @@ +//------------------------------------------------------------------------------ +// +// 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 Pictures { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Pictures() { + } + + /// + /// 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("InfoBox.Pictures", typeof(Pictures).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 Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Construction { + get { + object obj = ResourceManager.GetObject("Construction", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Email { + get { + object obj = ResourceManager.GetObject("Email", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Error { + get { + object obj = ResourceManager.GetObject("Error", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Information { + get { + object obj = ResourceManager.GetObject("Information", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Instruction { + get { + object obj = ResourceManager.GetObject("Instruction", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Question { + get { + object obj = ResourceManager.GetObject("Question", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Telephone { + get { + object obj = ResourceManager.GetObject("Telephone", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Tips { + get { + object obj = ResourceManager.GetObject("Tips", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Warning { + get { + object obj = ResourceManager.GetObject("Warning", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/InfoBox/Pictures.resx b/InfoBox/Pictures.resx new file mode 100644 index 0000000..20a1758 --- /dev/null +++ b/InfoBox/Pictures.resx @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\Construction.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Email.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Error.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Information.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Instruction.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Question.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Telephone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Tips.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Resources\Warning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Info/Properties/AssemblyInfo.cs b/InfoBox/Properties/AssemblyInfo.cs similarity index 87% rename from Info/Properties/AssemblyInfo.cs rename to InfoBox/Properties/AssemblyInfo.cs index cf700fa..1786ab2 100644 --- a/Info/Properties/AssemblyInfo.cs +++ b/InfoBox/Properties/AssemblyInfo.cs @@ -5,12 +5,12 @@ 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("Info")] +[assembly: AssemblyTitle("Test_InfoBox")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Info")] -[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyProduct("Test_InfoBox")] +[assembly: AssemblyCopyright("Copyright © 2019 by Eugen Höglinger")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 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.0.0")] +[assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/InfoBox/Resources/Construction.png b/InfoBox/Resources/Construction.png new file mode 100644 index 0000000000000000000000000000000000000000..1d4b1d04bacaeb61595945453c6126deda3c8153 GIT binary patch literal 1859 zcmV-J2fX-+P)pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%heMIczh2P5=M~!AV3xR9HvtlzUKA*B!^t?h5QK;DQ9%2eK;*?7D#<_*gA;ER8Ky zG{h968RI0T*5D**n`9iVm3zU0LBR;oNYPzDc6lryFVQB@BqSuHq=Gn+fCMyHK+vI0 zaKc!5e0%nArLE(ntcZHdKh% zN-Y98QLb?N!6t|&%fb&zCo`|Sj5EWhQ9V?Nw97BTlp&kcB@weQ?7?Jx8Ic5WF?re55}X*cV&eykq2t7@gpLu0-~R;jZ7D1~YFFM3{7 zyrxc%qN`RosJ!H=9itPY_;UQOc(eZyGOnZ{<%=DNsnkKu&$0{C?oR@f$fFCh+^OVc zCb!YHx8G>P?R@mr2T1GVz<;q5FI@a7f)9F3`6WqWgz4Wd^!;|#CyP3t`y`4zwNqX( z?7+m-grEn;r^b=pe*nL}{42b2DG_TM!{Nuz`ph|3SmxfN=gIEx+vXx?;58<<4&>;4kANNbG$Yo4VIxeb-7Xrw4Kl?^Zp%+J6}x zFL`X?VNaxA`6ZL*^uGaHa{;`)y|HrTkEmG0SiO3+(2wby8aave7k`Y$yMBnrKV1&( zAqBj6*EPbj|5;Q#kU3bGW-$Z&PQQ!jXxqvys;op2?g(#DlGrap$E?xobL9w$Nm%y z-*SSvWdw=uZ^HHK*D*Reip0c3DkrRfs;Vjk1Oy0r;MT2M>@YgVZm)e3+BXPvSp?Ci zweU&vxaqma)i7=OhG;qQJ8K&Bn14#j7KHQ7m-d+q03}DNaEv)5MtCcu3=udmW*#TW zj;Zj+BlTWPt}3OnvlZy*=s;&@C!(XH5gQwe;o)JlwY4!xUtb@4dgt%EVKf@yc()Ki z8Di+u3Bqzcq0dvnElHk5@Bbs(JuVR;2V@g*p9Hbi`;`)Gt>3`pPTJes5gHnb#>Pgr z70zpCn|JKkaaZv_vu@owY%flL{xyQ2G`bb#8hGwgjJxpih4elRPsIM5GN0~r*OA)GC9XNIVB+h(Vjnn5VQPWz6%9awG{9`dHnv39QDnxN( zK5T!mz}9e_VQ;WtL*5GL_t64UX;%)oAha|963(NUmM9_`&gJKej{6|GNzGdCl=~GE zDD89`Y?KoO>U>HbfyP4Mf1Hv_FfWI4lpx>;f%Y&Zd-|2TedwI~9=Mf$JSe7@ji_CrOlaZ^iUM{ND{Be+MU*WF76SIeGv9002ovPDHLkV1mf5f0+OP literal 0 HcmV?d00001 diff --git a/InfoBox/Resources/Email.png b/InfoBox/Resources/Email.png new file mode 100644 index 0000000000000000000000000000000000000000..ec32fd8c609bd8e2d2a3adbadc834659ea5f410e GIT binary patch literal 3080 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 literal 0 HcmV?d00001 diff --git a/InfoBox/Resources/Information.png b/InfoBox/Resources/Information.png new file mode 100644 index 0000000000000000000000000000000000000000..6c532b2c33cc411c77ea14ba3d969c496f41c9dd GIT binary patch literal 2818 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 literal 0 HcmV?d00001 diff --git a/InfoBox/Resources/Question.png b/InfoBox/Resources/Question.png new file mode 100644 index 0000000000000000000000000000000000000000..22ccc4f77eb4a07576a709d7d6471a82d43437c3 GIT binary patch literal 2856 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 LNkvXXu0mjf){yiz literal 0 HcmV?d00001 diff --git a/InfoBox/Resources/Tips.png b/InfoBox/Resources/Tips.png new file mode 100644 index 0000000000000000000000000000000000000000..73a3cc0354a3bca0c207431c03d5686db4b1a276 GIT binary patch literal 2192 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 eKL$TtaNIX0!wzWrc@jYY0000 + + + + + \ No newline at end of file diff --git a/Test_Info/Form1.Designer.cs b/Test_Info/Form1.Designer.cs new file mode 100644 index 0000000..baab45f --- /dev/null +++ b/Test_Info/Form1.Designer.cs @@ -0,0 +1,118 @@ +namespace Test_Info +{ + partial class Form1 + { + /// + /// Erforderliche Designervariable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Verwendete Ressourcen bereinigen. + /// + /// True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Vom Windows Form-Designer generierter Code + + /// + /// Erforderliche Methode für die Designerunterstützung. + /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. + /// + private void InitializeComponent() + { + this.buttonShowInfo = new System.Windows.Forms.Button(); + this.groupBoxProgramInfo = new System.Windows.Forms.GroupBox(); + this.labelProgramInfo = new System.Windows.Forms.Label(); + this.groupBoxDLLInfo = new System.Windows.Forms.GroupBox(); + this.labelDLLInfo = new System.Windows.Forms.Label(); + this.groupBoxProgramInfo.SuspendLayout(); + this.groupBoxDLLInfo.SuspendLayout(); + this.SuspendLayout(); + // + // buttonShowInfo + // + this.buttonShowInfo.Location = new System.Drawing.Point(12, 287); + this.buttonShowInfo.Name = "buttonShowInfo"; + this.buttonShowInfo.Size = new System.Drawing.Size(776, 23); + this.buttonShowInfo.TabIndex = 0; + this.buttonShowInfo.Text = "Show Information Box"; + this.buttonShowInfo.UseVisualStyleBackColor = true; + this.buttonShowInfo.Click += new System.EventHandler(this.buttonShowInfo_Click); + // + // groupBoxProgramInfo + // + this.groupBoxProgramInfo.Controls.Add(this.labelProgramInfo); + this.groupBoxProgramInfo.Location = new System.Drawing.Point(12, 372); + this.groupBoxProgramInfo.Name = "groupBoxProgramInfo"; + this.groupBoxProgramInfo.Size = new System.Drawing.Size(385, 66); + this.groupBoxProgramInfo.TabIndex = 11; + this.groupBoxProgramInfo.TabStop = false; + this.groupBoxProgramInfo.Text = "Programm Information"; + // + // labelProgramInfo + // + this.labelProgramInfo.AutoSize = true; + this.labelProgramInfo.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.labelProgramInfo.Location = new System.Drawing.Point(7, 20); + this.labelProgramInfo.Name = "labelProgramInfo"; + this.labelProgramInfo.Size = new System.Drawing.Size(16, 13); + this.labelProgramInfo.TabIndex = 0; + this.labelProgramInfo.Text = "..."; + // + // groupBoxDLLInfo + // + this.groupBoxDLLInfo.Controls.Add(this.labelDLLInfo); + this.groupBoxDLLInfo.Location = new System.Drawing.Point(403, 372); + this.groupBoxDLLInfo.Name = "groupBoxDLLInfo"; + this.groupBoxDLLInfo.Size = new System.Drawing.Size(385, 66); + this.groupBoxDLLInfo.TabIndex = 12; + this.groupBoxDLLInfo.TabStop = false; + this.groupBoxDLLInfo.Text = "DLL Information"; + // + // labelDLLInfo + // + this.labelDLLInfo.AutoSize = true; + this.labelDLLInfo.ImeMode = System.Windows.Forms.ImeMode.NoControl; + this.labelDLLInfo.Location = new System.Drawing.Point(7, 20); + this.labelDLLInfo.Name = "labelDLLInfo"; + this.labelDLLInfo.Size = new System.Drawing.Size(16, 13); + this.labelDLLInfo.TabIndex = 0; + this.labelDLLInfo.Text = "..."; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.groupBoxProgramInfo); + this.Controls.Add(this.groupBoxDLLInfo); + this.Controls.Add(this.buttonShowInfo); + this.Name = "Form1"; + this.Text = "Test_InfoBox"; + this.Load += new System.EventHandler(this.Form1_Load); + this.groupBoxProgramInfo.ResumeLayout(false); + this.groupBoxProgramInfo.PerformLayout(); + this.groupBoxDLLInfo.ResumeLayout(false); + this.groupBoxDLLInfo.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonShowInfo; + private System.Windows.Forms.GroupBox groupBoxProgramInfo; + private System.Windows.Forms.Label labelProgramInfo; + private System.Windows.Forms.GroupBox groupBoxDLLInfo; + private System.Windows.Forms.Label labelDLLInfo; + } +} + diff --git a/Test_Info/Form1.cs b/Test_Info/Form1.cs new file mode 100644 index 0000000..7e7fd97 --- /dev/null +++ b/Test_Info/Form1.cs @@ -0,0 +1,141 @@ +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; +using Eugen.ESystem.Windows.Forms; + +namespace Test_Info +{ + public partial class Form1 : Form + { + #region Version und Copyright + // Version und Copyright + string programName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); //Den Programmnamen auslesen + string programVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); + string copyright = GenerateCopyright(); + 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; + } + + private static string CurrentYear() + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + + private static string StartYear() + { + //string startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + //return startYear.Remove(0, startYear.LastIndexOf(" ") + 1); + string startYear = ""; + if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) + { + startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); + while (startYear.StartsWith(" ")) + { + startYear = startYear.Remove(0, 1); + } + startYear = startYear.Remove(startYear.IndexOf(" ")); + return startYear; + } + else + { + DateTime dtn = DateTime.Now; + return dtn.Year.ToString(); + } + } + + private static string GenerateCopyright() + { + string startYear = StartYear(); + string currentYear = CurrentYear(); + + if (startYear == currentYear) + { + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; + } + else + { + //return String.Concat(((AssemblyCopyrightAttribute)attributes[0]).Copyright, "-", currentYear); + return ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace(startYear, String.Concat(startYear, "-", currentYear)); + } + } + #endregion + + #region Programm-Info + /// + /// Contains the name of the program file + /// + public static string ProgramName { set; get; } + + /// + /// Contains the version of the program file + /// + public static string ProgramVersion { set; get; } + + /// + /// Contains the copyright notice + /// + public static string Copyright { set; get; } + + private void SetProgramInfo() + { + //Name, Version und Copyright setzen + ProgramName = programName; + ProgramVersion = programVersion; + Copyright = copyright; + } + #endregion + + public Form1() + { + SetProgramInfo(); + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + labelProgramInfo.Text = String.Concat(ProgramName, "\r\n", ProgramVersion, "\r\n", Copyright); // Zeigt die Programm-Information an + + labelDLLInfo.Text = String.Concat(InfoBox.DllName, "\r\n", InfoBox.DllVersion, "\r\n", InfoBox.Copyright); // Zeigt die DLL-Information an + } + + private void buttonShowInfo_Click(object sender, EventArgs e) + { + string text = "In diesem Bereich wird die komplette Information ausgegeben. Beim Exportieren wird der Inhalt dieses Bereiches auf eine Zeilenlänge von 80 Zeichen formatiert und dann in eine Textdatei exportiert. So kann die Textdatei problemlos auf ein A4 im Hochformat ausgedruckt werden. Zeilenumbrüche und Wagenrückläufe im Text werden erkannt und bei der Formatierung berücksichtigt.\r\nWird der Text oder ein Teil davom markiert und dann exportiert, dann wir der markierte Teil unformatiert exportiert."; + + // + // Diese Zeilen gehört in das Programm kopiert + // + // Aufruf des Informationsfensters + var info = new InfoBox("Meine Info", InfoBox.Icons.Information, "Gesamte Information", "Text selektieren, ist umformatiert exportieren", "Text nicht selektieren, ist formatiert exportiern", "Entscheiden Sie.", text, true); + info.ShowDialog(); + // + // + + var info1 = new InfoBox("Meine Warnung", InfoBox.Icons.Warning, "Alle Probleme", "Gefahr im Anzug!", "Nicht ignorieren!", "Sofort reagiern!", text, true); + info1.ShowDialog(); + + var info2 = new InfoBox("Meine Frage", InfoBox.Icons.Question, "Ist das Korrekt?", "Kann das sein?", "Oder doch nicht?", "Was ist Ihre Meinung?", "Die Export Funktion kann unterdrückt werden, dann sieht das Fenster so aus.", false); + info2.SetSize(400, 300); //Eine neue Fenstergröße definieren + info2.ShowDialog(); + } + } +} diff --git a/Test_Info/Form1.resx b/Test_Info/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Test_Info/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_Info/Program.cs b/Test_Info/Program.cs new file mode 100644 index 0000000..59668e2 --- /dev/null +++ b/Test_Info/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Test_Info +{ + 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_Info/Properties/AssemblyInfo.cs b/Test_Info/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..04778fe --- /dev/null +++ b/Test_Info/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_InfoBox")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Test_InfoBox")] +[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("3683b887-8256-414a-b502-0f6b7088654d")] + +// 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, +// übernehmen, indem Sie "*" eingeben: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.*")] +//[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Test_Info/Properties/Resources.Designer.cs b/Test_Info/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7805d98 --- /dev/null +++ b/Test_Info/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// Dieser Code wurde von einem Tool generiert. +// Laufzeitversion: 4.0.30319.42000 +// +// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn +// der Code neu generiert wird. +// +//------------------------------------------------------------------------------ + +namespace Test_Info.Properties +{ + + + /// + /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. + /// + // Diese Klasse wurde von der StronglyTypedResourceBuilder-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 Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 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 ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Test_Info.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + /// Ressourcenlookups, 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; + } + } + } +} diff --git a/Test_Info/Properties/Resources.resx b/Test_Info/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Test_Info/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Test_Info/Properties/Settings.Designer.cs b/Test_Info/Properties/Settings.Designer.cs new file mode 100644 index 0000000..30ed4a9 --- /dev/null +++ b/Test_Info/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Test_Info.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.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/Test_Info/Properties/Settings.settings b/Test_Info/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Test_Info/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Test_Info/Test_InfoBox.csproj b/Test_Info/Test_InfoBox.csproj new file mode 100644 index 0000000..e419f75 --- /dev/null +++ b/Test_Info/Test_InfoBox.csproj @@ -0,0 +1,89 @@ + + + + + Debug + AnyCPU + {3683B887-8256-414A-B502-0F6B7088654D} + WinExe + Test_Info + Test_Info + v4.6.1 + 512 + true + false + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + {e23aff77-ebf4-4966-b3e4-a49fc6ce92c7} + InfoBox + + + + \ No newline at end of file