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

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

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

pcinfogmach

@pcinfogmach
אודות
פוסטים
716
נושאים
188
שיתופים
0
קבוצות
0
עוקבים
3
עוקב אחרי
1

פוסטים

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

  • הצגת מספר חלונות גם שהמחשב נעול
    pcinfogmachP pcinfogmach

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

    בקיצור, אם זה מתאים לך, הייתי מציע לך לשקול לשלם למישהו שיבנה לך תוכנה ייעודית. זה לא אמור לעלות יותר מדי.

    תוכנה

  • לימודי תכנות
    pcinfogmachP pcinfogmach

    @אביחיל
    יש לי אח שעשה לאחרונה תוכנית כזו ומצאו לו ולכל החברה השמה הוא פשוט פרש בגלל השעמום
    שים לב אני לא מתווכח איתך על המציאות המציאות עגומה כמו שאתה כותב אבל בלתי אפשרית? לא יודע....

    תכנות

  • לימודי תכנות
    pcinfogmachP pcinfogmach

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

    תכנות

  • לימודי תכנות
    pcinfogmachP pcinfogmach

    @mekev
    קודם כל כבר כתבתי שקראתי ואני מסכים עם כל מה ש-@yossiz אמר
    בשנית אני מתקשה להבין למה אתה מביא אנקדוטות מכל מיני חאפרים אא"כ כוונתך להזהיר אנשים שיבדקו טוב לפני שהם נכנסים למשהו?
    כמו כן, שים לב שאתה מתעסק עם תכנות כבר כמה שנים ונמצא בעניינים, בעוד שמיודענו "פעם" למד תכנות.

    תכנות

  • לימודי תכנות
    pcinfogmachP pcinfogmach

    @nigun
    יפה העלית את הצדדים בצורה נכוחה וברורה והשוקל ישקול. האמירה "תוכנית מוצלחת" היא כמובן מאוד סובייקטיבית ולכן אין לי באמת איך להגיב לך על כך.

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

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

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

    תכנות

  • לימודי תכנות
    pcinfogmachP pcinfogmach

    @nigun כתב בלימודי תכנות:

    @pcinfogmach כתב בלימודי תכנות:

    אני ממליץ לך לשקול תוכנית כמו "מיגו" או תוכניות דומות. תוכניות אלו מעניקות מלגת קיום ומסייעות בהשמה מקצועית לאחר סיום הלימודים.

    לפי מה שאנשים כותבים בפרוג נראה שלא הצליח להם כ"כ

    https://www.prog.co.il/threads/תוכנית-הכשרת-גברים-להייטק-מיגו.789408/page-12

    לפני שאני מגיב למה שאתה אומר אני חייב להסכים עם כל מילה ש@yossiz אמר בגדול במקומות האלה כמו מיגו זה המהלך שמובילים ג"כ אבל לא בהכרח

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

    תכנות

  • לימודי תכנות
    pcinfogmachP pcinfogmach

    @מבקש

    אני ממליץ לך לשקול תוכנית כמו "מיגו" או תוכניות דומות. תוכניות אלו מעניקות מלגת קיום ומסייעות בהשמה מקצועית לאחר סיום הלימודים.

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

    בהצלחה!

    תכנות

  • FolderPicker מתקדם ב-C# עבור .Net FrameWork
    pcinfogmachP pcinfogmach

    כלומר לאפוקי אם אם משתמשים ב-
    net FrameWork.
    שמה זה תמיד מראה את המיושן
    רק ב-
    NET Core 3.1 ומעלה זה מראה את העדכני

    תכנות

  • FolderPicker מתקדם ב-C# עבור .Net FrameWork
    pcinfogmachP pcinfogmach

    @dovid
    זה עובד, אך לדעתי הוא פחות מתקדם מהאופציה שהצעתי. זה ממש מעצבן למשתמש להשתמש ב- FolderBrowserDialog. האינטרנט מלא בפוסטים של אנשים שמחפשים תחליף לדיאלוג הזה, ולכן כשמצאתי תחליף אחר, החלטתי לשתף ולהמליץ עליו למי שגם כן מחפש חוויית משתמש יפה יותר.

    מצו"ב תמונות לשם המחשה

    א. FolderBrowserDilogue

    0509f7c9-38e7-4810-854f-182cd68cb9ed-image.png

    ב. CommonOpenFileDialog של WindowsAPICodePack

    7a9093de-8d8a-4b1f-b40b-5c64d7d64fe9-image.png

    תכנות

  • FolderPicker מתקדם ב-C# עבור .Net FrameWork
    pcinfogmachP pcinfogmach

    מדריך פשוט עבור FolderPicker מתקדם ב-C#
    איך לתת למשתמש לבחור תיקייה על יד דיאולוג יפה של ווינדוס

    יש להתקין את חבילת הnuget

    Microsoft.WindowsAPICodePack-Shell
    

    קוד דוגמא

    using Microsoft.WindowsAPICodePack.Dialogs;
    
    // פונקציה לבחירת תיקיה
    private string ShowFolderPicker()
    {
        CommonOpenFileDialog dialog = new CommonOpenFileDialog();
        dialog.IsFolderPicker = true; 
    
        if (dialog.ShowDialog() == CommonFileDialogResult.Ok)
        {
            return dialog.FileName; 
        }
            return null; 
    }
    
    תכנות

  • לימודי תכנות
    pcinfogmachP pcinfogmach

    @מבקש
    אולי תכתוב מה אתה כבר יודע ככה תוכל לקבל הדרכה קצת יותר טובה כרגע השאלה שלך כללית מדאי

    תכנות

  • פתרון לבעיה ב-binding של TextBox ב-WPF שלא עבד
    pcinfogmachP pcinfogmach

    פתרון לבעיה ב-binding של TextBox ב-WPF שלא עבד:

    נתקלתי בבעיה מעצבנת עם ה-binding של TextBox בפרויקט WPF שלי - ה-binding פשוט לא עבד! לאחר חיפוש מצאתי את הפתרון:

    הפתרון הוא להוסיף פרמטר נוסף ל-binding בשם UpdateSourceTrigger.
    דוגמא:

    <TextBox x:Name="SearchTextBox"  Text="{Binding SearchTerm, Mode=TwoWay, BindsDirectlyToSource=True, UpdateSourceTrigger=PropertyChanged}"/>
    
    
    תכנות

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

    @dovid
    ייתכן שהיה פה בלבול בין xaml ל-ribbon xml
    לא יודע אם המושג MVVM כמות שהוא באמת שייך ליישום ב-ribbon xml
    אולי צריך פה מבנה אחר אני לא בקי מספיק במבני תוכנה כדי לדעת מה המבנה הנכון פה

    תכנות

  • הדגמה פשוטה של MVVM ב-C# WPF
    pcinfogmachP pcinfogmach

    יש לכם הערות? אנא כתבו אותם לתועלת כולם!

    הערה: אישית אני ראיתי תועלת גדולה ב-mvvm, למרות שביישום של commands לא כל כך ראיתי תועלת בפרוייקטים שלי כי לרוב זה לא היה נצרך ורק הפך את הקוד למסורבל, בכל אופן הדוגמא דלהלן כוללת אותם לצורך ההדגמה ואפשר לראות כיצד הם 'מחליקים' את פעולת התוכנה, כמו"כ הוספתי קיצורי מקשים דרך ה-commands מה שמדגים את השימושיות שלהם.

    תכנות

  • הדגמה פשוטה של MVVM ב-C# WPF
    pcinfogmachP pcinfogmach

    הדגמה פשוטה של MVVM

    עיין כאן להסבר על המושג MVVM:
    להרחבה על הנושא עיין כאן

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

    התוכנה מיישמת מחשבון (כלשהו) שיניתי קצת מהכתבה לצורך ההדגמה.


    1. קוד ל-view

    <Window x:Class="WpfTestProject.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfTestProject"
            mc:Ignorable="d"
            Background="WhiteSmoke"
            SizeToContent="WidthAndHeight"
            FocusManager.FocusedElement="{Binding ElementName=FirstValueTextBox}">
        <Window.DataContext>
            <local:CalculatorViewModel/>
        </Window.DataContext>
    
        <Window.InputBindings>
            <KeyBinding Key="A" Modifiers="Control" Command="{Binding AddCommand}"/>
            <KeyBinding Key="S" Modifiers="Control" Command="{Binding SubTractCommand}"/>
            <KeyBinding Key="T" Modifiers="Control" Command="{Binding TimesCommand}"/>
            <KeyBinding Key="D" Modifiers="Control" Command="{Binding DivideCommand}"/>
            <KeyBinding Key="P" Modifiers="Control" Command="{Binding PercentCommand}"/>
        </Window.InputBindings>
        
        <Window.Resources>
            <Style TargetType="TextBox">
                <Setter Property="Margin" Value="5"/>
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="BorderBrush" Value="LightGray"/>
            </Style>
            <Style TargetType="TextBlock">
                <Setter Property="Margin" Value="5"/>
                <Setter Property="VerticalAlignment" Value="Center"/>
            </Style>
            <Style TargetType="Label">
                <Setter Property="Margin" Value="5"/>
                <Setter Property="HorizontalContentAlignment" Value="Center"/>
                <Setter Property="VerticalContentAlignment" Value="Center"/>
                <Setter Property="BorderBrush" Value="LightGray"/>
                <Setter Property="BorderThickness" Value="1"/>
                <Setter Property="Background" Value="White"/>
            </Style>
            <Style TargetType="Button">
                <Setter Property="Margin" Value="5"/>
                <Setter Property="Background" Value="{x:Null}"/>
                <Setter Property="BorderBrush" Value="LightGray"/>
                <Setter Property="Height" Value="38"/>
                <Setter Property="Width" Value="{Binding Path=Height, RelativeSource={RelativeSource Self}}"/>
               
            </Style>
        </Window.Resources>
        
        <StackPanel>
            <TextBlock Text="Calculator" HorizontalAlignment="Center"
                   FontSize="34" Foreground="BlueViolet"/>
    
            <Grid Margin="5,10,5,5" KeyboardNavigation.TabNavigation="Cycle">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="auto"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
    
                <TextBox x:Name="FirstValueTextBox" Grid.Column="0" Text="{Binding FirstValue}" />
                <TextBlock Text="{Binding MathMethod}" Grid.Column="1"/>
                <TextBox x:Name="SecondValueTextBox" Grid.Column="2" Text="{Binding SecondValue}"/>
                <TextBlock Text="=" Grid.Column="3" VerticalAlignment="Center" Margin="5"/>
                <Label  Grid.Column="4" Margin="5"
                       Content="{Binding ResultValue, BindsDirectlyToSource=True}"/>
            </Grid>
    
            <StackPanel Orientation="Horizontal" Margin="5">
                <Button Content="+" Command="{Binding AddCommand}"/>
                <Button Content="-" Command="{Binding SubTractCommand}"/>
                <Button Content="*" Command="{Binding TimesCommand}"/>
                <Button Content="/" Command="{Binding DivideCommand}"/>
                <Button Content="%" Command="{Binding PercentCommand}"/>
            </StackPanel>
            
        </StackPanel>
    </Window>
    
    

    1. קודים המהווים בסיס ל-viewmodel

    using System;
    using System.Windows.Input;
    
    namespace WpfTestProject
    {
        public abstract class ICommandBase : ICommand
        {
            public event EventHandler CanExecuteChanged;
    
            public virtual bool CanExecute(object parameter)
            {
                return true;
            }
    
            public abstract void Execute(object parameter);
    
            protected void OnCanExecuteChanged()
            {
                CanExecuteChanged?.Invoke(this, new EventArgs());
            }
        }
    
        public class RelayCommand : ICommandBase
        {
            private Action commandTask;
    
            public RelayCommand(Action action)
            {
                commandTask = action;
            }
            public override void Execute(object parameter)
            {
                commandTask();
            }
        }
    }
    
     public class INotifyPropertyChangedBase : INotifyPropertyChanged
     {
         public event PropertyChangedEventHandler PropertyChanged;
         protected void OnPropertyChanged(string propertyName)
         {
             PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
         }
     }
    

    1. ה-viewmodel

    using System;
    using System.Collections.Generic;
    using System.Collections.ObjectModel;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Input;
    
    namespace WpfTestProject
    {
        public class CalculatorViewModel : INotifyPropertyChangedBase
        {
            #region members
            string _mathMethod;
            double _firstValue;
            double _secondValue;
            double _result;
            #endregion
    
            #region properties
            public string MathMethod { get => _mathMethod; set { _mathMethod = value; OnPropertyChanged(nameof(MathMethod)); } }
            public double FirstValue { get => _firstValue; set => _firstValue = value; }
            public double SecondValue { get => _secondValue; set => _secondValue = value; }
            public double ResultValue { get => _result; set { _result = value; OnPropertyChanged(nameof(ResultValue)); } }
            #endregion
    
            #region Commands
            public ICommand AddCommand
            {
                get
                {
                    //return plusCommand;
                    return new RelayCommand(Add);
                }
            }
            public ICommand SubTractCommand
            {
                get
                {
                    return new RelayCommand(SubTract);
                }
            }
            public ICommand TimesCommand
            {
                get
                {
                    return new RelayCommand(Times);
                }
            }
            public ICommand PercentCommand
            {
                get
                {
                    return new RelayCommand(Percent);
                }
            }
            public ICommand DivideCommand
            {
                get
                {
                    return new RelayCommand(Divide);
                }
            }
            #endregion
    
            #region Methods
            public void Add()
            {
                MathMethod = "+";
                ResultValue = FirstValue + SecondValue;
                return;
            }
            public void SubTract()
            {
                MathMethod = "-";
                ResultValue = FirstValue - SecondValue;
            }
            public void Times()
            {
                MathMethod = "*";
                ResultValue = FirstValue * SecondValue;
            }
            public void Divide()
            {
                MathMethod = "/";
                ResultValue = FirstValue / SecondValue;
            }
            public void Percent()
            {
                MathMethod = "%";
                ResultValue = FirstValue * SecondValue;
            }
            #endregion
        }
    }
    
    
    1. שמתם לב? ה-model חסר.... בתוכנה זו לא היה צורך ב-model בעיקרון ה-model היה יכול להיות אחד משני דברים. או class עם מבנה נתונים. או class עם קוד חיצוני.
    תכנות

  • טעינה איטית של 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
    

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

    תכנות
  • 1
  • 2
  • 16
  • 17
  • 18
  • 19
  • 20
  • 35
  • 36
  • 18 / 36
  • התחברות

  • אין לך חשבון עדיין? הרשמה

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