Mit diesem Script kann die Farbe des Cursors geändert werden. Es kann ausgewählt werden für welches Farbschema, welche Farbe gesetzt wird.

Zusätzlich kann die Farbe auch zurückgesetzt werden. Hierfür einfach auf die Farbe des gewünschten Schemas klicken.

Es wird ein neuer Menüpunkt unter Ansicht > Cursor-Farbe setzen… erzeugt.

Das Farbschema könnt ihr in den Einstellungen festlegen:

Vielen Dank an Nairolf für die Umsetzung. Ich hab nur die GUI dafür gebaut.

Man bemerke das schöne pinke Fadenkreuz  :w00t:

 

SetCursorColor (71)

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
/*
 * SetCursorColor
 *
 * Cursor-Farbe je EPLAN-Farbscheme benutzerdefiniert setzen.
 *
 * ~~~~~~~~~~~~~~~~~ Changelog ~~~~~~~~~~~~~~~~~
 * 2011-07-18   Nairolf     Programmerstellung
 * 2011-08-07   Jonny Wire  Erweiterung um GUI
 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
 
using System;
using System.Drawing;
using System.Windows.Forms;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;
 
public partial class frmSetCursorColor : System.Windows.Forms.Form
{
    #region Variable
    private ColorDialog cd;
    private Settings oSettings = new Settings();
    private Button btnReset;
    private PictureBox pbWhite;
    private PictureBox pbGray;
    private PictureBox pbBlack;
    private Label lblWhite;
    private Label lblGray;
    private Label lblBlack;
    private Button btnClose;
    private bool bColorChanged = false;
    private Color cSetting = new Color();
    #endregion
 
    # region Action
    [DeclareAction("SetCursorColor")]
    public void Function()
    {
        frmSetCursorColor fSetCursorColor = new frmSetCursorColor();
        fSetCursorColor.ShowDialog();
 
        return;
    }
 
    private void SetCursorSetting(string Schema)
    {
        // Set color to setting
        if (cd.ShowDialog() == DialogResult.OK)
        {
            oSettings.SetNumericSetting("USER.GedViewer.ColorSchema." + Schema + ".Cursor.Red", cd.Color.R, 0);
            oSettings.SetNumericSetting("USER.GedViewer.ColorSchema." + Schema + ".Cursor.Green", cd.Color.G, 0);
            oSettings.SetNumericSetting("USER.GedViewer.ColorSchema." + Schema + ".Cursor.Blue", cd.Color.B, 0);
 
            // Set color to preview
            switch (Schema)
            {
                case "White":
                    pbWhite.BackColor = cd.Color;
                    break;
                case "Gray":
                    pbGray.BackColor = cd.Color;
                    break;
                case "Black":
                    pbBlack.BackColor = cd.Color;
                    break;
            }
 
            bColorChanged = true;
        }
    }
 
    private void btnReset_Click(object sender, EventArgs e)
    {
        // Set default colors
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.White.Cursor.Red", 128, 0);
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.White.Cursor.Green", 128, 0);
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.White.Cursor.Blue", 128, 0);
        pbWhite.BackColor = Color.FromArgb(128, 128, 128);
 
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.Gray.Cursor.Red", 192, 0);
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.Gray.Cursor.Green", 0, 0);
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.Gray.Cursor.Blue", 0, 0);
        pbGray.BackColor = Color.FromArgb(192, 0, 0);
 
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.Black.Cursor.Red", 255, 0);
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.Black.Cursor.Green", 255, 0);
        oSettings.SetNumericSetting("USER.GedViewer.ColorSchema.Black.Cursor.Blue", 255, 0);
        pbBlack.BackColor = Color.FromArgb(255, 255, 255);
 
        bColorChanged = true;
    }
 
    private void pbWhite_Click(object sender, EventArgs e)
    {
        SetCursorSetting("White");
    }
 
    private void pbGray_Click(object sender, EventArgs e)
    {
        SetCursorSetting("Gray");
    }
 
    private void pbBlack_Click(object sender, EventArgs e)
    {
        SetCursorSetting("Black");
    }
 
    private void btnClose_Click(object sender, EventArgs e)
    {
        this.Close();
    }
 
    private void frmSetCursorColor_Load(object sender, EventArgs e)
    {
        // Load colors from settings
        // Wthite
        cSetting = Color.FromArgb(
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.White.Cursor.Red", 0),
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.White.Cursor.Green", 0),
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.White.Cursor.Blue", 0));
        pbWhite.BackColor = cSetting;
        // Gray
        cSetting = Color.FromArgb(
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.Gray.Cursor.Red", 0),
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.Gray.Cursor.Green", 0),
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.Gray.Cursor.Blue", 0));
        pbGray.BackColor = cSetting;
        // Black
        cSetting = Color.FromArgb(
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.Black.Cursor.Red", 0),
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.Black.Cursor.Green", 0),
            oSettings.GetNumericSetting("USER.GedViewer.ColorSchema.Black.Cursor.Blue", 0));
        pbBlack.BackColor = cSetting;
    }
 
    private void frmSetCursorColor_FormClosed(object sender, FormClosedEventArgs e)
    {
        // Check if color changed
        if (bColorChanged)
        {
            MessageBox.Show("Cursor-Farbschema geändert.\n"
            + "EPLAN muß neu gestartet werden damit die neue Einstellung übernommen wird.",
            "SetCursorColor", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
    #endregion
 
    #region Menü
    [DeclareMenu]
    public void MenuFunction()
    {
        Eplan.EplApi.Gui.Menu oMenu = new Eplan.EplApi.Gui.Menu();
        oMenu.AddMenuItem
            (
            "Cursor-Farbe setzen...",
            "SetCursorColor",
            "Cursor-Farbe für verschiedene Farbschema setzen",
            35178,
            1,
            false,
            false
            );
    }
    #endregion
}