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

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

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

pcinfogmach

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

פוסטים

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

  • הצגת מסמכי pdf ב-.net - כל המידע שאספתי בנושא
    pcinfogmachP pcinfogmach

    @חגי
    תודה רבה הפוסט עצמו גם היה מאוד אינפורמטיבי
    כלומר התגובה הזו
    https://stackoverflow.com/a/44118559/23343154

    תכנות

  • הצגת מסמכי pdf ב-.net - כל המידע שאספתי בנושא
    pcinfogmachP pcinfogmach

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

    pdfiumviewer - אפשרות פשוטה יחסית:
    תודות ל@חגי הצלחתי להפעיל את pdfium https://tchumim.com/post/161320 אמנם הוא מוגבל ל-winforms אבל הוא די מתקדם התפעלתי מהעובדה שיש שם גם אפשרות חיפוש. אבל תכל'ס המראה לא מרשים מדאי. וגם אין שם אפשרות לבחור סטקסט של מסמכים שעברו ocr ועוד כמה חסרונות.
    בכל אופן בשביל הצגת מסמכים פשוטה הפקד של pdfiumviewer נחמד מאוד.

    מה כן עובד טוב יחסית:

    1. תכל'ס אפשר להציג pdf בתוך פקד webview דא עקא שאין שום שליטה על המסמך רק לטעון אותו וחסל ואש יש את הפקודות המובנות של edge. - לא רע אבל לא מושלם.
    2. אפשרות אחרת הוא להתקין אדובי מעודכן ואז דרך לחיצה ימנית על תפריט של הפקדים בwinforms יש אפשרות להוסיף פקד של pdf של אדובי. יש גם אפשרות לשחק עם הפקד ועם המסמך קצת. ממש פקד נחמד דא קא שהוא קצת איטי בwinforms - וכמובן צריך שיהיה אדובי מעודכן מותקן במחשב כדי שזה יעבוד.

    מה עוד לא הצלחתי לבדוק:

    1. gecko של פיירפוקס לא הצלחתי להתקדם כלום שם.
    2. sumatra pdf יש בעיקרון פקד של winforms אבל לא עבד לי. (למרות שאני לא כל כך מתרגש להשתמש עם sumatra הספרייה שלו לא משוכללת בעליל).
    תכנות

  • pdfium viewer ב- עבור C# wpf
    pcinfogmachP pcinfogmach

    @חגי
    אין כמוך!
    אני מצרף לינק לתשובה המדוייקת שם שעזרה לי
    https://stackoverflow.com/a/67373337/23343154

    תכנות

  • pdfium viewer ב- עבור C# wpf
    pcinfogmachP pcinfogmach

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

    תכנות

  • pdfium viewer ב- עבור C# wpf
    pcinfogmachP pcinfogmach

    עריכה: אני משאיר את השאלה על מקומה בכל אופן התשובה הקצרה נמצאת בפוסט של @חגי האחרון.

    מישהו יודע איך להשתמש בpdfium viewer ב- wpf
    החבילות בנוגט עושות לי שגיאות בהתקנה
    כגון

    Severity	Code	Description	Project	File	Line	Suppression State
    Error		Could not install package 'PDFiumCore 123.0.6309'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.8', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.				
    

    מצאתי בגיט משהו מוכן אבל גם זה לא עובד עושה שגיאות

    System.DllNotFoundException
      HResult=0x80131524
      Message=אין אפשרות לטעון את קובץ ה-DLL 'pdfium.dll'. The specified module could not be found. (חריג מ-  HRESULT: 0x8007007E)
      Source=PdfiumViewer
      StackTrace:
       at PdfiumViewer.NativeMethods.Imports.FPDF_AddRef()
       at PdfiumViewer.NativeMethods.FPDF_AddRef() in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\NativeMethods.Pdfium.cs:line 25
       at PdfiumViewer.PdfLibrary..ctor() in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfLibrary.cs:line 26
       at PdfiumViewer.PdfLibrary.EnsureLoaded() in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfLibrary.cs:line 18
       at PdfiumViewer.PdfFile..ctor(Stream stream, String password) in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfFile.cs:line 29
       at PdfiumViewer.PdfDocument..ctor(Stream stream, String password) in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfDocument.cs:line 155
       at PdfiumViewer.PdfDocument.Load(Stream stream, String password) in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfDocument.cs:line 129
       at PdfiumViewer.PdfDocument.Load(String path, String password) in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfDocument.cs:line 42
       at PdfiumViewer.PdfDocument.Load(String path) in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer\PdfDocument.cs:line 29
       at PdfiumViewer.WPFDemo.MainWindow.LoadPDFButton_Click(Object sender, RoutedEventArgs e) in C:\Users\0533105132\Downloads\PdfiumViewer-master(1)\PdfiumViewer-master\PdfiumViewer.WPFDemo\MainWindow.xaml.cs:line 91
       at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
       at System.Windows.Controls.Primitives.ButtonBase.OnClick()
       at System.Windows.Controls.Button.OnClick()
       at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
       at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
       at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
       at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
       at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
       at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
       at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
       at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
       at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
       at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
       at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
       at System.Windows.Input.InputManager.ProcessStagingArea()
       at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
       at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
       at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
       at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
       at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
       at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
       at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
       at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
       at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
       at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
       at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
       at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
       at System.Windows.Application.RunDispatcher(Object ignore)
       at System.Windows.Application.RunInternal(Window window)
       at System.Windows.Application.Run(Window window)
       at System.Windows.Application.Run()
       at PdfiumViewer.WPFDemo.App.Main()
    
    

    אין לי מספיק ניסיון כדי לדעת ולהבין מה בדיוק הבעיה קראתי שצריך להוסיף את ה-dll של pdfium אבל לא הבנתי בדיוק איך
    אשמח לקבל עזרה

    מצו"ב הלינק לגיט
    https://github.com/pvginkel
    https://github.com/bezzad/PdfiumViewer

    תודה מראש

    תכנות

  • איך ליצור אינדקס של מסמכי pdf ומסמכי וורד בC#
    pcinfogmachP pcinfogmach

    @yossiz
    פתחתי את ה-dll של התוכנה אבל אני לא מצליח למצוא שם מה בדיוק משמש להצגת הקבצים.

    תכנות

  • עזרה עם קובץ pdf
    pcinfogmachP pcinfogmach

    @loly-pop

    https://www.ilovepdf.com/

    והרבה כמוהו

    תוכנה

  • איך ליצור אינדקס של מסמכי pdf ומסמכי וורד בC#
    pcinfogmachP pcinfogmach

    @yossiz
    סליחה על ההקפצה אבל מישהו יודע אולי איך הוא "מציג" את הספרי pdf ב-panofind
    תודה מראש

    תכנות

  • איך ליצור אינדוקס וחיפוש של מסמכי pdf ב-C#?
    pcinfogmachP pcinfogmach

    אני מנסה לבנות תוכנת חיפוש מותאמת לקבצי PDF, תוך שילוב אינדקס לפעולות חיפוש.
    גדי לקבל את הטקסט אני משתמש עם הספרייה של itext ב- C#
    יש לי שאלה לגבי מה הצורה הכי יעילה ליצירת האינדקס:
    כדי לנהל את השימוש בזיכרון, בחרתי לנתח את המסמכים עמוד אחר עמוד. עם זאת, נתקלתי במגבלה משמעותית: כאשר התוכן משתרע על פני מספר עמודים, כגון משפטים או פסקאות, הוא בעצם נקטע באמצע על ידי החלוקה לעמודים.
    אשמח לקבל עצה בעניין

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

    תודה מראש

    תכנות

  • איך לשנות את הרקע של WPF COMBOBOXDROPDOWN
    pcinfogmachP pcinfogmach

    @dovid כתב באיך לשנות את הרקע של WPF COMBOBOXDROPDOWN:

    בד"כ שומרים טמפלט בApp.xaml לשימוש חוזר בפקדים שונים ולשמור על ניקיון וקוד קצר בחלונות.

    יש צורה לעשות ככה גם ב-vsto?

    תכנות

  • איך לשנות את הרקע של WPF COMBOBOXDROPDOWN
    pcinfogmachP pcinfogmach

    @dovid
    תודה!
    יש צורה לשנות גם את הצבע של ה-border של COMBOBOXDROPDOWN?

    תכנות

  • איך להשיג את האייקון של כל סוגי הקבצים בC#
    pcinfogmachP pcinfogmach

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

    תכנות

  • איך להשיג את האייקון של כל סוגי הקבצים בC#
    pcinfogmachP pcinfogmach

    @ארי
    שיניתי תודה

    תכנות

  • איך להשיג את האייקון של כל סוגי הקבצים בC#
    pcinfogmachP pcinfogmach

    מישהו יודע איך אפשר איך את האייקון של כל הקבצים בC#
    כלומר אם למשל יש לי פרוייקט כמו everything שמציג ברשימה כמה סוגי קבצים ואני רוצה להציג את האייקון שלהם איך אני עושה את זה.
    מצו"ב תמונה של התוכנה הנ"ל לשם בהירות
    35ca5257-7aec-47ae-9953-4f2d796d3838-image.png

    תכנות

  • איך לשנות את הרקע של WPF COMBOBOXDROPDOWN
    pcinfogmachP pcinfogmach

    מישהו יודע איך לשנות את הרקע של WPF COMBOBOXDROPDOWN?
    לא מצאתי צורה ישירה.
    תודה מראש

    תכנות

  • אתר עם תמונות יפות (ללא רקע) לגרפיקה או לכל צורך אחר
    pcinfogmachP pcinfogmach

    אתר עם תמונות יפות לגרפיקה - ללא רקע - או לכל צורך אחר
    https://www.pngwing.com/
    הופתעתי לטובה.

    גומלין - כללי

  • wpf Checked-TreeView עם Binding
    pcinfogmachP pcinfogmach

    מצו"ב קוד לפרוייקט שלי עבור יצירת
    wpf Checked-TreeView עם Binding
    אשמח לקבל משוב. תודה
    b11a71b0-e112-42fd-99ee-17bf79848e6a-image.png
    כמו"כ לא הצלחתי לעשות BInding ל itemsorce ישירות מה-xaml רק דרך הקוד זה עובד - אשמח לקבל הדרכה בנושא ממי שיכול.
    תודה מראש.
    עשיתי את זה בעיקר ללימוד - מקווה שיהיה שימושי בעז"ה לעוד מישהו חוץ ממני.

    <Window x:Class="Wpf_Checked_TreeView.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:Wpf_Checked_TreeView"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800"
            DataContext="{Binding RelativeSource={RelativeSource Self}}"
            >
        <Grid>
            <TreeView x:Name="treeView" ItemsSource="{Binding treeItemsList}"> 
                <TreeView.Resources>
                    <HierarchicalDataTemplate DataType="{x:Type local:CheckedTreeItem}" ItemsSource="{Binding Children}">
                        <StackPanel Orientation="Horizontal">
                            <CheckBox Content="{Binding Name}" IsChecked="{Binding IsChecked, Mode=TwoWay}"/>
                        </StackPanel>
                    </HierarchicalDataTemplate>
                </TreeView.Resources>
            </TreeView>
        </Grid>
    </Window>
    
    using System.Collections.ObjectModel;
    using System.ComponentModel;
    using System.Linq;
    using System.Windows;
    
    namespace Wpf_Checked_TreeView
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public ObservableCollection<object> treeItemsList = new ObservableCollection<object>();
            public MainWindow()
            {
                InitializeComponent();
    
                CheckedTreeItem rootItem1 = new CheckedTreeItem { Name = "root item 1" };
                CheckedTreeItem child1 = new CheckedTreeItem { Name = "child item 1"};
                CheckedTreeItem child2 = new CheckedTreeItem { Name = "child item 2" };
                rootItem1.AddChild(child1);
                rootItem1.AddChild(child2);
                child1.AddChild(new CheckedTreeItem { Name = "sub child item 1" });
                child1.AddChild(new CheckedTreeItem { Name = "sub child item 2" });
                child2.AddChild(new CheckedTreeItem { Name = "sub child item 1" });
                child2.AddChild(new CheckedTreeItem { Name = "sub child item 2" });
    
                CheckedTreeItem rootItem2 = new CheckedTreeItem { Name = "root item 1" };
                rootItem2.AddChild(new CheckedTreeItem { Name = "child item 1" });
                rootItem2.AddChild(new CheckedTreeItem { Name = "child item 1" });
    
                treeItemsList.Add(rootItem1);
                treeItemsList.Add(rootItem2);
    
                treeView.ItemsSource = treeItemsList;
            }
        }
    
    
    
        public class CheckedTreeItem : INotifyPropertyChanged
        {
            private ObservableCollection<CheckedTreeItem> _children = new ObservableCollection<CheckedTreeItem>();
            public ObservableCollection<CheckedTreeItem> Children
            {
                get { return _children; }
                set
                {
                    _children = value;
                    OnPropertyChanged(nameof(Children));
                }
            }
            
            private CheckedTreeItem _parent;
            public CheckedTreeItem Parent
            {
                get { return _parent; }
                set
                {
                    _parent = value;
                    OnPropertyChanged(nameof(Parent));
                }
            }
    
            private string _name;
            public string Name
            {
                get { return _name; }
                set
                {
                    if (_name != value)
                    {
                        _name = value;
                        OnPropertyChanged(nameof(Name));
                    }
                }
            }
    
            private bool? _isChecked = false;
            public bool? IsChecked
            {
                get { return _isChecked; }
                set
                {
                    if (_isChecked != value)
                    {
                        _isChecked = value;
                        OnPropertyChanged(nameof(IsChecked));
                        UpdateChildCheckSatus(value);
                        UpdateParentCheckSatus(value);
                    }
                }
            }
            void UpdateChildCheckSatus(bool? value)
            {
                foreach (CheckedTreeItem child in Children)
                {
                    if (value != null){   child.IsChecked = value;  }
                }
            }
            void UpdateParentCheckSatus(bool? value)
            {
                if (Parent != null)
                {
                    bool allChecked = Parent.Children.OfType<CheckedTreeItem>().All(child => child.IsChecked == true);
                    bool allUnchecked = Parent.Children.OfType<CheckedTreeItem>().All(child => child.IsChecked == false);
    
                    if (allChecked) { Parent.IsChecked = true; }
                    else if (allUnchecked) { Parent.IsChecked = false; }
                    else { Parent.IsChecked = null; }
                }
            }
    
            public event PropertyChangedEventHandler PropertyChanged;
            protected void OnPropertyChanged(string propertyName)
            {
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
            }
            public void AddChild(CheckedTreeItem child)
            {
                if (child is CheckedTreeItem CheckedTreeItem)
                {
                    CheckedTreeItem.Parent = this;
                    Children.Add(child);
                }
            }
        }
    
    
    }
    
    
    תכנות

  • ספר טלפונים ב-html
    pcinfogmachP pcinfogmach

    @dovid כתב בספר טלפונים ב-html:

    ועדיף עם const.

    אשמח להסבר למה? תודה.

    תכנות

  • ספר טלפונים ב-html
    pcinfogmachP pcinfogmach

    מצו"ב קוד לספר טלפונים בhtml - אשמח לקבל משוב:

    http://tpcg.io/_BIGXW4

    או למי שרוצה לראות את הקוד כאן בפורום:

    <!DOCTYPE html>
    <html lang="he">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>ספר טלפונים</title>
      <style>
        table {
          border-collapse: collapse;
          width: 100%;
        }
    
        th, td {
          border: 1px solid #dddddd;
          padding: 8px;
        }
    
        th {
          background-color: #f2f2f2;
        }
        
         select {
        border: 1px solid #ccc; 
        border-radius: 3px; 
        padding: 3px; 
      }
      </style>
    </head>
    <body dir="rtl">
    
    <h2>ספר טלפונים</h2>
    
    <select id="searchType">
      <option value="name">שם</option>
      <option value="occupation">מקצוע</option>
      <option value="phone">טלפון</option>
      <option value="email">מייל</option>
    </select>
    
    <input type="text" id="searchInput" onkeyup="searchTable()" placeholder="חפש..">
    
    <p>
    
    <table id="phoneDirectory">
      <tr>
        <th>שם</th>
        <th>מספר טלפון</th>
        <th>כתובת דואר אלקטרוני</th>
        <th>מקצוע</th>
      </tr>
      <tr>
        <td>יוחנן כהן</td>
        <td>123-456-7890</td>
        <td>yochanan@example.com</td>
        <td>מהנדס תוכנה</td>
      </tr>
      <tr>
        <td>יצחק לוי</td>
        <td></td>
        <td>yitz@example.com</td>
        <td>מעצב גרפי</td>
      </tr>
      <!-- Add more rows as needed -->
    </table>
    
    <script>
    function searchTable() {
      var input, filter, table, tr, td, i, txtValue;
      input = document.getElementById("searchInput");
      filter = input.value.toUpperCase();
      table = document.getElementById("phoneDirectory");
      tr = table.getElementsByTagName("tr");
      var columnIndex;
    
      var select = document.getElementById("searchType");
      var searchType = select.value;
    
      if (searchType === "name") {
        columnIndex = 0;
      } else if (searchType === "phone") {
        columnIndex = 1;
      } else if (searchType === "email") {
        columnIndex = 2;
      } else if (searchType === "occupation") {
        columnIndex = 3;
      }
    
      for (i = 0; i < tr.length; i++) {
        td = tr[i].getElementsByTagName("td")[columnIndex]; 
        if (td) {
          txtValue = td.textContent || td.innerText;
          if (txtValue.toUpperCase().indexOf(filter) > -1) {
            tr[i].style.display = "";
          } else {
            tr[i].style.display = "none";
          }
        }
      }
    }
    </script>
    
    </body>
    </html>
    
    
    תכנות
  • 1 / 1
  • התחברות

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

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