דילוג לתוכן

ארכיון code613m

ארכיון האתר הקודם והחביב קוד-613

1.3k נושאים 9.6k פוסטים
  • Template - Grid - WPF

    2
    0 הצבעות
    2 פוסטים
    253 צפיות
    dovidD

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

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

    פורסם במקור בפורום CODE613 ב17/11/2013 11:58 (+02:00)

  • הצילו את הפורום מדעיכה!!!!

    13
    0 הצבעות
    13 פוסטים
    752 צפיות
    dovidD

    @mat

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

    תיאוריה. ואני לא חושב ככה.

    פורסם במקור בפורום CODE613 ב12/03/2015 12:06 (+02:00)

  • WPF - ערפול קוד למאפיינים שבשימוש הבינדינג

    12
    0 הצבעות
    12 פוסטים
    574 צפיות
    רחמיםר

    @דוד ל.ט.

    http://xamlgenerator.codeplex.com

    הגנרטור הזה תרגם לי את זה כך:

    Dim binding9 As System.Windows.Data.Binding = New System.Windows.Data.Binding("Name") Dim binding11 As System.Windows.Data.Binding = New System.Windows.Data.Binding("DateChange")

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

    פורסם במקור בפורום CODE613 ב12/11/2013 14:30 (+02:00)

  • WPF סיכום עמודה בדטה-גריד

    5
    0 הצבעות
    5 פוסטים
    357 צפיות
    רחמיםר

    הנה כך עושים בדטה גריד שדה מחושב וגם סיכום עמודה, בבקשה תהנו:

    <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="386" Width="525"> <Grid> <StackPanel Margin="12,12,12,44"> <DataGrid AutoGenerateColumns="False" Height="255" Margin="0" Name="datagrid1" ItemsSource="{Binding}" RowDetailsVisibilityMode="Visible"> <DataGrid.Columns> <DataGridTextColumn Width="150" Header="Name" Binding="{Binding Path=Name}" /> <DataGridTextColumn Width="100" Header="Unit Price" Binding="{Binding Path=UnitPrice, UpdateSourceTrigger=PropertyChanged, NotifyOnTargetUpdated=True, NotifyOnSourceUpdated=True, BindsDirectlyToSource=True}"/> <DataGridTextColumn Width="100" Header="Amount" Binding="{Binding Path=Amount, NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged, BindsDirectlyToSource=True}"/> <DataGridTextColumn Width="100" Header="Total" Binding="{Binding Path=Total, StringFormat=C}" IsReadOnly="True" /> </DataGrid.Columns> </DataGrid> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=RowHeaderActualWidth}"/> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=Columns[0].ActualWidth}"/> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=Columns[1].ActualWidth}"/> <ColumnDefinition Width="{Binding ElementName=datagrid1, Path=Columns[2].ActualWidth}"/> </Grid.ColumnDefinitions> <TextBlock /> <TextBlock Grid.Column="2">Count:</TextBlock> <TextBlock Grid.Column="3" >Avg:</TextBlock> </Grid> </StackPanel> <Label Height="28" Name="totalLabel" Width="155" BorderBrush="Black" BorderThickness="2" Margin="74,311,274,8" ContentStringFormat="C" /> <Label Content="total" Height="28" Name="Label1" Margin="7,311,404,8" /> </Grid> </Window> Imports System.Collections.ObjectModel Imports System.ComponentModel Class MainWindow WithEvents DB As New ObservableCollection(Of Product) Public Sub New() ' This call is required by the designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. datagrid1.DataContext = DB End Sub Private Function SumDB() As Single Dim total As Single = 0 For Each product As Product In DB If product.Total IsNot Nothing Then total += product.Total End If Next Return total End Function Private Sub DB_CollectionChanged(sender As Object, e As System.Collections.Specialized.NotifyCollectionChangedEventArgs) Handles DB.CollectionChanged Dim P As Product = DirectCast(e.NewItems(0), Product) AddHandler P.PropertyChanged, AddressOf ProductPropertyChangedHandler End Sub Private Sub ProductPropertyChangedHandler(sender As Object, e As PropertyChangedEventArgs) If e.PropertyName = "Total" Then totalLabel.Content = SumDB() End If End Sub End Class Public Class Product Implements INotifyPropertyChanged Public Property Name As String Private _UnitPrice As Single? Public Property UnitPrice As Single? Get Return _UnitPrice End Get Set(value As Single?) _UnitPrice = value OnPropertyChanged("UnitPrice") OnPropertyChanged("Total") End Set End Property Private _Amount As Single? Public Property Amount As Single? Get Return _Amount End Get Set(value As Single?) _Amount = value OnPropertyChanged("Amount") OnPropertyChanged("Total") End Set End Property Private _Total As Single? Public ReadOnly Property Total As Single? Get _Total = Amount * UnitPrice Return _Total End Get End Property #Region "INotifyPropertyChanged Members" Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Public Sub OnPropertyChanged(ByVal name As String) RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name)) End Sub #End Region End Class

    פורסם במקור בפורום CODE613 ב07/11/2013 11:15 (+02:00)

  • סינכרון משימות עם אאוטלוק

    4
    0 הצבעות
    4 פוסטים
    254 צפיות
    רחמיםר

    אתה יכול להגיע לאותם תוצאות כי כל האוביקטים חשופים לשימושך אבל זה שונה בתחביר ובצורת גישה לאובייקטים עיין כאן:
    http://msdn.microsoft.com/en-us/library/office/ff865816.aspx

    פורסם במקור בפורום CODE613 ב02/11/2013 20:18 (+02:00)

  • WPF מטפל ארוע עבור Template

    7
    0 הצבעות
    7 פוסטים
    388 צפיות
    רחמיםר

    אני מאוד מתנצל על אי ההבנה שקרתה פה 😞

    בכל מקרה עזרת לי מאוד!

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

    פורסם במקור בפורום CODE613 ב12/11/2013 19:35 (+02:00)

  • כרטסת WPF

    2
    0 הצבעות
    2 פוסטים
    239 צפיות
    א

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

    ב. מה זה אם לא כרטסת קוראים לזה באנגלית tabcontrol

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

    פורסם במקור בפורום CODE613 ב29/10/2013 22:04 (+02:00)

  • קריאת MFT = Master File Table

    1
    0 הצבעות
    1 פוסטים
    210 צפיות
    אין תגובות
  • WPF - ListView

    12
    0 הצבעות
    12 פוסטים
    586 צפיות
    dovidD

    @רחמים

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

    מעניין. תנסה סתם תמונה אחרת.

    @רחמים

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

    מה שעושים ב XAML עשיתי בקוד של הבנאי:
    אתה נותן שם לכל עמודה בליסט-ויו

    שם_עמודה.DisplayMemberBinding = New Binding("שם_המאפיין")

    הבעיה שהקוד שלך לא הכיל בכלל שם לעמודות וגם לא לטבלה כולה לכן התפלאתי.

    פורסם במקור בפורום CODE613 ב11/11/2013 15:18 (+02:00)

  • comboBox - WPF

    4
    0 הצבעות
    4 פוסטים
    315 צפיות
    dovidD

    אם מוגדר לItemsControl (במקרה זה ליסט), הItemsSource, הדרך הטבעית והפשוטה ביותר זה להוסיף את האיבר למקור הנתונים.
    במקרה זה כתבת שמקור הנתונים זה "עמודה בטבלה".
    זה ניסוח שגוי מאוד. מקור הנתונים חייב להיות IEnumerable<T>, ועמודה בטבלה היא אובייקט שממש לא מממש את הציפיה הזו.
    נניח שכנראה הT הוא DataRow. אז צריך להוסיף DataRow, השאלה היא מה ה"מיכל" של הDataRow הללו. אם זה טבלה, אז אפשר להוסיף לה שורה, אבל אם זה שאילתת לינק או מערך, א"א להוסיף איבר.
    אם האוסף הוא אוסף של מספר שלם, ולא של DataRow כמו שסברתי לומר, אז באמת א"א להוסיף Null. אפשר להתגבר על זה, או להפוך את האוסף מסוג Int לסוג ?Int, וזה מאפשר איברים Null, ישנה עוד אפשרות אולי, אבל זה מאוד תלו ברקע: למה איך ועוד.
    מאוד עוזר גם להראות מה ניסו ואיפה נכשלו.

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

    פורסם במקור בפורום CODE613 ב13/10/2013 20:11 (+03:00)

  • זיהוי קידוד קובץ

    1
    0 הצבעות
    1 פוסטים
    206 צפיות
    אין תגובות
  • יצירת רשימת קבצים ותקיות בתוך תקיה נבחרת

    4
    0 הצבעות
    4 פוסטים
    344 צפיות
    M

    @רחמים

    נכון, אבל זה לא ממש אותו עבודה בכל המקרים כי לפעמים יותר מהר לקרוא את כל שמות הקבצים עם הפונקציה המהירה ולסנן רק מה שאני צריך מאשר ללכת עם הפונקציות Directory.GetDirectories או Directory.GetFiles ולפעמים זה להיפך, השאלה אם יש איזו עצה מבריקה איך אני אדע מראש באיזו דרך לילך? [או אולי להפעיל את שניהם ומי שיגמור ראשון לקחת אותו, ולהפסיק את השני....?]

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

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

    פורסם במקור בפורום CODE613 ב13/10/2013 14:39 (+03:00)

  • הרשם לקבלת עדכונים לא עובד

    5
    0 הצבעות
    5 פוסטים
    358 צפיות
    רחמיםר

    יישר כח גדול להנהלה על תיקון קבלת העדכונים!! 🙂

    פורסם במקור בפורום CODE613 ב20/01/2014 15:07 (+02:00)

  • יצוא לקובץ CSV בעברית

    4
    0 הצבעות
    4 פוסטים
    344 צפיות
    dovidD

    Using משמש בעיקר לוודא שבתום השימוש תיקרא הפונקצייה Dispose.
    וזאת גם אם תוכנ עפה באמצע השימוש (מאחורי הקלעים הקומפיילר בונה tyr מסביב).
    הפונקציה Dispose דואגת לשחרור השימוש/זיכרון מהאובייקט.
    משתמשים בUsing בכל דבר "יקר": קבצים וכדו'.

    בפועל using גם משמשת כבלוק, הצהרת הכותרת שלה והצהרות בתוכה,
    מאבדים את טווח ההכרה מחוצה לה.

    פורסם במקור בפורום CODE613 ב10/10/2013 18:38 (+03:00)

  • מיון לפי מיקוד 7 ב- linq

    2
    0 הצבעות
    2 פוסטים
    257 צפיות
    dovidD

    בשאילתה אתה מוסיף עמודת ביטוי, ולפיה אתה ממיין.
    הביטוי צריך להיראות ככה:

    Mid([ColumnName], 1, 5)

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

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

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

    iif([ColumnName]>99999, [ColumnName]/100, [ColumnName])

    ולמיין לפי הביטוי כמובן.

    הצלחה,
    [size=85:fsxvlofl]ותמיד, תמיד, לשאול בפורום...[/size:fsxvlofl]

    [u:fsxvlofl][size=150:fsxvlofl]עריכה:[/size:fsxvlofl][/u:fsxvlofl]
    רק כעת שמתי לב לכותרת בה כתוב LINQ.
    אני חשבתי שהמדובר על אקסס.
    אז בלינק זה יותר פשוט אפי'...

    order by Mikud.SubString(0,5)

    או אם זה מספרי:

    order by (Mikud > 99999 ?? Mikud / 100 : Mikud) (0,5)

    השורה הזאת משתמשת עם ביטוי-תנאי, ביטוי שהרבה מתכנתים שוכחים מקיומו.
    בלי הביטוי אז צריך לעשות פונקציה (מלאה או למבדה), ולתת את הערך החוזר לorder by.

    פורסם במקור בפורום CODE613 ב09/10/2013 17:43 (+03:00)

  • בעיה קשה מאוד באקסס - קידוד

    17
    0 הצבעות
    17 פוסטים
    986 צפיות
    L

    תבדוק מה ה-none unicode program languge
    (בעברת: שפה עבור תוכניות שאינן תוכניות unicode) ותוודא שזה על עברית
    זה נמצא בלוח הבקרה תחת הגדרות שפה

    פורסם במקור בפורום CODE613 ב10/08/2014 23:56 (+03:00)

  • ריענון סמלים אחר רישום אייקון עבור קובץ

    2
    0 הצבעות
    2 פוסטים
    211 צפיות
    רחמיםר

    לגבי הריענון מצאתי את זה:

    Private Declare Function SHChangeNotify Lib "Shell32.dll" (ByVal wEventID As Int32, _ ByVal uFlags As Int32, ByVal dwItem1 As Int32, ByVal dwItem2 As Int32) As Int32 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click SHChangeNotify(&H8000000, &H0, 0, 0) End Sub

    אבל עדיין אני לא ידע איך להגדיר שהאייקון ילקח מתוך My.Resources

    פורסם במקור בפורום CODE613 ב04/10/2013 13:38 (+03:00)

  • המרת דף PDF לתמונה עם ITextSharp

    8
    0 הצבעות
    8 פוסטים
    469 צפיות
    dovidD

    @רחמים

    אבל קיבלתי שגיאה: [code]Could not load file or assembly 'libpdf.dll' or one of its dependencies. ‏‏המודול שצוין לא נמצא.

    שים את כל הDLL בתיקיית ההרצה ונסה שוב.

    @רחמים

    נכון, אבל תקן אותי אם אני טועה, אני חושב שכיון שיש לנו את כל המידע על דף הPDF אנו יכולים ליצור תמונה עם פקודות DrawImage ו DrawString שהרי זה לא בעיה לחלץ מתוך הדף את התמונות שלו וכן כנראה יש דרך לדעת כל אות ואות מה ה X וה Y שלה וכן מה הגופן שלה וכו' וכך אפשר ליצור תמונה שתראה ממש כמו דף ה PDF. מי שמכיר את ITEXT טוב בטח ידע להגיד אם אני צודק או לא.

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

    פורסם במקור בפורום CODE613 ב06/10/2013 13:22 (+03:00)

  • פוקוס בטופס WPF

    4
    0 הצבעות
    4 פוסטים
    344 צפיות
    dovidD

    @ayalaleora

    אין צורך לשייך אירוע לכל פקד בטופס גם ב-WPF יש אפשרות של KEYPREVIEW בטופס כך שכל אירוע בפקד יודיע לטופס שהתרחש.

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

    תודה!

    פורסם במקור בפורום CODE613 ב08/10/2013 11:18 (+03:00)

  • פונקציה בסטרינג C#

    2
    0 הצבעות
    2 פוסטים
    286 צפיות
    dovidD
    " fsdfsd".Trim();

    פורסם במקור בפורום CODE613 ב02/10/2013 16:41 (+03:00)

בא תתחבר לדף היומי!