From bb5f74b02cefcd47fbdaadc6d3b67426947666cd Mon Sep 17 00:00:00 2001 From: JenneJ Date: Wed, 16 Mar 2016 16:48:19 +0100 Subject: [PATCH] jj 16.03 hints --- .../ClassControlBuilder.vb | 81 +++++++------------ .../ClassControlCommands.vb | 14 +++- .../ClassControlProperties.vb | 12 +++ .../ClassControlValueCache.vb | 14 ++++ app/DD-Record-Organiser/ClassControlValues.vb | 22 +++++ .../Strings/ControlProperties.Designer.vb | 9 +++ .../Strings/ControlProperties.en.resx | 3 + .../Strings/ControlProperties.resx | 3 + .../frmConstructor_Main.Designer.vb | 10 ++- .../frmConstructor_Main.resx | 15 +++- .../frmConstructor_Main.vb | 18 ++++- app/DD-Record-Organiser/frmForm_Input.vb | 6 +- app/DD-Record-Organiser/frmLevel_Designer.vb | 7 +- app/DD-Record-Organiser/frmQuickEdit.vb | 7 +- .../frmTool_ControlProperties.vb | 14 ++-- 15 files changed, 163 insertions(+), 72 deletions(-) diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb index 7686fd6..13cf113 100644 --- a/app/DD-Record-Organiser/ClassControlBuilder.vb +++ b/app/DD-Record-Organiser/ClassControlBuilder.vb @@ -10,8 +10,9 @@ Public Class ClassControlBuilder Private _mouse_move_handler As MouseEventHandler Private _mouse_click_handler As EventHandler Private _group_box_drag_drop_handler As DragEventHandler - Private _tool_tip As ToolTip + Private _tool_tip_handler As EventHandler Private _onRecordChangedName As String = "OnRecordChanged" + Private _onMouseHoverName As String = "OnMouseHover" Private _events As System.ComponentModel.EventHandlerList = Nothing Protected ReadOnly Property Events() As System.ComponentModel.EventHandlerList @@ -38,6 +39,20 @@ Public Class ClassControlBuilder End RaiseEvent End Event + Public Custom Event OnMouseHover As EventHandler + AddHandler(value As EventHandler) + Me.Events.AddHandler(_onMouseHoverName, value) + End AddHandler + + RemoveHandler(value As EventHandler) + Me.Events.RemoveHandler(_onMouseHoverName, value) + End RemoveHandler + + RaiseEvent(sender As Object, e As EventArgs) + CType(Me.Events(_onMouseHoverName), EventHandler).Invoke(sender, e) + End RaiseEvent + End Event + ' ================================================================================== ' Handler für alle Controls ' ================================================================================== @@ -58,6 +73,15 @@ Public Class ClassControlBuilder onRecordChangedHandler.Invoke(sender, e) End If End Sub + + Public Sub MouseHover(sender As Object, e As EventArgs) + Dim onMouseHoverHandler As EventHandler = CType(Me.Events(_onMouseHoverName), EventHandler) + + If onMouseHoverHandler IsNot Nothing Then + onMouseHoverHandler.Invoke(sender, e) + End If + End Sub + Public Sub OnTextBoxFocus(sender As Object, ByVal e As EventArgs) Dim box As TextBox = sender box.BackColor = Color.LemonChiffon @@ -187,6 +211,9 @@ Public Class ClassControlBuilder Dim type As String = control.GetType().Name Dim eventArgs As New System.EventArgs + ' Hover Handler gilt für alle Controls + AddHandler control.MouseHover, AddressOf MouseHover + Select Case type Case "TextBox" Dim textbox As TextBox = CType(control, TextBox) @@ -228,47 +255,6 @@ Public Class ClassControlBuilder End Select End Sub - 'Private Function GetAllItems(dgv As DataGridView) As List(Of String) - ' Dim list As New List(Of String) - - ' For Each row As DataGridViewRow In dgv.Rows - ' Dim cell As DataGridViewCell = row.Cells(0) - ' If Not IsNothing(cell.Value) Then - ' list.Add(cell.Value) - ' End If - ' Next - - ' Return list - 'End Function - - 'Private Sub SaveAllItems(controlId As Integer, items As String) - ' Try - ' Dim SQL As String = String.Format("UPDATE TBPMO_CONTROL SET STATIC_LIST='{0}' WHERE GUID = {1}", items, controlId) - ' ClassDatabase.Execute_non_Query(SQL) - ' Catch ex As Exception - ' MsgBox("Error in SaveAllItems:" & vbNewLine & ex.Message) - ' End Try - 'End Sub - - 'Private Sub UserDeletingRow(ByVal sender As Object, ByVal e As DataGridViewRowCancelEventArgs) - ' Dim dgv As DataGridView = DirectCast(sender, DataGridView) - ' Dim id As Integer = DirectCast(dgv.Tag, ClassControlMetadata).Id - ' Dim list As List(Of String) = GetAllItems(dgv) - ' list.RemoveAt(e.Row.Index) - ' Dim items As String = String.Join(";", list.ToArray()) - - ' SaveAllItems(id, items) - 'End Sub - - 'Private Sub CellEndEdit(ByVal sender As Object, e As DataGridViewCellEventArgs) - ' Dim dgv As DataGridView = DirectCast(sender, DataGridView) - ' Dim id As Integer = DirectCast(dgv.Tag, ClassControlMetadata).Id - ' Dim list As List(Of String) = GetAllItems(dgv) - ' Dim items As String = String.Join(";", list.ToArray()) - - ' SaveAllItems(id, items) - 'End Sub - Private Sub SetDragDropHandler(groupbox As GroupBox) If Not IsNothing(_group_box_drag_drop_handler) Then AddHandler groupbox.DragDrop, Me._group_box_drag_drop_handler @@ -378,8 +364,7 @@ Public Class ClassControlBuilder MouseUpHandler As MouseEventHandler, MouseMoveHandler As MouseEventHandler, MouseClickHandler As EventHandler, - GroupBoxDragDropHandler As DragEventHandler, - ToolTipControl As ToolTip) + GroupBoxDragDropHandler As DragEventHandler) Me._master_panel = MasterPanel Me._mouse_down_handler = MouseDownHandler @@ -387,14 +372,10 @@ Public Class ClassControlBuilder Me._mouse_move_handler = MouseMoveHandler Me._mouse_click_handler = MouseClickHandler Me._group_box_drag_drop_handler = GroupBoxDragDropHandler - - Me._tool_tip = ToolTipControl End Sub - Public Sub New(MasterPanel As Panel, - ToolTipControl As ToolTip) + Public Sub New(MasterPanel As Panel) Me._master_panel = MasterPanel - Me._tool_tip = ToolTipControl End Sub ' +++ Public Properties +++ @@ -1399,8 +1380,6 @@ Public Class ClassControlBuilder control.TabStop = False control.Image = My.Resources.add1 - _tool_tip.SetToolTip(control, text) - If _new And IsNothing(parent) Then control.Location = Me.GetCursorPosition() control.Size = defaultSize diff --git a/app/DD-Record-Organiser/ClassControlCommands.vb b/app/DD-Record-Organiser/ClassControlCommands.vb index f5f6e6b..173d401 100644 --- a/app/DD-Record-Organiser/ClassControlCommands.vb +++ b/app/DD-Record-Organiser/ClassControlCommands.vb @@ -314,6 +314,7 @@ Dim FONT_SIZE As Integer Dim FONT_STYLE As Integer Dim BACK_COLOR As Integer + Dim HINT As String = properties.Hint X_LOC = properties.Location.X Y_LOC = properties.Location.Y @@ -366,8 +367,9 @@ SQL = "UPDATE TBPMO_CONTROL_SCREEN SET TAB_INDEX = " & TAB_INDEX & ", TAB_STOP = " & TAB_STOP & ", X_LOC = " & X_LOC & ", Y_LOC = " & Y_LOC & ", HEIGHT = " & HEIGHT & ", WIDTH = " & WIDTH & ", CONTROL_TEXT = '" & CONTROL_TEXT & "', CHANGED_WHO = '" & CHANGED_WHO & "', FONT_COLOR = " & FONT_COLOR & ", FONT_SIZE = " & FONT_SIZE & ", FONT_STYLE = " & FONT_STYLE & ", FONT_FAMILY = '" & FONT_FAMILY & "' , BACK_COLOR = " & BACK_COLOR & " WHERE CONTROL_ID = " & CURRENT_CONTROL_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID If ClassDatabase.Execute_non_Query(SQL) = True Then - Dim upd = String.Format("UPDATE TBPMO_CONTROL_LANGUAGE SET CAPTION = '{0}' WHERE LANGUAGE_TYPE = '{1}' AND " & _ - "CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & CURRENT_CONTROL_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID & " AND LANGUAGE_TYPE = '" & USER_LANGUAGE & "')", CONTROL_TEXT, USER_LANGUAGE) + Dim upd = String.Format("UPDATE TBPMO_CONTROL_LANGUAGE SET CAPTION = '{0}', HINT = '{1}' WHERE LANGUAGE_TYPE = '{2}' AND " & _ + "CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = " & _ + CURRENT_CONTROL_ID & " AND SCREEN_ID = " & CURRENT_SCREEN_ID & ")", CONTROL_TEXT, HINT, USER_LANGUAGE) ClassDatabase.Execute_non_Query(upd, True) If CurrentType.Contains("Button") Then 'If control.Tag = "ADDAPPOINTMENT" Then @@ -432,6 +434,12 @@ ClassFunctionCommands.UpdateAddFormDataFunction(ControlId, FormID, ScreenID) End If End If + + + + + + Return True Else Throw New Exception() @@ -523,7 +531,7 @@ Else Throw New Exception() End If - + Catch ex As Exception ClassLogger.Add("Unexpected Error in DeleteControlScreen: " & ex.Message, True) MsgBox("Unexpected Error in DeleteControlScreen:" + vbNewLine + ex.Message, MsgBoxStyle.Critical) diff --git a/app/DD-Record-Organiser/ClassControlProperties.vb b/app/DD-Record-Organiser/ClassControlProperties.vb index 8351aca..74fae67 100644 --- a/app/DD-Record-Organiser/ClassControlProperties.vb +++ b/app/DD-Record-Organiser/ClassControlProperties.vb @@ -37,6 +37,18 @@ Module ClassControlProperties Private _size As Size Private _location As Point Private _name As String + Private _hint As String + + + + Public Property Hint() As String + Get + Return _hint + End Get + Set(value As String) + _hint = value + End Set + End Property diff --git a/app/DD-Record-Organiser/ClassControlValueCache.vb b/app/DD-Record-Organiser/ClassControlValueCache.vb index fa6ed57..76af977 100644 --- a/app/DD-Record-Organiser/ClassControlValueCache.vb +++ b/app/DD-Record-Organiser/ClassControlValueCache.vb @@ -28,4 +28,18 @@ Cache.Clear() End Sub + ' ========================================================================================= + + Private Shared Property HintCache As New Dictionary(Of Integer, String) + Public Shared Function LoadHint(controlId As Integer) As String + If HintCache.ContainsKey(controlId) Then + Return HintCache.Item(controlId) + Else + Return Nothing + End If + End Function + + Public Shared Sub SaveHint(controlId As Integer, hint As String) + HintCache.Item(controlId) = hint + End Sub End Class diff --git a/app/DD-Record-Organiser/ClassControlValues.vb b/app/DD-Record-Organiser/ClassControlValues.vb index 348c2e9..1aee4c1 100644 --- a/app/DD-Record-Organiser/ClassControlValues.vb +++ b/app/DD-Record-Organiser/ClassControlValues.vb @@ -155,6 +155,9 @@ Public Class ClassControlValues ' Zuerst alle Controls leeren ClearControlValues(controls) + ' Load all Hints for controls + LoadControlHints(controls) + For Each control As Control In controls Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id @@ -178,6 +181,23 @@ Public Class ClassControlValues End Sub + Private Shared Sub LoadControlHints(controls As Control.ControlCollection) + + For Each c As Control In controls + Dim id As Integer = DirectCast(c.Tag, ClassControlMetadata).Id + + Dim sql As String = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = 1) AND LANGUAGE_TYPE = '{1}' AND HINT IS NOT NULL", id, USER_LANGUAGE) + Dim hint = ClassDatabase.Execute_Scalar(sql) + + If IsNothing(hint) Then + Continue For + End If + + ClassControlValueCache.SaveHint(id, hint.ToString) + Next + + End Sub + Private Shared Sub LoadControlValue(recordId As Integer, parentRecordId As Integer, controlId As Integer, control As Control, values As List(Of Object)) Try ' Für die meisten Controls wird nur das erste Element der Liste benötigt @@ -187,6 +207,8 @@ Public Class ClassControlValues value = values.Item(0) End If + + Select Case control.GetType() Case GetType(TextBox) If LogErrorsOnly = False Then ClassLogger.Add(">> Sub LoadControlValueNeu - GetType(TextBox) ", False) diff --git a/app/DD-Record-Organiser/Strings/ControlProperties.Designer.vb b/app/DD-Record-Organiser/Strings/ControlProperties.Designer.vb index 0fdf080..23585a1 100644 --- a/app/DD-Record-Organiser/Strings/ControlProperties.Designer.vb +++ b/app/DD-Record-Organiser/Strings/ControlProperties.Designer.vb @@ -235,6 +235,15 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Der Text, der beim überfahren des Controls angezeigt wird ähnelt. + ''' + Friend Shared ReadOnly Property desc_hint() As String + Get + Return ResourceManager.GetString("desc_hint", resourceCulture) + End Get + End Property + ''' ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die eindeutige ID des Elements an. ähnelt. ''' diff --git a/app/DD-Record-Organiser/Strings/ControlProperties.en.resx b/app/DD-Record-Organiser/Strings/ControlProperties.en.resx index 2d13d09..675fb42 100644 --- a/app/DD-Record-Organiser/Strings/ControlProperties.en.resx +++ b/app/DD-Record-Organiser/Strings/ControlProperties.en.resx @@ -174,6 +174,9 @@ The appointment's start-date. Dynamic values from other controls can be inserted with the syntax [%controlname]. + + The text that will be shown when the control is hovered over + The element's unique identifier. diff --git a/app/DD-Record-Organiser/Strings/ControlProperties.resx b/app/DD-Record-Organiser/Strings/ControlProperties.resx index 55ec142..bbbbcdd 100644 --- a/app/DD-Record-Organiser/Strings/ControlProperties.resx +++ b/app/DD-Record-Organiser/Strings/ControlProperties.resx @@ -174,6 +174,9 @@ Der Name eines Elements von dem das End-Datum gelesen wird. + + Der Text, der beim überfahren des Controls angezeigt wird + Gibt die eindeutige ID des Elements an. diff --git a/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb b/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb index 455120f..d01ea5d 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.Designer.vb @@ -136,6 +136,7 @@ Partial Class frmConstructor_Main Me.VWPMO_WF_ACTIVEBindingSource = New System.Windows.Forms.BindingSource(Me.components) Me.VWPMO_WF_ACTIVETableAdapter = New DD_Record_Organiser.DD_DMSDataSetTableAdapters.VWPMO_WF_ACTIVETableAdapter() Me.TBPMO_FILES_USERBindingSource = New System.Windows.Forms.BindingSource(Me.components) + Me.ToolTipController = New DevExpress.Utils.ToolTipController(Me.components) CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainerMain.SuspendLayout() CType(Me.SplitContainerTop, System.ComponentModel.ISupportInitialize).BeginInit() @@ -1009,11 +1010,8 @@ Partial Class frmConstructor_Main Friend WithEvents NavPane As DevExpress.XtraBars.Navigation.TileNavPane Friend WithEvents NavButtonHome As DevExpress.XtraBars.Navigation.NavButton Friend WithEvents StatusStrip_Main As System.Windows.Forms.StatusStrip - Friend WithEvents SplitContainerMain As DevExpress.XtraEditors.SplitContainerControl - Friend WithEvents SplitContainerTop As DevExpress.XtraEditors.SplitContainerControl Friend WithEvents TreeViewMain As System.Windows.Forms.TreeView Friend WithEvents GridControlMain As DevExpress.XtraGrid.GridControl - Friend WithEvents SplitContainerBottom As DevExpress.XtraEditors.SplitContainerControl Friend WithEvents grvwTiles As DevExpress.XtraGrid.Views.Tile.TileView Friend WithEvents grvwGrid As DevExpress.XtraGrid.Views.Grid.GridView Friend WithEvents tsslblStatus As System.Windows.Forms.ToolStripStatusLabel @@ -1034,7 +1032,6 @@ Partial Class frmConstructor_Main Friend WithEvents ButtonSetViewAsDefault As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator Friend WithEvents grvwCarousel As DevExpress.XtraGrid.Views.Layout.LayoutView - Friend WithEvents ImageCollection1 As DevExpress.Utils.ImageCollection Friend WithEvents ToolStripEdit As System.Windows.Forms.ToolStrip Friend WithEvents tsButtonAdd As System.Windows.Forms.ToolStripButton Friend WithEvents tsButtonSave As System.Windows.Forms.ToolStripButton @@ -1115,4 +1112,9 @@ Partial Class frmConstructor_Main Friend WithEvents ToolStripSeparator4 As System.Windows.Forms.ToolStripSeparator Friend WithEvents ToolStripSeparator5 As System.Windows.Forms.ToolStripSeparator Friend WithEvents AnwendungscacheFreigebenToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents SplitContainerMain As DevExpress.XtraEditors.SplitContainerControl + Friend WithEvents SplitContainerTop As DevExpress.XtraEditors.SplitContainerControl + Friend WithEvents SplitContainerBottom As DevExpress.XtraEditors.SplitContainerControl + Friend WithEvents ImageCollection1 As DevExpress.Utils.ImageCollection + Friend WithEvents ToolTipController As DevExpress.Utils.ToolTipController End Class diff --git a/app/DD-Record-Organiser/frmConstructor_Main.resx b/app/DD-Record-Organiser/frmConstructor_Main.resx index 51c12b8..1900d48 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.resx +++ b/app/DD-Record-Organiser/frmConstructor_Main.resx @@ -132,7 +132,7 @@ 0, 0 - 17, 93 + 1693, 54 194, 22 @@ -1002,7 +1002,7 @@ 0 - 124, 93 + 17, 93 @@ -1674,11 +1674,14 @@ 1222, 54 + + 1465, 15 + True - 150 + 104 6, 13 @@ -2567,6 +2570,12 @@ System.Windows.Forms.BindingSource, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ToolTipController + + + DevExpress.Utils.ToolTipController, DevExpress.Utils.v15.1, Version=15.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a + frmConstructor_Main diff --git a/app/DD-Record-Organiser/frmConstructor_Main.vb b/app/DD-Record-Organiser/frmConstructor_Main.vb index 52dace8..1278ce8 100644 --- a/app/DD-Record-Organiser/frmConstructor_Main.vb +++ b/app/DD-Record-Organiser/frmConstructor_Main.vb @@ -971,7 +971,7 @@ Public Class frmConstructor_Main FORMVIEW_ID = frmview_id ENTITY_ID = ClassDatabase.Execute_Scalar("SELECT FORM_ID FROM TBPMO_FORM_VIEW WHERE GUID = " & frmview_id) - CtrlBuilder = New ClassControlBuilder(pnlDetails, ttToolTip) + CtrlBuilder = New ClassControlBuilder(pnlDetails) 'LoadControls(thisFormId) CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder, ContextMenuDetails, @@ -982,6 +982,22 @@ Public Class frmConstructor_Main ' pnlDetails.Enabled = False AddHandler CtrlBuilder.OnRecordChanged, AddressOf OnRecordChanged + AddHandler CtrlBuilder.OnMouseHover, AddressOf HandleToolTip + End Sub + + Private Sub HandleToolTip(sender As Object, e As EventArgs) + Dim control As Control = DirectCast(sender, Control) + Dim id As Integer = DirectCast(control.Tag, ClassControlMetadata).Id + + Dim hint = ClassControlValueCache.LoadHint(id) + If Not IsNothing(hint) Then + 'show hint + Console.WriteLine("Showing hint: " & hint) + ToolTipController.ShowHint(hint.ToString, ToolTipLocation.RightCenter) + Else + ToolTipController.HideHint() + End If + End Sub Private Sub OnRecordChanged(sender As Object, e As System.EventArgs) diff --git a/app/DD-Record-Organiser/frmForm_Input.vb b/app/DD-Record-Organiser/frmForm_Input.vb index d78091b..3d8ee16 100644 --- a/app/DD-Record-Organiser/frmForm_Input.vb +++ b/app/DD-Record-Organiser/frmForm_Input.vb @@ -66,7 +66,7 @@ Public Class frmFormInput thisformid = CURRENT_FORM_ID Me.VWPMO_CONTROL_SCREENTableAdapter.Fill(Me.DD_DMSDataSet.VWPMO_CONTROL_SCREEN, thisformid) - CtrlBuilder = New ClassControlBuilder(pnlView, ttTooltip) + CtrlBuilder = New ClassControlBuilder(pnlView) CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder, ContextMenuStrip1, AddressOf NewEditAppointment, @@ -86,6 +86,10 @@ Public Class frmFormInput End Try End Sub + + Private Sub HandleToolTip(sender As Object, e As EventArgs) + Console.WriteLine("show tooltip") + End Sub #End Region #Region "+++++ Layout +++++" diff --git a/app/DD-Record-Organiser/frmLevel_Designer.vb b/app/DD-Record-Organiser/frmLevel_Designer.vb index 347efbf..e782002 100644 --- a/app/DD-Record-Organiser/frmLevel_Designer.vb +++ b/app/DD-Record-Organiser/frmLevel_Designer.vb @@ -247,8 +247,7 @@ AddressOf Control_MouseUp, AddressOf Control_MouseMove, AddressOf Control_Click, - AddressOf Groupbox_DragDrop, - ttTooltip) + AddressOf Groupbox_DragDrop) If ClassDatabase.Init = True Then LoadFormProperties() @@ -256,6 +255,10 @@ End If End Sub + + Private Sub HandleToolTip(sender As Object, e As EventArgs) + Console.WriteLine("show tooltip") + End Sub #End Region #Region "+++++ Load Funktionen +++++" diff --git a/app/DD-Record-Organiser/frmQuickEdit.vb b/app/DD-Record-Organiser/frmQuickEdit.vb index 4a3e23b..90be88c 100644 --- a/app/DD-Record-Organiser/frmQuickEdit.vb +++ b/app/DD-Record-Organiser/frmQuickEdit.vb @@ -69,8 +69,7 @@ Public Class frmQuickEdit AddressOf Control_MouseUp, AddressOf Control_MouseMove, AddressOf Control_Click, - AddressOf Groupbox_DragDrop, - ttTooltip) + AddressOf Groupbox_DragDrop) CtrlCommandUI = New ClassControlCommandsUI(CtrlBuilder, ContextMenuStrip1, @@ -95,6 +94,10 @@ Public Class frmQuickEdit End Sub + + Private Sub HandleToolTip(sender As Object, e As EventArgs) + Console.WriteLine("show tooltip") + End Sub #End Region #Region "+++++ Layout +++++" diff --git a/app/DD-Record-Organiser/frmTool_ControlProperties.vb b/app/DD-Record-Organiser/frmTool_ControlProperties.vb index 713fc9c..4d8af5f 100644 --- a/app/DD-Record-Organiser/frmTool_ControlProperties.vb +++ b/app/DD-Record-Organiser/frmTool_ControlProperties.vb @@ -25,16 +25,21 @@ Public Sub LoadControlPropertiesNeu(ctrl As Control) Try - Dim TagID = DirectCast(ctrl.Tag, ClassControlMetadata).Id - Dim sql As String = String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", DirectCast(ctrl.Tag, ClassControlMetadata).Id) + + Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id + Dim sql As String = String.Format("SELECT * FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", ControlId) + 'Dim sqlHint As String = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = {0} AND LANGUAGE_TYPE = '{1}'", controlId, USER_LANGUAGE) + Dim sqlHint = String.Format("SELECT HINT FROM TBPMO_CONTROL_LANGUAGE WHERE CONTROL_SCREEN_ID = (SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = {1}) AND LANGUAGE_TYPE = '{2}'", controlId, CURRENT_SCREEN_ID, USER_LANGUAGE) Dim dt As DataTable = ClassDatabase.Return_Datatable(sql) + Dim hint As String = ClassConverter.ToStringOrDefault(ClassDatabase.Execute_Scalar(sqlHint), Nothing) + Dim props As Object = Nothing Dim r As DataRow = Nothing Dim type As String = Nothing If dt.Rows.Count <> 1 Then - MsgBox("Unexpected behaviour in LoadControlProperties: No Control could be loaded!" & vbNewLine & "Tag.ControlID: " & TagID.ToString, MsgBoxStyle.Exclamation) + MsgBox("Unexpected behaviour in LoadControlProperties: No Control could be loaded!" & vbNewLine & "Tag.ControlID: " & ControlId.ToString, MsgBoxStyle.Exclamation) Exit Sub End If @@ -63,6 +68,7 @@ props.Name = r.Item("CONTROL_NAME") props.Size = New Size(r.Item("CTRLSCR_WIDTH"), r.Item("CTRLSCR_HEIGHT")) props.Location = New Point(r.Item("CTRLSCR_X_LOC"), r.Item("CTRLSCR_Y_LOC")) + props.Hint = hint 'Control-spezifische Properties laden Select Case type @@ -191,7 +197,6 @@ Case "F_AddAppointment" props.Caption() = r.Item("CTRLSCR_CAPTION") - Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id Dim f = ClassFunctionCommands.LoadFunction(controlId) Dim FromDateId, ToDateId, SubjectString, Subject2String, PlaceString, DescString @@ -241,7 +246,6 @@ Case "F_AddFormData" props.Caption = r.Item("CTRLSCR_CAPTION") - Dim controlId = DirectCast(ctrl.Tag, ClassControlMetadata).Id Dim f = ClassFunctionCommands.LoadFunction(controlId) Dim FormId = f.Item("INTEGER1")