Zeus RelayCommand Ver. 1.0
|
|
- Ευγένεια Ηλιόπουλος
- 6 χρόνια πριν
- Προβολές:
Transcript
1 Zeus RelayCommand Ver. 1.0 Manual Copyright 2018 Χρήστος Μουρατίδης
2 Zeus RelayCommand ZEUS RELAYCOMMAND VERSION Ο ΟΡΙΣΜΟΣ ΤΗΣ ΚΛΑΣΗΣ... 3 ΔΙΑΝΟΜΗ... 4 ΕΠΙΚΟΙΝΩΝΙΑ... 5 ΠΑΡΑΔΕΙΓΜΑ ΧΡΗΣΗΣ... 6 Η ΚΛΑΣΗ MEMBER... 7 Η ΚΛΑΣΗ MEMBERSVIEWMODEL... 9 Η ΚΛΑΣΗ MEMBERSVIEW VALIDATIONRULE VALUECONVERTERS Σελίδα 1
3 Zeus RelayCommand Zeus RelayCommand version 1.0 Κλάσεις: RelayCommand. Inherits: - Implements: System.Windows.Input.ICommand interface. Namespace: Zeus.WPF.Classes.Commands Assembly: ZeusRelayCommand (in ZeusRelayCommand.dll) Dependencies: - Περιγραφή Η κλάση Zeus RelayCommand έχει δημιουργηθεί για να βοηθήσει στη χρήση των commands σε μία WPF εφαρμογή, η οποία σχεδιάζεται με βάση το MVVM (Model-View-ViewModel) πρότυπο. Για παράδειγμα, μπορούμε να δημιουργήσουμε ένα RelayCommand με όνομα AddCustomer το οποίο θα τεθεί ως ιδιότητα σε μία κλάση ViewModel (π.χ. CustomersViewModel.vb). Μέσα στην κλάση του ViewModel υλοποιούμε τις μεθόδους CanExecute (πότε θα είναι δυνατή η προσθήκη του πελάτη, π.χ αν δεν δοθεί το επώνυμό του δεν θα είναι ενεργό το command) και Execute (πώς θα γίνει η προσθήκη του πελάτη π.χ. σε μία Βάση Δεδομένων) που συνοδεύουν ένα ICommand. Στη συνέχεια, σε ένα WPF window με όνομα CustomersView.xaml συνδέουμε ένα button "Αdd Customer", μέσω binding έκφρασης, με την ιδιότητα AddCustomer του ViewModel. Βεβαίως, αυτή είναι μία γενική επεξήγηση της χρήσης του RelayCommand και για να το χρησιμοποιήσει κάποιος πρέπει να γνωρίζει τις βασικές αρχές του σχεδιαστικού προτύπου MVVM. Σελίδα 2
4 Zeus RelayCommand Ο ορισμός της κλάσης Η κλάση έχει οριστεί ως εξής: Για την κλάση RelayCommand: Σύνταξη: VB: Public Class RelayCommand Implements ICommand XAML Object Element Usage: Δεν χρησιμοποιείται σε XAML κώδικα. Σελίδα 3
5 Zeus RelayCommand Διανομή Κατά τη διανομή, στο φάκελο της εφαρμογής σας πρέπει να αντιγράψετε το assembly αρχείο ZeusRelayCommand.dll. Σελίδα 4
6 Zeus RelayCommand Επικοινωνία Για οποιαδήποτε πληροφορία ή διευκρίνηση παρακαλώ επικοινωνήστε στο : mouratx@yahoo.com ή mouratx@hotmail.com Χρήστος Μουρατίδης, Πειραιάς, Σεπτέμβριος 2018 Υ.Γ. Μπορείτε να επικοινωνήσετε μαζί μου για να προμηθευτείτε το βιβλίο μου "Μάθετε το WPF με τη Visual Basic" (1.333 σελίδες, Αυτοέκδοση 2018). Σελίδα 5
7 Παράδειγμα χρήσης Θα υποθέσουμε ότι έχουμε ένα συνδρομητικό σύστημα, μέρος του οποίου είναι η καταχώρηση στοιχείων μελών (members). Για κάθε μέλος θα κρατάμε τα στοιχεία: Επώνυμο, Όνομα, Ποσό συνδρομής και Ημερομηνία λήξης συνδρομής. Η αποθήκευση, για λόγους απλότητας, θα γίνεται σε μία δομή συλλογής στοιχείων (ObservableCollection στο WPF). Θα χρειαστεί να γίνουν τα εξής: Να δημιουργηθεί το μοντέλο του συστήματος (Model). Στην προκειμένη περίπτωση, θα περιλαμβάνει μόνο την κλάση μέλους, με όνομα Member. Το αρχείο της κλάσης θα έχει όνομα Member.vb. Να δημιουργηθεί φόρμα εμφάνισης των μελών και καταχώρησης των στοιχείων ενός μέλους (View). Στην προκειμένη περίπτωση, θα είναι ένα WPF παράθυρο με όνομα MembersView.xaml. Να δημιουργηθεί ο "μεσάζων", δηλαδή η κλάση ViewModel. Εδώ ορίζονται όλοι οι τύποι δεδομένων και καθώς και άλλες δομές που θα χρειαστούν για την εμφάνιση των δεδομένων στο MembersView καθώς και την αντίστροφη πορεία, δηλαδή την αποθήκευση στο ObservableCollection (σε πραγματικές συνθήκες θα ήταν σε Βάση Δεδομένων). Το όνομα αυτής της ενδιάμεση κλάσης θα είναι MembersViewModel και θα αποθηκευτεί στο ομώνυμο αρχείο κλάσης MembersViewModel.vb. Εδώ, θα ορίσουμε τα RelayCommands για την έναρξη της προσθήκης/διόρθωσης και διαγραφή ενός μέλους καθώς και για την αποθήκευση/ακύρωση της τρέχουσας προσθήκης/διόρθωσης των στοιχείων μέλους. Στις επόμενες σελίδες υλοποιούμε τα παραπάνω.
8 Η κλάση Member Πρώτα θα ορίσουμε την κλάση για την οντότητα του Μέλους. Για κάθε μέλος θα κρατάμε τα στοιχεία: Επώνυμο (LastName), Όνομα (FirstName), Ποσό συνδρομής (SubscriptionAmount) και Ημερομηνία λήξης συνδρομής (SubscriptionExpires) Το αρχείο της κλάσης ονομάζεται Member.vb. Imports System.ComponentModel '*********************************************************************************** '*********** The class for the Member's data. Part of the Model **************** '*********************************************************************************** Public Class Member Inherits NotifyPropertyChangedBase 'Private backing fields. Private _lastname As String Private _firstname As String Private _subscriptionamount As Decimal Private _subscriptionexpires As Nullable(Of Date) 'CLR properties - data fields. Public Property LastName As String Get Return _lastname End Get Set(ByVal value As String) _lastname = value OnPropertyChanged(Me, New PropertyChangedEventArgs("LastName")) End Set End Property Public Property FirstName As String Get Return _firstname End Get Set(ByVal value As String) _firstname = value OnPropertyChanged(Me, New PropertyChangedEventArgs("FirstName")) End Set End Property Public Property SubscriptionAmount As Decimal Get Return _subscriptionamount End Get Set(ByVal value As Decimal) _subscriptionamount = value OnPropertyChanged(Me, New PropertyChangedEventArgs("SubscriptionAmount")) End Set Σελίδα 7
9 End Property Public Property SubscriptionExpires As Nullable(Of Date) Get Return _subscriptionexpires End Get Set(ByVal value As Nullable(Of Date)) _subscriptionexpires = value OnPropertyChanged(Me, New PropertyChangedEventArgs("SubscriptionExpires")) End Set End Property 'Constructor. Public Sub New() _lastname = String.Empty _firstname = String.Empty _subscriptionamount = 0 _subscriptionexpires = Date.Now.AddDays(360) 'a commercial year later. End Sub Public Overrides Function ToString() As String Return String.Format("{0} {1}", _lastname, _firstname) End Function End Class Σελίδα 8
10 Η κλάση MembersViewModel Παραθέτουμε ολόκληρη την κλάση MembersViewModel, η οποία αποθηκεύεται στο αρχείο MembersViewModel.vb. Τα υπερφωτισμένα σημεία αφορούν το RelayCommand: Imports System.Collections.ObjectModel Imports System.ComponentModel Imports Zeus.WPF.Classes.Commands ''' <summary> '''The ViewModel class that provides data for the MembersView.xaml. ''' </summary> Public Class MembersViewModel Inherits NotifyPropertyChangedBase 'The internal collection that stores the members data. Private _membersobservablecollection As ObservableCollection(Of Member) Private currentmember As New Member Private backupcurrentmember As New Member #Region "Command Properties" Public Property AddMemberCommand As New RelayCommand(New Action(Of Object) (AddressOf AddMemberCommandExecute), _ New Func(Of Object, Boolean)(AddressOf AddMemberCommandCanExecute)) Public Property EditMemberCommand As New RelayCommand(New Action(Of Object) (AddressOf EditMemberCommandExecute), _ New Func(Of Object, Boolean)(AddressOf EditMemberCommandCanExecute)) Public Property DeleteMemberCommand As New _ RelayCommand(New Action(Of Object)(AddressOf DeleteMemberCommandExecute), _ New Func(Of Object, Boolean)(AddressOf DeleteMemberCommandCanExecute)) Public Property SaveMemberDetailsCommand As New _ RelayCommand(New Action(Of Object)(AddressOf SaveMemberDetailsCommandExecute),_ New Func(Of Object, Boolean)(AddressOf SaveMemberDetailsCommandCanExecute)) Public Property CancelEditMemberDetailsCommand As New _ RelayCommand(New Action(Of Object) (AddressOf CancelEditMemberDetailsCommandExecute)) #End Region 'Private backing fields for properties. 'for Sorting, Grouping the _membersobservablecollection. Private _memberslistcollectionview As ListCollectionView 'indicating that the process is in add/edit a member. This affects some elements in the UI. Private _iseditmode As Boolean 'indicating that the viewmodel has errors, so not to save the data. Private _haserrors As Boolean #Region "Properties" Σελίδα 9
11 Public Property MembersListCollectionView() As ListCollectionView Get Return _memberslistcollectionview End Get Set(ByVal value As ListCollectionView) _memberslistcollectionview = value OnPropertyChanged(Me, _ New PropertyChangedEventArgs("MembersListCollectionView")) End Set End Property Public Property IsEditMode As Boolean Get Return _iseditmode End Get Set(value As Boolean) _iseditmode = value OnPropertyChanged(Me, New PropertyChangedEventArgs("IsEditMode")) End Set End Property Public Property HasErrors As Boolean Get Return _haserrors End Get Set(value As Boolean) _haserrors = value OnPropertyChanged(Me, New PropertyChangedEventArgs("HasErrors")) End Set End Property Public Property FirstViewElement As FrameworkElement #End Region #Region "Constructor" Public Sub New() End Sub #End Region _membersobservablecollection = New ObservableCollection(Of Member) _memberslistcollectionview = _ CType(CollectionViewSource.GetDefaultView(_membersObservableCollection), _ ListCollectionView) 'Sorting the list by LastName ASC, FirstName ASC. With _memberslistcollectionview.sortdescriptions.add(new SortDescription("LastName", _ ListSortDirection.Ascending)).SortDescriptions.Add(New SortDescription("FirstName", _ ListSortDirection.Ascending)) End With _iseditmode = False _haserrors = False Σελίδα 10
12 #Region "Command handlers" '--- Add Member Private Function AddMemberCommandCanExecute(parameter As Object) As Boolean Return Not IsEditMode 'disable if it is in add/edit mode. End Function Private Sub AddMemberCommandExecute(parameter As Object) End Sub currentmember = _memberslistcollectionview.addnew() IsEditMode = True 'Set focus to the first element in View. FirstViewElement.Focus() '--- Edit Member Private Function EditMemberCommandCanExecute(parameter As Object) As Boolean 'disable if it is in add/edit mode and there are members. Return (Not IsEditMode) And (_memberslistcollectionview.count > 0) End Function Private Sub EditMemberCommandExecute(parameter As Object) End Sub _memberslistcollectionview.edititem(_memberslistcollectionview.currentitem) currentmember = _memberslistcollectionview.currentedititem BackupMemberData(currentMember, backupcurrentmember) IsEditMode = True 'Set focus to the first element in View. FirstViewElement.Focus() '--- Delete Member Private Function DeleteMemberCommandCanExecute(parameter As Object) As Boolean 'disable if it is in add/edit mode and there are members. Return (Not IsEditMode) And (_memberslistcollectionview.count > 0) End Function Private Sub DeleteMemberCommandExecute(parameter As Object) With _memberslistcollectionview If.CurrentItem IsNot Nothing Then If MessageBox.Show(String.Format("Delete the member : {0}?", _.CurrentItem.ToString), "Confirmation", _ MessageBoxButton.YesNo, MessageBoxImage.Question, _ MessageBoxResult.No) = MessageBoxResult.Yes Then.Remove(.CurrentItem) Σελίδα 11
13 End Sub End If End With End If '--- Save Member details Private Function SaveMemberDetailsCommandCanExecute(parameter As Object) As Boolean Return If(currentMember.LastName.Length > 0, True, False) End Function Private Sub SaveMemberDetailsCommandExecute(parameter As Object) 'Check for errors in the viewmodel input data. If HasErrors Then MessageBox.Show("The form has errors. Please, correct them and retry.", _ "Save member", _ MessageBoxButton.OK, MessageBoxImage.Exclamation) Else 'and if there are not errors then proceed to save the data. With _memberslistcollectionview If.IsAddingNew Then.CommitNew() Else.CommitEdit() End With End If _memberslistcollectionview.refresh() IsEditMode = False End Sub '--- Cancel edit Member details Private Sub CancelEditMemberDetailsCommandExecute(parameter As Object) With _memberslistcollectionview If.IsAddingNew Then Else.CancelNew() endif RestoreMemberData(backupcurrentMember, currentmember) '.CancelEdit() is not working. End With IsEditMode = False End Sub #End Region Σελίδα 12
14 #Region "Public methods" ''' <summary> ''' Creates initially some members data. ''' </summary> Public Sub InitializeSomeMembersData() End Sub With _membersobservablecollection.add(new Member With {.FirstName = "Christos",.LastName = "Mouratidis", _.SubscriptionAmount = 35,.SubscriptionExpires = #9/20/2019#}).Add(New Member With {.FirstName = "Panagiotis",.LastName = "Varzakakos", _.SubscriptionAmount = 25,.SubscriptionExpires = #9/26/2019#}).Add(New Member With {.FirstName = "Maria",.LastName = "Theologou", _.SubscriptionAmount = 35,.SubscriptionExpires = #11/20/2019#}).Add(New Member With {.FirstName = "Sofia",.LastName = "Mellisanidi", _.SubscriptionAmount = 45,.SubscriptionExpires = #9/20/2020#}) End With ''' <summary> ''' Go to the fisrt member. ''' </summary> Public Sub MoveToFirstMember() End Sub #End Region _memberslistcollectionview.movecurrenttofirst() #Region "Private methods" 'The next 2 methods are useful for the edit/cancel process. Private Sub BackupMemberData(sourceMember As Member, backupmember As Member) End Sub With backupmember.lastname = sourcemember.lastname.firstname = sourcemember.firstname.subscriptionamount = sourcemember.subscriptionamount.subscriptionexpires = sourcemember.subscriptionexpires End With Private Sub RestoreMemberData(backupMember As Member, member As Member) End Sub With member.lastname = backupmember.lastname.firstname = backupmember.firstname.subscriptionamount = backupmember.subscriptionamount.subscriptionexpires = backupmember.subscriptionexpires End With Σελίδα 13
15 #End Region End Class Παρατηρήσεις: Για την αποθήκευση των δεδομένων χρησιμοποιούμε ένα εσωτερικό ObservableCollection που αποθηκεύει στοιχεία τύπου Member. Ένα αντικείμενο ObservableCollection ενημερώνει το UI (στην προκειμένη περίπτωση το MembersView.xaml) σε κάθε αλλαγή (προσθήκη/ διαγραφή των αντικειμένων Member). Ένα ListCollectionView αποτελεί ένα χρησιμότατο αντικείμενο για να θέσουμε μία "οπτική" στη συλλογή μας. Παρέχει, μεταξύ άλλων, τη δυνατότητα για ταξινόμηση των στοιχείων της συλλογής μας. Αυτό θα "βλέπει" το UI, μέσω της ιδιότητας MembersListCollectionView. Χρειαζόμαστε την ιδιωτική μεταβλητή currentmember, η οποία κρατάει τα στοιχεία του τρέχοντος μέλους. H backupcurrentmember είναι χρήσιμη για να κρατάει την προηγούμενη "έκδοση" του μέλους σε περίπτωση που ο χρήστης ακυρώσει μία διαδικασία διόρθωσης (cancel edit). Προς το τέλος βρίσκουμε τις δύο private μεθόδους BackupMemberData και RestoreMemberData που αφορούν τη διαδικασία backup/restore του τρέχοντος αντικειμένου Member. Τα υπερφωτισμένα σημεία αφορούν το πώς χρησιμοποιούμε την κλάση RelayCommand. Δηλώνουμε 5 ιδιότητες τύπου RelayCommand για: την έναρξη της προσθήκης ενός νέου μέλους (AddMemberCommand), διόρθωσης των στοιχείων του τρέχοντος μέλους (EditMemberCommand), διαγραφής (DeleteMemberCommand), αποθήκευσης (SaveMemberDetailsCommand) και ακύρωσης προσθήκης/διόρθωσης (CancelEditMemberDetailsCommand). Κατά την αρχικοποίηση ενός RelayCommand (New) μπορούμε να προσδιορίσουμε 2 παραμέτρους: μία διαδικασία Execute μία συνάρτηση CanExecute. Αυτές υλοποιούνται παρακάτω (στο τμήμα "Command handlers"). H διαδικασία Execute περιέχει κώδικα που υλοποιεί τις ενέργειες που πρέπει να γίνουν και η συνάρτηση CanExecute περιέχει κώδικα ελέγχου που προσδιορίζει πότε θα είναι ενεργό το command. Η CanExecute δεν είναι υποχρεωτικό να οριστεί ως παράμετρος στο RelayCommand, οπότε θεωρείται ότι αυτόματα επιστρέφει True, δηλαδή το command θα είναι πάντα ενεργό. Το τελευταίο RelayCommand (CancelEditMemberDetailsCommand) έχει μόνο παράμετρο Execute. Για παράδειγμα, για το EditMemberCommand ορίζεται η παράμετρος EditMemberCommandExecute και στην υλοποίησή της παρακάτω εκτελούμε τις εντολές έναρξης της διόρθωσης του τρέχοντος μέλους (κρατώντας παράλληλα ως backup τα τρέχοντα στοιχεία). Επίσης, ορίζεται και η παράμετρος EditMemberCommandCanExecute και στην υλοποίησή της παρακάτω ελέγχουμε αν είναι ήδη σε κατάσταση προσθήκης/διόρθωσης και αν υπάρχουν αντικείμενα Σελίδα 14
16 Member στη λίστα. Αν ο έλεγχος επιστρέψει True τότε το command θα είναι ενεργό αλλιώς ανενεργό. Αυτό επηρεάζει το UI που συνδέεται με αυτό το command (π.χ. ένα button να είναι enabled/disabled). Να σημειώσουμε ότι, στην υλοποίηση των Execute και CanExecute μπορούμε να περάσουμε επιπρόσθετη πληροφορία μέσω της παραμέτρου parameter. Για παράδειγμα, σε ένα button θα μπορούσαμε να θέσουμε στην ιδιότητα CommandParameter την τιμή που θέλουμε: <Button Command="{Binding EditMemberCommand }" CommandParameter="Edit" ToolTip="Edit a member"... /> Τέλος, υπάρχουν 2 ιδιότητες που λειτουργούν ως μεταβλητές-σημαίες: η IsEditMode, καθορίζει αν η φόρμα βρίσκεται σε κατάσταση προσθήκης/διόρθωσης ενός μέλους. Η τιμή αυτής, επηρεάζει κάποια UI elements στο View (για παράδειγμα, αν είναι True, τότε η λίστα των μελών γίνεται disabled μέχρι να ολοκληρωθεί με save ή cancel η καταχώρηση των στοιχείων του μέλους). η HasErrors, καθορίζει αν η φόρμα περιέχει λάθη. Αν είναι True, τότε δεν επιτρέπεται η αποθήκευση μέχρι να διορθωθεί το λάθος. Για παράδειγμα, αν έχει δοθεί λανθασμένη τιμή στο πεδίο SubscriptionAmount τότε η HasError θα είναι True. Σελίδα 15
17 Η κλάση MembersView Η κλάση MembersView αποτελεί το View κομμάτι για την διαχείριση των μελών. Πρόκειται για ένα παράθυρο, δηλαδή ένα αντικείμενο Window. Το παράθυρο αυτό χωρίζεται σε δύο τμήματα: Αριστερά, μία λίστα των καταχωρημένων μελών και δεξιά, τις λεπτομέρειες του επιλεγμένου μέλους. Στο πάνω μέρος, δίπλα στην επικεφαλίδα τοποθετούμε τρία buttons για την προσθήκη, διόρθωση και διαγραφή μελών. Αυτά τα buttons θα συνδεθούν με τα RelayCommands του ViewModel. Σελίδα 16
18 Όταν πατήσουμε το button "Edit" (το εικονίδιο με το μολύβι) τότε η φόρμα μπαίνει σε edit mode και ταυτόχρονα εμφανίζονται και τα buttons "Save" και "Cancel": Σελίδα 17
19 Όταν πατήσουμε το button "Add" (το εικονίδιο με το +) τότε η φόρμα μπαίνει σε edit mode, τα πεδία είναι κενά ή έχουν τις default τιμές και ταυτόχρονα εμφανίζονται και τα buttons "Save" και "Cancel": Τα buttons "Save" και "Cancel" συνδέονται με αντίστοιχα RelayCommands του ViewModel. Όσον αφορά το button "Save", έχουμε ορίσει στην CanExecute μέθοδο του αντίστοιχου RelayCommand, την κατάλληλη συνθήκη που ορίζει πότε είναι ενεργό. Στην προκειμένη περίπτωση πρέπει το πεδίο LastName να έχει τουλάχιστον έναν χαρακτήρα. Αν η συνθήκη επιστρέψει False τότε το button "Save" θα είναι αυτόματα disabled. Σελίδα 18
20 Επίσης, αν ο χρήστης δώσει λάθος στο πεδίο SubscriptionAmount τότε η φόρμα μπαίνει σε κατάσταση λάθους και το πεδίο κοκκινίζει με ένα θαυμαστικό δεξιά που όταν ο δείκτης του ποντικιού ίπταται σε αυτό εμφανίζει ένα σχετικό μήνυμα: Ο χειριστής όλων αυτών των καταστάσεων είναι το ViewModel. Παραθέτουμε τον κώδικα του MembersView.xaml. Τα styles που χρησιμοποιούμε έχουν οριστεί στο Application.xaml και δεν μας ενδιαφέρουν εδώ να τα παρουσιάσουμε. Τα σημεία ενδιαφέροντος για το RelayCommand είναι υπερφωτισμένα: <Window x:class="membersview" xmlns=" xmlns:x=" xmlns:d=" xmlns:mc=" xmlns:p="clr-namespace:relaycommand_sample_project" mc:ignorable="d" Title="RelayCommand Sample Project" Height=" " Width=" " Loaded="Window_Loaded"> <!-- For global resources (styles etc) goto the Application.xaml --> <Window.Resources > <!-- The data context for the view.--> <p:membersviewmodel x:key="membersviewmodel" /> <!-- ValueConverters--> <p:booleantovisibilityconverter x:key="booleantovisibilityconverter"/> <p:invertbooleanconverter x:key="invertbooleanconverter"/> Σελίδα 19
21 </Window.Resources> <!-- Connect keys with specific commands of the viewmodel.--> <Window.InputBindings > <KeyBinding Key="A" Modifiers="Ctrl" Command="{Binding Source={StaticResource membersviewmodel}, Path=AddMemberCommand}"/> <KeyBinding Key="E" Modifiers="Ctrl" Command="{Binding Source={StaticResource membersviewmodel}, Path=EditMemberCommand}"/> <KeyBinding Key="D" Modifiers="Ctrl" Command="{Binding Source={StaticResource membersviewmodel}, Path=DeleteMemberCommand}"/> </Window.InputBindings> <!-- Content.--> <Grid Margin="20" DataContext="{StaticResource membersviewmodel}"> <Grid.ColumnDefinitions > <ColumnDefinition Width="230"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions > <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <!-- HEADER --> <StackPanel Grid.ColumnSpan="2" Margin="15,0,0,0" Orientation="Horizontal" > <!-- Header text --> <TextBlock Text="Members" Style="{StaticResource h1style}" /> <!-- Action buttons. Add/Edit/Delete member--> <StackPanel Orientation="Horizontal" Margin="30,0,0,0"> <Button Command="{Binding AddMemberCommand }" ToolTip="Add a member"> <Image Source="/ZeusRelayCommand Sample Project;component/Images/Add_32x32.png"/> </Button> <Button Command="{Binding EditMemberCommand }" ToolTip="Edit the selected member" Margin="5,0,0,0"> <Image Source="/ZeusRelayCommand Sample Project;component/Images/Edit_32x32.png"/> </Button> <Button Command="{Binding DeleteMemberCommand }" ToolTip="Delete the selected member" Margin="5,0,0,0"> <Image Source="/ZeusRelayCommand Sample Project;component/Images/Delete_32x32.png"/> </Button> </StackPanel> </StackPanel> Σελίδα 20
22 <!-- 1st Column --> <!-- The member's list.--> <StackPanel Grid.Row="1" Margin="0,15,0,0" > <ListBox Name="lstMembers" IsSynchronizedWithCurrentItem="True" Padding="5" Margin="15,0,0,0" ItemsSource="{Binding MembersListCollectionView}" IsEnabled="{Binding IsEditMode, Mode=OneWay, Converter={StaticResource invertbooleanconverter }}"> </ListBox> </StackPanel> <!-- 2nd Column - member details.--> <Grid Name="grdMemberDetails" Grid.Row="1" Grid.Column="1" Margin="15" Background="Beige" DataContext="{Binding ElementName=lstMembers, Path=SelectedItem}" Language="el"> <Grid.ColumnDefinitions > <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions > <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="85"/> </Grid.RowDefinitions> <!-- header section --> <TextBlock Grid.ColumnSpan="2" Text="Member details" HorizontalAlignment="Center" Margin="0,5,0,0" Style="{StaticResource h2style }"/> <!-- Here, we could use a usercontrol for the member details. We choose on-site.--> <!-- LastName --> <TextBlock Grid.Row="1" Text="LastName: " /> <TextBox Name="txtLastName" Grid.Row="1" Grid.Column="1" Text="{Binding LastName, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Mode=OneWay}" /> <!-- FirstName --> <TextBlock Grid.Row="2" Text="FirstName: " /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding FirstName}" IsEnabled="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Mode=OneWay}" /> <!-- SubscriptionAmount --> <TextBlock Grid.Row="3" Text="SubscriptionAmount: " /> <TextBox Name="txtSubscriptionAmount" Grid.Row="3" Grid.Column="1" IsEnabled="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Mode=OneWay}" Style="{StaticResource NumericTextBoxStyle }" Validation.ErrorTemplate="{StaticResource validationerrortemplate }" Validation.Error="txtSubscriptionAmount_Error" > Σελίδα 21
23 </Grid> </Window> </Grid> Παρατηρήσεις: <Binding Path="SubscriptionAmount" StringFormat="{}{0:C2}" NotifyOnValidationError="True" > <Binding.ValidationRules > <p:validatedecimal ErrorMessage="Please, give a valid amount"/> </Binding.ValidationRules> </Binding> </TextBox> <!-- SubscriptionExpires --> <TextBlock Grid.Row="4" Text="SubscriptionExpires: " /> <DatePicker Grid.Row="4" Grid.Column="1" SelectedDate="{Binding SubscriptionExpires}" IsEnabled="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Mode=OneWay}" Height="30"> </DatePicker> <!-- The Save and Cancel buttons. They are vidible only when the members details secion is in EditMode. --> <StackPanel Name="stkSaveAndCancelButtons" Grid.Column="1" Grid.Row="5" Orientation="Horizontal" Margin="5,20" TextElement.FontSize="16" TextElement.FontWeight="Bold" Visibility="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Converter={StaticResource booleantovisibilityconverter}, ConverterParameter=Hidden}"> <StackPanel.Resources > <!-- The style for the inside buttons--> <Style TargetType="{x:Type Button}"> <Setter Property="FontSize" Value="16"/> <Setter Property="FontWeight" Value="Bold"/> <Setter Property="Padding" Value="10"/> <Setter Property="Width" Value="100"/> </Style> </StackPanel.Resources> <Button Name="btnSave" Content="Save" Command="{Binding Source={StaticResource membersviewmodel}, Path=SaveMemberDetailsCommand}" /> <Button Name="btnCancel" Content="Cancel" Margin="10,0,0,0" Command="{Binding Source={StaticResource membersviewmodel}, Path=CancelEditMemberDetailsCommand }"/> </StackPanel> Ορίζουμε ως resource το αντικείμενο membersviewmodel. Αυτό παρακάτω θα χρησιμοποιηθεί ως data context για το Grid και οι διάφορες ιδιότητές του θα γίνουν binding Σελίδα 22
24 με τις ιδιότητες μερικών UI elements. Για παράδειγμα, το ListBox με τη λίστα των μελών, έχει την ιδιότητα IsEnabled που γίνεται binding με την ιδιότητα IsEditMode του membersviewmodel. Μάλιστα, όταν η IsEditMode είναι True (κατάσταση προσθήκης/διόρθωσης) θέλουμε ή IsEnabled να είναι False (το ListBox μη ενεργό). Γι' αυτό το λόγο, χρησιμοποιούμε επιπλέον κι ένα ValueConverter με όνομα invertbooleanconverter, τον κώδικα του οποίου παραθέτουμε παρακάτω. Συνδέουμε τα AddMemberCommand, EditMemberCommand και DeleteMemberCommand με συγκεκριμένα πλήκτρα συντόμευσης. Να σημειώσουμε, όμως, ότι τα πλήκτρα ενεργοποιούνται όταν το παράθυρο έχει την εστίαση. Συνδέουμε τα AddMemberCommand, EditMemberCommand, DeleteMemberCommand, SaveMemberDetailsCommands και CancelMemberDetailsCommand με τα σχετικά buttons του παραθύρου, μέσω έκφρασης binding. O κώδικας υλοποίησής τους βρίσκεται στο MembersViewModel.vb. Ο κώδικας του MembersView.xaml.vb: Class MembersView Private membersviewmodel As MembersViewModel 'errors counter for the validation purpose. Private errorscountonsubscriptionamount As Integer Private Sub Window_Loaded(sender As Object, e As RoutedEventArgs) End Sub 'Get the view model. membersviewmodel = CType(Me.FindResource("membersViewModel"), MembersViewModel) 'and create some sample data. membersviewmodel.initializesomemembersdata() 'Define that the first element in View is the txtlastnmae. 'This is useful for focus purpose at the beginning on add/edit proccess. membersviewmodel.firstviewelement = txtlastname 'Move to the first member. membersviewmodel.movetofirstmember() 'Check for errors in the subscription amount. Private Sub txtsubscriptionamount_error(sender As Object, _ e As ValidationErrorEventArgs) Dim txtbox As TextBox = TryCast(sender, TextBox) If txtbox IsNot Nothing Then 'The standard mechanism for checking the field errors. errorscountonsubscriptionamount = _ If(e.Action = ValidationErrorEventAction.Added, _ errorscountonsubscriptionamount + 1, _ errorscountonsubscriptionamount - 1) Σελίδα 23
25 End If End Sub End Class membersviewmodel.haserrors = If(errorsCountOnSubscriptionAmount = 0, _ False, True) Σελίδα 24
26 ValidationRule Στο MembersView χρησιμοποιούμε ένα ValidationRule στο πεδίο SubscriptionAmount. Αυτό κάνει έναν τυπικό έλεγχο για το αν εισάγεται μία έγκυρη τιμή τύπου Decimal. Έχει εισαχθεί στο project σε ένα αρχείο κλάσης με όνομα ValidateDecimal.vb και ο κώδικας είναι ο εξής: Imports System.Globalization ''' <summary> ''' Validates a string object. Valid if it contains a decimal number. The string object cannot be empty. ''' </summary> Public Class ValidateDecimal Inherits ValidationRule ''' <summary> ''' An error message when the string value doesn't contain a decimal number. ''' </summary> ''' <returns>a String message when the validation fails, otherwise nothing.</returns> Public Property ErrorMessage As String = "Incorrect value." Public Overrides Function Validate(value As Object, cultureinfo As CultureInfo) As ValidationResult Dim isvalid As Boolean = False If value IsNot Nothing AndAlso value.tostring.trim.length > 0 Then Try End If Catch End Try Dim val As Decimal = Decimal.Parse(value, NumberStyles.Any) isvalid = True Return If(isValid, New ValidationResult(True, Nothing), _ New ValidationResult(False, ErrorMessage)) End Function End Class Η χρήση του στο MembersView.xaml: <TextBox Name="txtSubscriptionAmount" Grid.Row="3" Grid.Column="1" IsEnabled="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Mode=OneWay}" Style="{StaticResource NumericTextBoxStyle }" Validation.ErrorTemplate="{StaticResource validationerrortemplate }" Validation.Error="txtSubscriptionAmount_Error" > <Binding Path="SubscriptionAmount" StringFormat="{}{0:C2}" NotifyOnValidationError="True" > <Binding.ValidationRules > Σελίδα 25
27 </TextBox> <p:validatedecimal ErrorMessage="Please, give a valid amount"/> </Binding.ValidationRules> </Binding> Σελίδα 26
28 ValueConverters Στο MembersView χρησιμοποιούμε δύο ValueConverters, τα οποία μάλιστα απαιτούνται πολύ συχνά στις εφαρμογές μας όπου έχουμε binding συνδέσεις. Το BooleanToVisibilityConverter, το οποίο μετατρέπει μία τιμή Boolean σε μία τιμή Visibility. Χρησιμοποιείται στην περίπτωση που έχουμε ένα σενάριο όπου ανάλογα με το αν η source τιμή είναι True τότε το element στο View να εμφανίζεται αλλιώς όχι. Μάλιστα στην κλάση που παραθέτουμε πιο κάτω, μπορούμε να περάσουμε ως παράμετρο την τιμή "Hiddden" αν θέλουμε το element να κρυφτεί (με δέσμευση, όμως, του χώρου που καταλαμβάνει) αλλιώς θα γίνει collapsed. <StackPanel Name="stkSaveAndCancelButtons" Grid.Column="1" Grid.Row="5" Orientation="Horizontal" Margin="5,20" TextElement.FontSize="16" TextElement.FontWeight="Bold" Visibility="{Binding Source={StaticResource membersviewmodel }, Path=IsEditMode, Converter={StaticResource booleantovisibilityconverter}, ConverterParameter=Hidden}"> Το InvertBooleanConverter, το οποίο αναστρέφει μία Boolean τιμή. Στην περίπτωσή μας, η λίστα των μελών (ListBox) απενεργοποιείται όταν η φόρμα των λεπτομερειών μέλους μπαίνει σε κατάσταση προσθήκης/διαγραφής. Τεχνικά μιλώντας, όταν η ιδιότητα IsEditMode του αντικειμένου MembersViewModel γίνεται True τότε η ιδιότητα IsEnabled του ListBox γίνεται False. <ListBox Name="lstMembers" IsSynchronizedWithCurrentItem="True" Padding="5" Margin="15,0,0,0" ItemsSource="{Binding MembersListCollectionView}" IsEnabled="{Binding IsEditMode, Mode=OneWay, Converter={StaticResource invertbooleanconverter }}"> Παραθέτουμε τους VB κώδικες των κλάσεων που βρίσκονται στα ομώνυμα αρχεία BooleanToVisibilityConverter.vb και InvertBooleanConverter.vb. <ValueConversion(GetType(Boolean), GetType(Visibility))> Public Class BooleanToVisibilityConverter Implements IValueConverter Public Function Convert(ByVal value As Object, ByVal targettype As System.Type, _ ByVal parameter As Object, _ ByVal culture As System.Globalization.CultureInfo) As Object _ Implements System.Windows.Data.IValueConverter.Convert Try Dim boolvalue As Nullable(Of Boolean) = System.Convert.ToBoolean(value) If boolvalue Is Nothing Then Return Nothing Else If boolvalue = True Then Σελίδα 27
29 Return Visibility.Visible Else If parameter IsNot Nothing Then Return If(parameter.ToString = "Hidden", Visibility.Hidden, _ Visibility.Collapsed) Else Return Visibility.Collapsed End If End If End If Catch ex As Exception Return Nothing End Try End Function Public Function ConvertBack(value As Object, targettype As Type, parameter As Object, _ culture As Globalization.CultureInfo) As Object _ Implements IValueConverter.ConvertBack Throw New NotSupportedException () End Function End Class ' <ValueConversion(GetType(Boolean), GetType(Boolean))> Public Class InvertBooleanConverter Implements IValueConverter Public Function Convert(ByVal value As Object, ByVal targettype As System.Type, _ ByVal parameter As Object, _ ByVal culture As System.Globalization.CultureInfo) As Object _ Implements System.Windows.Data.IValueConverter.Convert Try Dim booleanvalue As Boolean = System.Convert.ToBoolean(value) 'Reverse. Return Not booleanvalue Catch ex As Exception Return True End Try End Function Public Function ConvertBack(value As Object, targettype As Type, parameter As Object, _ culture As Globalization.CultureInfo) As Object _ Implements IValueConverter.ConvertBack Throw New NotSupportedException () End Function Σελίδα 28
30 End Class Σελίδα 29
Zeus ColorControls Ver Manual
Zeus ColorControls Ver. 1.0 Manual Copyright 2018 Χρήστος Μουρατίδης Σελίδα 0 Zeus ColorControls ZEUS COLORCONTROLS VERSION 1.0... 2 ΟΙ ΟΡΙΣΜΟΙ ΤΩΝ ΚΛΑΣΕΩΝ... 4 ΔΙΑΝΟΜΗ... 5 ΕΠΙΚΟΙΝΩΝΙΑ... 6 COLORSWATCHHTML16...
Zeus UpDownControls Ver. 1.0
Zeus UpDownControls Ver. 1.0 Manual Copyright 2018 Χρήστος Μουρατίδης Zeus UpDownControls Πίνακας περιεχομένων ZEUS UPDOWNCONTROLS VERSION 1.0... 4 ΟΙ ΟΡΙΣΜΟΙ ΤΩΝ ΚΛΑΣΕΩΝ... 6 ΔΙΑΝΟΜΗ... 10 ΕΠΙΚΟΙΝΩΝΙΑ...
Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database
Πώς εκτυπώνουμε μία λίστα από εγγραφές μίας Access database Στο παρόν παράδειγμα, θα δούμε πώς εκτυπώνουμε έναν κατάλογο με συγκεκριμένα στοιχεία μαθητών, με γραμματοσειρά σταθερού πλάτους. Δηλαδή, θα
Πώς εκτυπώνουμε μία λίστα εγγραφών από μία Access database (γενικός τρόπος)
Πώς εκτυπώνουμε μία λίστα εγγραφών από μία Access database (γενικός τρόπος) Το προηγούμενο tip αναφέρεται στην εκτύπωση με γραμματοσειρά σταθερού πλάτους. Στο παρόν, θα δούμε έναν γενικό τρόπο εκτύπωσης
Δομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook
Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Βήμα 1: Step 1: Βρείτε το βιβλίο που θα θέλατε να αγοράσετε και πατήστε Add to Cart, για να το προσθέσετε στο καλάθι σας. Αυτόματα θα
Γράψιμο και Διάβασμα σε φύλλο του Excel
Γράψιμο και Διάβασμα σε φύλλο του Excel Το παρακάτω παράδειγμα γράφει και διαβάζει πληροφορίες σε αρχείο του Excel (workbook). Το απλοϊκό παράδειγμά μας αφορά ένα βιβλιοπωλείο που κρατά, για κάθε βιβλίο,
ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009
ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2009 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΤΑΞΗ : Β ΗΜΕΡΟΜΗΝΙΑ: Τετάρτη, 3 Ιουνίου 2009 ΩΡΑ: 07:45 10:15 ΟΔΗΓΙΕΣ: Το εξεταστικό δοκίμιο αυτό αποτελείται
1. ΕΛΕΓΧΟΙ ΕΓΚΥΡΟΤΗΤΑΣ ΣΕ ΜΙΑ ΦΟΡΜΑ
Αναλυτικά Data Validation FORM LEVEL VALIDATION - DATA LEVEL VALIDATION - επίπεδο φόρμας επίπεδο dataset 1. ΕΛΕΓΧΟΙ ΕΓΚΥΡΟΤΗΤΑΣ ΣΕ ΜΙΑ ΦΟΡΜΑ Έλεγχος εγκυρότητας δεδοµένων σε ένα Control της φόρµας event
ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΕΦΑΡΜΟΓΗΣ ΔΙΑΧΕΙΡΙΣΗΣ ΑΜΕΣΟΥ ΑΡΧΕΙΟΥ ΣΕ ΠΕΡΙΒΑΛΛΟΝ VISUAL STUDIO NET
1. Ανοίξτε το πρόγραμμα Microsoft Visual Studio Net 2. Στην start page επιλέξτε my profile 3. Στο πεδίο profile επιλέξτε visual basic developer και κλείστε την start page 4. Επιλέξτε File New Project 5.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το αντικείμενο input
Αντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010
Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15
Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)
Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel
Επεξεργασία πολλαπλών φύλλων εργασίας - Γραφημάτων Excel 11.1. Πολλαπλά φύλλα εργασίας Στο προηγούμενο κεφάλαιο δημιουργήσαμε ένα φύλλο εργασίας με τον προϋπολογισμό δαπανών του προσωπικού που θα συμμετάσχει
alpha Language age (3/5) alpha Language Φροντιστήριο Syntax Directed Translation and
alpha Language (1/5) ΗΥ-340 Γλώσσες και Μεταφραστές Φροντιστήριο Syntax Directed Translation and alpha Language Στην alpha δεν υπάρχει main() συνάρτηση, ο κώδικας ξεκινάει την εκτέλεση από την αρχή του
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση
Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
Στοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής
Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος
Κατανεμημένα Συστήματα. Javascript LCR example
Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate
ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES
ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES 2. ΠΑΤΗΣΤΕ EDIT ΑΛΛΑΞΤΕ ΤΟ ΟΝΟΜΑ COMPANY CLOSE 3. ΠΑΤΗΣΤΕ NEW (CREATE NEW)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Οδηγίες Προσαρτήματος
Οδηγίες Προσαρτήματος Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας εκτύπωσης Προσαρτήματος στην εφαρμογή Γενική Λογιστική Παρακάτω προτείνεται μια αλληλουχία ενεργειών
Τα αντικείμενα ή Χειριστήρια και οι βασικές ιδιότητες τους (properties)
Καθηγητής : Κώστας Αχιλλέως ΒΑΣΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΣΤΗ VISUAL BASIC A ΛΥΚΕΙΟΥ ΚΑΤΕΥΘΥΝΣΗΣ Α) Τι είναι η Visual Basic Είναι μια γλώσσα οπτικού προγραμματισμού υψηλού επιπέδου. Β) Οπτικός
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Δημιουργία αντικειμένου Scanner Scanner input = new Scanner(System.in); Το
ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ
ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΕΠΑΛΗΘΕΥΣΕΙΣ ΦΟΡΕΑ ΕΠΑΛΗΘΕΥΣΕΩΝ ΔΑΠΑΝΩΝ (ΦΕΔ)» 1η Έκδοση: 2016 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων με κοινά χαρακτηριστικά και κοινή συμπεριφορά. Ένα καλούπι/πρότυπο
Σχεδόν όλες οι ιστοσελίδες βασίζονται σε μεγάλο βαθμό σε πίνακες. Για να εισάγουμε έναν πίνακα επιλέγουμε από το μενού Insert->Table.
DreamWeaver - Άσκηση 4η Πίνακες Παρακάτω θα δούμε πως μπορούμε να δημιουργούμε και να επεξεργαζόμαστε πίνακες, μια πολύ βασική δομή. Θα δούμε πως γίνεται εισαγωγή πίνακα, ένωση κελιών του πίνακα, προσθήκη
ΤΗΛΕΦΩΝΙΚΗ ΣΥΣΚΕΥΗ SNOM 300 έκδοση ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΙΣΤΟΣΕΛΙΔΑΣ
ΤΗΛΕΦΩΝΙΚΗ ΣΥΣΚΕΥΗ SNOM 300 έκδοση 8.7.5.44 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΙΣΤΟΣΕΛΙΔΑΣ Πίνακας περιεχομένων ΑΡΧΙΚΗ ΣΕΛΙΔΑ... 1 ΕΝΤΟΛΕΣ MENOY... 2 1. ΛΕΙΤΟΥΡΓΙΑ (Operation)... 2 1.1 Αρχική Σελίδα (Home)... 2 1.2 Κατάλογος
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο
Τετάρτη, 30 Οκτωβρίου 2013 Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο Λύστε στο Visual Basic Express 2010 τις παρακάτω ασκήσεις: 1. Να δημιουργήσετε ένα νέο Project του είδους Console
How to register an account with the Hellenic Community of Sheffield.
How to register an account with the Hellenic Community of Sheffield. (1) EN: Go to address GR: Πηγαίνετε στη διεύθυνση: http://www.helleniccommunityofsheffield.com (2) EN: At the bottom of the page, click
Δυναμική μνήμη με πίνακες και λίστες
Δυναμική μνήμη με πίνακες και λίστες Ατζέντα ονομάτων Οι πίνακες βοηθάνε στην εύκολη προσπέλαση, στην σειριοποίηση των δεδομένων για αποθήκευση ή μετάδοση. Απαιτούν ωστόσο είτε προκαταβολική δέσμευση μνήμης
Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών:
Άσκηση 1 (α) Να διατυπώσετε την πιο κάτω λογική έκφραση στη Visual Basic κάνοντας χρήση μεταβλητών: (Μον.2) Η ηλικία είναι μεταξύ των 15 και 18 συμπεριλαμβανομένων (β) Αν Χ= 4, Υ=2, Κ=2 να βρείτε το αποτέλεσμα
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ
1 Ο Ι.Ε.Κ ΠΕΙΡΑΙΑ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ V ΕΚΠΑΙΔΕΥΤΗΣ ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ Δημιουργία Βάσης Δεδομένων σε Περιβάλλον VISUAL BASIC: 1. Κλικ στο Add-Ins 2. Επιλέγω Visual Data
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 2 η : Η Γλώσσα Προγραμματισμού VB.NET (1 ο Μέρος) Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής
ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο
ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ
ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΣΚΛΗΣΕΩΝ ΕΡΓΩΝ ΣΧΕΔΙΩΝ ΧΟΡΗΓΙΩΝ» 1η Έκδοση: 2015 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...3
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Δομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL
VBA ΣΤΟ WORD. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Version 25-7-2015 ΗΜΙΤΕΛΗΣ!!!!
VBA ΣΤΟ WORD Version 25-7-2015 ΗΜΙΤΕΛΗΣ!!!! Μου παρουσιάστηκαν δύο θέματα. 1. Συχνά, όταν ήθελα να δώσω ένα φυλλάδιο εργασίας με ασκήσεις στους μαθητές έκανα το εξής: Εγραφα σε ένα αρχείο του Word τις
Manual. Εκλογές 15μελούς Σχολείου v4.0 Module καταχώρησης ψηφοδελτίων από την Εφορευτική Επιτροπή
Manual Εκλογές 15μελούς Σχολείου v4.0 Module καταχώρησης ψηφοδελτίων από την Εφορευτική Επιτροπή Χρήστος Μουρατίδης Πειραιάς 2019 Περιεχόμενα ΕΙΣΑΓΩΓΗ... 3 ΤΟ ΠΡΟΓΡΑΜΜΑ... 3 ΔΥΝΑΤΟΤΗΤΕΣ... 4 ΑΠΑΙΤΗΣΕΙΣ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι
Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/
Διαχείριση Επαγγελματιών Εταιρίας
Διαχείριση Επαγγελματιών Εταιρίας Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της Διαδικασίας Διαχείρισης Ελεύθερων Επαγγελματιών Εταιρίας. Παρακάτω προτείνεται μια αλληλουχία
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα 1 Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται πάνω σε μία ευθεία πάντα
Αντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Όλοι οι χρήστες του Turnitin πρέπει να δημιουργήσουν ένα προφίλ χρήστη.
Οδηγίες για καθηγητές Για τη χρήση του Turnitin απαιτούνται τα παρακάτω βήματα: 1. Δημιουργία λογαριασμού 2. Δημιουργία τάξης και διαχείριση πληροφοριών τάξης 3. Δημιουργία εργασίας και σχετικές ρυθμίσεις
Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής
Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους
1. Απαιτήσεις εργασίας
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ Τμήμα Πολιτισμικής Τεχνολογίας & Επικοινωνίας 2 η Εργασία στο μάθημα «Δικτυακά Πολυμέσα Ι»: «Δημιουργία φόρμας για online αίτηση εργασίας με HTML - Javascript» Ημερομηνία παράδοσης:
άσκηση Hide UI Elements 7.2 Try and Catch
7.1 Hide UI Elements Στο Android Studio όταν θέλουμε να κρύψουμε οτιδήποτε (κάποιο Button, ένα TextView, ένα ImageView κλπ) μπορούμε να χρησιμοποιήσουμε την παρακάτω εντολή: setvisibility(view.invisible)
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 4 η : Η Γλώσσα Προγραμματισμού VB.NET (3 ο Μέρος) Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής & Χρηματοοικονομικής
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)
Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα
Εκπαίδευση KOHA ΚΟΗΑ ΠΕΡΙΟΔΙΚΑ ΑΝΑΖΗΤΗΣΗ ΠΕΡΙΟΔΙΚΩΝ / ΠΕΡΙΛΗΨΗ ΑΠΟΚΤΗΜΑΤΩΝ / ΣΥΝΔΡΟΜΕΣ ΠΕΡΙΟΔΙΚΩΝ / ΠΑΡΑΛΑΒΗ ΤΕΥΧΩΝ / ΚΛΕΙΣΤΕΣ ΣΥΝΔΡΟΜΕΣ
ΚΟΗΑ ΠΕΡΙΟΔΙΚΑ ΑΝΑΖΗΤΗΣΗ ΠΕΡΙΟΔΙΚΩΝ / ΠΕΡΙΛΗΨΗ ΑΠΟΚΤΗΜΑΤΩΝ / ΣΥΝΔΡΟΜΕΣ ΠΕΡΙΟΔΙΚΩΝ / ΠΑΡΑΛΑΒΗ ΤΕΥΧΩΝ / ΚΛΕΙΣΤΕΣ ΣΥΝΔΡΟΜΕΣ 1 1. ΑΝΑΖΗΤΗΣΗ ΠΕΡΙΟΔΙΚΩΝ 1.1. Από την αρχική οθόνη Στο πλαίσιο αναζήτησης της αρχικής
Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε.
Ιατρική Πληροφορική Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ.Ε. Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio103/ https://eclass.teiath.gr/courses/tio100/
Εισαγωγή στο MATLAB. Κολοβού Αθανασία, ΕΔΙΠ,
Εισαγωγή στο MATLAB Κολοβού Αθανασία, ΕΔΙΠ, akolovou@di.uoa.gr Εγκατάσταση του Matlab Διανέμεται ελεύθερα στα μέλη του ΕΚΠΑ το λογισμικό MATLAB με 75 ταυτόχρονες (concurrent) άδειες χρήσης. Μπορείτε να
Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Dynamic types, Lambda calculus machines Apr 21 22, 2016 1 Dynamic types and contracts (a) To make sure you understand the
ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή
Management Classes Create Class Create Class Management Classes List of Classes
Class Create Class Ο Teacher μπορεί να δημιουργήσει τάξεις για το σχολείο του από το κεντρικό μενού Management Classes Create Class. Αυτή η λειτουργία είναι διαθέσιμη και για τους καθηγητές εφόσον το επιτρέψει
JLR EPC. Οδηγός γρήγορης εκκίνησης. Περιεχόμενα. Greek Version 2.0. Αναλυτικός οδηγός Οδηγός οθόνης
JLR EPC Οδηγός γρήγορης εκκίνησης Περιεχόμενα Αναλυτικός οδηγός.......2-7 Οδηγός οθόνης......8-11 Greek Version 2.0 1. Εισαγωγή στην εφαρμογή Προβλήματα σύνδεσης; Ξεκινήστε το πρόγραμμά σας περιήγησης
ΣΧΕΣΕΙΣ στην Northwind
Αναλυτικά ΣΧΕΣΕΙΣ στην Northwind Σχέση Πίνακας 1 Parent Table Πίνακας 2 Child Table Κey Foreign Key CategoriesProducts Categories Products CategoryID CategoryID SuppliersProducts Suppliers Products SupplierID
ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C
ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον
4 η Εργαστηριακή Άσκηση
4 η Εργαστηριακή Άσκηση Σκοπός της εργαστηριακής άσκησης είναι η δημιουργία μιας εφαρμογής πολλαπλών καρτελών με κοινή σύνδεση σε Βάση Δεδομένων και προβολή δεδομένων από διαφορετικούς πίνακες της ίδιας
Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.
Εργαστήριο #12 Από τα προηγούμενα εργαστήρια: Το εργαστήριο αυτό είναι ανεξάρτητο από τα προηγούμενα επειδή όμως ασχολείται με τη γλώσσα JavaScript, βεβαιωθείτε ότι έχετε διαβάσει το εισαγωγικό Παράρτημα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors, equals, tostring
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Constructors, equals, tostring Constructors (Δημιουργοί) O Constructor είναι μια «μέθοδος» η οποία καλείται όταν δημιουργούμε το αντικείμενο
ΜICROSOFT VISUAL STUDIO 2008. Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging. Εισαγωγή
ΜICROSOFT VISUAL STUDIO 2008 Eργ 1: Ανάπτυξη απλής εφαρµογής: Solutions, Projects, GUI, Events, Debugging Εισαγωγή Visual Basic 2008 Eργαλείο ανάπτυξης εντυπωσιακών εφαρµογών στα Windows, στο Web, φορητά
SPSS Statistical Package for the Social Sciences
SPSS Statistical Package for the Social Sciences Ξεκινώντας την εφαρμογή Εισαγωγή εδομένων Ορισμός Μεταβλητών Εισαγωγή περίπτωσης και μεταβλητής ιαγραφή περιπτώσεων ή και μεταβλητών ΣΤΑΤΙΣΤΙΚΗ Αθανάσιος
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων Constructors
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Δημιουργία Κλάσεων και Αντικειμένων Constructors Κλάσεις και αντικείμενα Ορισμός κλάσης: class
Δομές Δεδομένων Ενότητα 4
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Joomla! with K2 - User Guide
Joomla! with K2 - User Guide τελευταία ανανέωση: 27/03/2014 από την ICAP WEB Solutions 1 Η κατασκευή της δυναμικής σας ιστοσελίδας έχει ολοκληρωθεί και μπορείτε πλέον να προχωρήσετε σε αλλαγές ή προσθήκες
Σημειώσεις για τις Ιστοσελίδες του Google
Σημειώσεις για τις Ιστοσελίδες του Google 1 Βήμα 1 ο Μπαίνουμε στην σελίδα της Google για τις ιστοσελίδες (http://sites.google.com). 2 Εναλλακτικά, μπαίνουμε στο http://www.google.com, επιλέγουμε περισσότερα
Επίλυση προβλήματος με Access
Δ.1. Το προς επίλυση πρόβλημα Ζητείται να κατασκευάσετε τα αρχεία και τα προγράμματα μιας εφαρμογής καταχώρησης Δαπανών μελών ΔΕΠ (Διδακτικό και Ερευνητικό Προσωπικό) για την παρακολούθηση του απολογισμού
ΕΠΛ 012. JavaScripts
ΕΠΛ 012 JavaScripts Γλώσσα JavaScript (JS) ηµιουργεί δυναµικές ιστοσελίδες και αλληλεπιδράσεις µε το χρήστη εν είναι Java, αλλά είναι αντικειµενοστραφής (απλό µοντέλο υποκειµένων) Objects, properties (τιµές
ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com /
ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / 1. Τι είναι το wikidot Το wikidot είναι ένας δικτυακός τόπος στον οποίο κάθε χρήστης έχει το δικαίωμα να δημιουργήσει
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο
Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Oracle SQL Developer An Oracle Database stores and organizes information. Oracle SQL Developer is a tool for accessing and maintaining the data
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java
Εξάμηνο Μάθημα Τίτλος 2017 2018 Εαρινό Αντικειμενοστραφής Προγραμματισμός Ι Ύλη εργαστηρίου, Ασκήσεις Java Ημερομηνία Εργαστήριο 5 ο Α. Ύλη εργαστηρίου 5.1 Έννοιες αντικειμενοστραφούς προγραμματισμού,
HY150a Φροντιστήριο 3 24/11/2017
HY150a Φροντιστήριο 3 24/11/2017 1 Assignment 3 Overview Το πρόγραμμα ζητείται να διαβάζει μια λίστα δεδομένων που περιγράφει τα διαθέσιμα τμήματα μνήμης (blocks) ενός ΗΥ. Το πρόγραμμα ζητείται να μεταφορτώνει
Οδηγίες ενεργοποίησης λογαριασμού στο λογισμικό λογοκλοπής TURNITIN
ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΒΙΒΛΙΟΘΗΚΗ & ΚΕΝΤΡΟ ΠΛΗΡΟΦΟΡΗΣΗΣ Ελ. Βενιζέλου 70, Καλλιθέα, Τ.Κ. 176 71, Τηλ.: 210 9549169-170 http://www.library.hua.gr, e-mail:library@hua.gr Καλλιθέα 19/7/17 Οδηγίες ενεργοποίησης
ΗΥ-150 Programming. Assignment 3. HY150 Programming, University of Crete
ΗΥ-150 Programming Assignment 3 Assignment 3 Slide 1 Assignment 3 Ζητείται ένα πρόγραμμα διαχείρισης δανειστικής βιβλιοθήκης το οπόιο: να μεταφορτώνει μια μικρή βάση δεδομένων από αρχείο να την παρουσιάζει
Εγχειρίδιο χρήσης Intalio Designer Εγχειρίδιο χρήσης Intalio Designer
Εγχειρίδιο χρήσης Intalio Designer Σελίδα 1 Copyright Copyright 2007 Atlantis Group. Ιστορικό εγγράφου Έκδοση Εγχειριδίου: 1.0 Ημερομηνία δημιουργίας: 26/11/2007 Σελίδα 2 ΠΕΡΙΕΧΟΜΕΝΑ 1 Εισαγωγή... 4 2
ΟΔΗΓΙΕΣ ΧΕΙΡΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ DYMO LABEL V.8
Β.ΠΑΠΑΚΩΣΤΑ & ΣΙΑ ΟΕ ΕΙΣΑΓΩΓΕΣ ΕΜΠΟΡΙΟ ΕΚΤΥΠΩΤΩΝ ΕΤΙΚΕΤΩΝ & ΑΝΑΛΩΣΙΜΩΝ ΔΕΞΑΜΕΝΗΣ 30, ΜΕΤΑΜΟΡΦΩΣΗ ΑΤΤΙΚΗΣ, ΤΚ:14452 ΑΦΜ: 998587823, Δ.Ο.Υ. : ΝΕΑΣ ΙΩΝΙΑΣ ΤΗΛ: 2102844831 ΦΑΞ: 2102828703 www.sigma-hellas.gr,
Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Δομές Δεδομένων - Εργαστήριο 2. Λίστες
Λίστες Λίστες (Lists) : Συλλογή δεδομένων σε δυναμικά δεσμευμένους κόμβους. Κάθε κόμβος περιέχει συνδέσεις προς άλλους κόμβους. Προσπέλαση -στού κόμβου διατρέχοντας όλους τους προηγούμενους. Πολλές παραλλαγές
ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ
ΣΗΜΕΙΩΣΕΙΣ ΓΙΑ ΤΗ VISUAL BASIC Γ ΓΥΜΝΑΣΙΟΥ Συγγραφική Ομάδα Εποπτεία: Ιάκωβος Παπαντωνίου Ευστάθιος Ευσταθίου Θεόδουλος Κωνσταντίνου Ξένιος Ξενοφώντος Χρίστος Μινίκκης 1 Εισαγωγή στον προγραμματισμό υπολογιστών
Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL
Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC Η Visual Basic είναι μια γλώσσα προγραμματισμού οδηγούμενη από συμβάντα που έχει ένα ολοκληρωμένο περιβάλλον ανάπτυξης Έχει δημιουργηθεί από τη
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ. Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ενότητα: ΜΕΤΑΒΛΗΤΕΣ ΚΥΡΟΠΟΥΛΟΣ ΚΩΝΣΤΑΝΤΙΝΟΣ Τμήμα Διοίκηση Επιχειρήσεων (Κοζάνη) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων
Ενότητα 4 Επεξεργασία πινάκων 36 37 4.1 Προσθήκη πεδίων Για να εισάγετε ένα πεδίο σε ένα πίνακα που υπάρχει ήδη στη βάση δεδομένων σας, βάζετε τον κέρσορα του ποντικιού στο πεδίο πάνω από το οποίο θέλετε
WinEra ERP. Γενικός Κανονισμός Προστασίας Προσωπικών Δεδομένων (GDPR)
Γενικός Κανονισμός Προστασίας Προσωπικών Δεδομένων (GDPR) 1 2 Γενικός Κανονισμός Προστασίας Προσωπικών Δεδομένων (GDPR) Η συμμόρφωση της εφαρμογής WINERA ERP της Data Communication με το GDPR Η εφαρμογή
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Προγραμματισμός Η/Υ Ενότητα 5 η : Σύνθετες Δομές Δεδομένων (Πίνακες & Structure) Ι. Ψαρομήλιγκος Χ. Κυτάγιας Τμήμα Λογιστικής
Basic Missions
www.hackthissite.org Basic Missions Προγουλάκης Νίκος Α.Μ.: 2582 2010-2011 (Ε) www.hackthissite.org 1 www.hackthissite.org www.hackthissite.org 2 www.hackthissite.org www.hackthissite.org 3 www.hackthissite.org
ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011
ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΤΕΥΘΥΝΣΗΣ ΗΜΕΡΟΜΗΝΙΑ: 07/06/2011 ΤΑΞΗ: Β ΛΥΚΕΙΟΥ ΩΡΑ: 11:00 ΑΡ. ΣΕΛΙΔΩΝ: 14 ΣΤΟΙΧΕΙΑ ΜΑΘΗΤΗ
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή Οποιαδήποτε κλάση