דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
pcinfogmachP

pcinfogmach

@pcinfogmach
הפסקת מעקב מעקב

הפורום כעת לקריאה בלבד, לקריאה נוספת.

אודות
פוסטים
820
נושאים
202
שיתופים
0
קבוצות
0
עוקבים
3
עוקב אחרי
1

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • טעינה איטית של combobox מרובה פריטים ב-wpf - לא עוד!
    pcinfogmachP pcinfogmach
    תכנות

    לאחר שיצאתי מתוסכל מהטעינה האיטית של הפקד cmbobox כאשר יש בו הרבה פריטים חפרתי קצת ומצאתי פתרון
    מצו"ב הלינק
    https://stackoverflow.com/a/8834289


  • איך ליצר קיצור מקשים בוורד עבור קודים ב-C# VSTO
    pcinfogmachP pcinfogmach
    תכנות

    יש כמה דרכים לעשות זאת כאן אכתוב את הבסיס איך לעשות זאת על ידי הוספת קוד vba('רך אחרת תוכלו לראות פה)

    אפשר לשכלל את זה כמובן אני רק כותב את הבסיס שאם מישהו יצטרך שלא יתחיל מאפס

    1. יצירת קלאס ב-C#: בקוד C# יש ליצור class ולהוסיף לו את התג ComVisible(true) כדי לאפשר ל-Microsoft Office לגשת אליו דרך COM. לשם הדוגמה בתוך הקלאס נגדיר פונקציה פשוטה בשם GetNumber שמחזירה את המספר 42.
     [ComVisible(true)]
     public class MyManagedFunctions
     {
         public int GetNumber()
         {
             return 42;
         }
     }
    
    1. קוד עבור ה-startup של התוסף: בקוד ה-C# הוא נכתב תחת אירוע ה-startup של התוסף. בעת ה-startup, הקוד מפעיל את הפונקציה RegisterCallback עם אינסטנס של ה-class שנוצר בצעד הקודם. בנוסף, הקוד מצריך תגובה לאירוע של פתיחת מסמך חדש (DocumentOpen). כאשר מסמך נפתח, הקוד מפעיל פונקציה נוספת (Application_DocumentOpen) בו אפשר לקרוא לקודים של המאקרו דלהלן שאחראיים על חיבור או הסרת הקיצורי מקשים לפונקציה.
     private void ThisAddIn_Startup(object sender, System.EventArgs e)
     {
         this.Application.Run("RegisterCallback", new MyManagedFunctions());
         
         this.Application.DocumentOpen += Application_DocumentOpen; 
     }
    
     private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc)
     {
         //this.Application.Run("AssignShortcut");  // Run the VBA macro to assign the shortcut
         //this.Application.Run("RemoveShortcut");  // Run the VBA macro to remove the shortcut
         this.Application.DocumentOpen -= Application_DocumentOpen;
     }
    
    1. קוד בשביל ה-מאקרו VBA: הקוד ב-VBA מגיב לפעולות של המשתמש בתוכניות כמו Word. הוא כולל כמה פונקציות:
      RegisterCallback שמקבלת אובייקט ומגדירה אותו למשתנה managedObject,
      ו-GetNumberFromVSTO שמפעילה את הפונקציה GetNumber מה-C# ומציגה את התוצאה ב-MessageBox.
      יש גם פונקציות להקצאת קיצורי מקלדת (AssignShortcut ו-RemoveShortcut) ופונקציה (RemoveAllShortcuts) להסרת כל הקיצורי מקלדת.
      ו- ShowAllShortcutKeys - למקרה ששחכתם מה עשיתם בעבר
    Dim managedObject As Object
    
    Public Sub RegisterCallback(callback As Object)
        Set managedObject = callback
    End Sub
    
    Public Function GetNumberFromVSTO() As Integer
        GetNumberFromVSTO = managedObject.GetNumber()
        MsgBox "The number is " & GetNumberFromVSTO
    End Function
    
    Sub CallVstoFunction()
    Call GetNumberFromVSTO
    End Sub
    
    Public Sub AssignShortcut()
        ' Assign Ctrl+Shift+Q to CallVstoFunction
        CustomizationContext = NormalTemplate
        KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeyShift, wdKeyQ), _
                        KeyCategory:=wdKeyCategoryMacro, _
                        Command:="CallVstoFunction"
    End Sub
    
    Public Sub RemoveShortcut()
        ' Remove the shortcut key assignment for CallVstoFunction
        Dim keyBinding As keyBinding
        For Each keyBinding In KeyBindings
            If keyBinding.Command = "Normal.Module1.CallVstoFunction" Then
                keyBinding.Clear
            End If
        Next keyBinding
    End Sub
    
    Public Sub RemoveAllShortcuts()
        ' Remove the shortcut key assignment
         CustomizationContext = NormalTemplate
        KeyBindings.ClearAll
    End Sub
    
    Sub ShowAllShortcutKeys()
        Dim keyBinding As keyBinding
        Dim msg As String
        
        msg = "Currently assigned shortcut keys:" & vbCrLf
        
        For Each keyBinding In Application.KeyBindings
            msg = msg & "Command: " & keyBinding.Command & ", Key: " & keyBinding.KeyString & vbCrLf
        Next keyBinding
        
        MsgBox msg
    End Sub
    

    לפעמים צריך להתחיל את וורד מחדש כדי שהקודים 'ייתפסו'


  • מאוורר שהתחיל להסתובב לאט - מה עושים
    pcinfogmachP pcinfogmach
    מכשירים ביתיים

    @אף-אחד-3
    כל מילה בסלע!
    רק רציתי להוסיף שהרבה פעמים נתקע שעות וכיו"ב שם בפנים ואם כבר עושים גירוז אז להסיר כמובן את כל הליכלוכים


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    DiffPlex השוואת טקסטים.zip


    Diffplex השוואת טקסטים - נייד.zip


    או בגיט

    https://github.com/pcinfogmach/DiffPlex-/releases/tag/DiffplexSpinOff


  • תבנית ברעיון של MVVM עבור VSTO XML RIBBON?
    pcinfogmachP pcinfogmach
    תכנות

    @dovid
    אה
    הייתרון לעניין הסדר הוא העובדה שאני מפריד את המתודות של ה-פעולות משאר המתודות שלא נוגעות לפעולות אלא ל-view
    כאשר יש מאות לחצנים זה מאוד משמעותי


  • התייחסות דינמית ל-Globals בקוד VSTO במאגר משותף?
    pcinfogmachP pcinfogmach
    תכנות

    אני מנסה ליצור מאגר של קודים שימושיים ל-VSTO (Visual Studio Tools for Office). הבעיה היא שאני צריך להתייחס ל-Globals של התוסף, וזה ספציפי ל-namespace שלו. המשמעות היא שאם אני אשתף את המאגר עם מישהו אחר, הוא ייתקל באלף שגיאות ויצטרך להחליף את כל ההתייחסויות ל-Globals בכל הקוד.

    האם יש דרך לזהות את ה-Globals בצורה דינמית בהתאם לאפליקציה, כך שזה לא משנה באיזה namespace הם נמצאים?


  • תבנית ברעיון של MVVM עבור VSTO XML RIBBON?
    pcinfogmachP pcinfogmach
    תכנות

    @dovid
    תודה על המשוב. אתה צודק כמובן, זה לא נעשה כמו שצריך.
    למעישה אני מחפש סדר בקוד
    אשמח לשמוע רעיונות.


  • תבנית ברעיון של MVVM עבור VSTO XML RIBBON?
    pcinfogmachP pcinfogmach
    תכנות

    לאחרונה יצא לי לעבוד על פרויקט עם הרבה לחצנים בסרגל הכלים של וורד. אמרתי לעצמי שזה לא שפוי ואני חייב לעשות סדר בבלאגן באמצעות חלוקה למשהו כמו-MVVM (Model-View-ViewModel).

    מכיון שה-ribbon xml לא באמת נותן גישה לאוסף של הפקדים חשבתי על הרעיון הבא:

    הרעיון הוא לקרוא לכל מתודה על ידי ID של הלחצן באותו שם, ולהעביר את הלוגיקה הקשורה ללחיצה על הלחצן לתוך class נפרד ומסודר, מה שיעשה את הקוד יותר נקי וניתן לניהול.

    (עוד לא יישמתי את הרעיון לגבי אייקונים אבל שם זה אמור להיות ממש עוצמתי מאחר ובצורה הזו כל מה שהמשתמש יצטרך לעשות זה להוסיף אייקון לפרוייקט ולקרוא לו בשם של הכפתור).

    להלן דוגמאות עבור button1 ו-button2.

    בתוך ה-callbacks יש להוסיף את הקודים הבאים:

    private ButtonInvoker buttonInvoker;
    
    public Ribbon()
    {
        buttonInvoker = new ButtonInvoker();
    }
    
    
    
    public void button_Click(Office.IRibbonControl control)
    {
        buttonInvoker.InvokeButtonMethod(control.Id);
    }
    

    במקום ליצור מתודה ייחודית לכל כפתור ב-XML, כל כפתור יקרא לאותה מתודה. הנה דוגמה ל-XML:

    xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
        <ribbon>
            <tabs>
                <tab id="tab1" label="Label">
                    <group id="MyCustomGroup" label="My Custom Group">
                        <button id="button1" label="Button 1" onAction="button_Click"/>
                        <button id="button2" label="Button 2" onAction="button_Click"/>
                    </group>
                </tab>
            </tabs>
        </ribbon>
    </customUI>
    

    כעת, נוסיף את מחלקת ה-ButtonInvoker שתטפל בלחצנים:

    public class ButtonInvoker
    {
        public void InvokeButtonMethod(string methodName)
        {
            try
            {
                MethodInfo method = this.GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance);
                if (method != null)
                {
                    method.Invoke(this, null);
                }
                else
                {
                    MessageBox.Show($"No method found for button ID: {methodName}");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Error invoking method for button ID: {methodName}. Error: {ex.Message}");
            }
        }
    
        private void button1()
        {
            MessageBox.Show("Button 1 clicked");
        }
    
        private void button2()
        {
            MessageBox.Show("Button 2 clicked");
        }
    }
    

    בעזרת הקוד הזה, הצלחנו לפשט את ניהול הלחצנים בסרגל הכלים של וורד ולהקטין את הבלאגן. כל לחצן מזוהה לפי ה-ID שלו וקורא לאותה מתודה כללית שמפעילה את המתודה המתאימה בהתאם ל-ID.


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    @dovid כתב בקוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים):

    בינתיים ריק...

    עודכן
    תודה!


  • עזרה עם בעיה בהתחברות לגיטהב
    pcinfogmachP pcinfogmach
    תכנות

    @קומפיונט
    תודה רבה!
    עזרת לי מאוד!


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    **DiffPlex השוואת טקסטים.exe **

    למי שמעוניין בניתי את הפקד של DiffPlex בתוך חלון בצורה מסודרת (בעברית כמובן).
    עובד מעולה החיסרון היחיד שלו הוא העובדה שאין לו אפשרות לעשות wrap עבור הטקסט המוזן.

    https://github.com/mmanela/diffplex/issues/113

    שימו לב! מכיון שמדובר בתוכנה ניידת האנטי וירוס עלול למחוק אותו (תלוי איזה אנטי וירוס יש לכם).

    למי שרוצה את הקודים שמתי בגיטהאב
    https://github.com/pcinfogmach/DiffPlex-

    fbd4374e-dd66-4b72-b547-8c59853bc985-image.png


  • עזרה עם בעיה בהתחברות לגיטהב
    pcinfogmachP pcinfogmach
    תכנות

    @shraga
    לפי מה שכתוב שם המתקין החדש אמור לטפל בזה באופן אוטומטי
    למעישה התקנתי שוב ולא עזר
    לפנות לנטפרי?


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    @צדיק-תמים
    על פניו זה נראה שהוא רק משווה מסמכים, לא טקסטים מוזנים?


  • עזרה עם בעיה בהתחברות לגיטהב
    pcinfogmachP pcinfogmach
    תכנות

    אני מנסה לעזור למישהו עם הפקוייקט שלו בגיט האב הוא שיתף אותי בפרוייקט
    אבל כל פעם שאני מנסה לעשות cloning אני נתקל בשגיאה דלהלן
    986ec0ac-e4c9-4132-8e76-52b5918ce819-image.png


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    @צדיק-תמים
    תודה
    ראיתי את זה נראה ממש יפה
    אבל זה לא בעברית

    f66d6b4b-4cf9-4dd6-8e60-2e761ebdcbc2-image.png


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    @dovid כתב בקוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים):

    יש מאות כאלו... תחפש text compare tool.

    שכחתי לציין אני מחפש משהו בעברית שאינו דורש חיבור לאינטרנט (עבור אברכים)


  • קוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים)
    pcinfogmachP pcinfogmach
    תכנות

    @dovid כתב בקוד להצגת שינויים בין טקסטים ב-C# (השוואת טקסטים):

    הקוד שלך עובד לך טוב?

    בדיקות בסיסיות עבר לא היה לי פנאי לבדוק אותו לעומק

  • 1 / 1
  • התחברות

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום