Accueil > > > UTILISATION DE CONTROLES DYNAMIQUES, SUR UNE BASE DE DONNÉES
UTILISATION DE CONTROLES DYNAMIQUES, SUR UNE BASE DE DONNÉES
Information sur la source
Description
on interroge une base de données
on recherche le nom de toutes les tables
pour une table donnée, on crée un nombre de TextBox dépendant du nombre de propriétés de la table
Si on a une clé étrangère, on crée une ComboBox.
Source
- Imports System.Data
- Imports System.Data.OleDb
-
-
- Public Class Fchoix
- Inherits System.Windows.Forms.Form
- Dim StrConnection As String
- Dim Col_Control_Créés As New Collection()
- Dim cc As New Collection()
- Dim NumContrainte As Integer
-
- #Region " Code généré par le Concepteur Windows Form "
-
- Public Sub New()
- MyBase.New()
-
- 'Cet appel est requis par le Concepteur Windows Form.
- InitializeComponent()
-
- 'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
-
- End Sub
-
- 'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
- Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
- If disposing Then
- If Not (components Is Nothing) Then
- components.Dispose()
- End If
- End If
- MyBase.Dispose(disposing)
- End Sub
-
- 'Requis par le Concepteur Windows Form
- Private components As System.ComponentModel.IContainer
-
- 'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
- 'Elle peut être modifiée en utilisant le Concepteur Windows Form.
- 'Ne la modifiez pas en utilisant l'éditeur de code.
- Friend WithEvents CBlistes As System.Windows.Forms.ComboBox
- Friend WithEvents LBenregs As System.Windows.Forms.ListBox
- <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
- Me.CBlistes = New System.Windows.Forms.ComboBox()
- Me.LBenregs = New System.Windows.Forms.ListBox()
- Me.SuspendLayout()
- '
- 'CBlistes
- '
- Me.CBlistes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
- Me.CBlistes.Location = New System.Drawing.Point(8, 8)
- Me.CBlistes.Name = "CBlistes"
- Me.CBlistes.Size = New System.Drawing.Size(121, 21)
- Me.CBlistes.TabIndex = 21
- '
- 'LBenregs
- '
- Me.LBenregs.Location = New System.Drawing.Point(8, 56)
- Me.LBenregs.Name = "LBenregs"
- Me.LBenregs.Size = New System.Drawing.Size(192, 212)
- Me.LBenregs.TabIndex = 20
- '
- 'Fchoix
- '
- Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
- Me.ClientSize = New System.Drawing.Size(664, 301)
- Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.LBenregs, Me.CBlistes})
- Me.Name = "Fchoix"
- Me.Text = "Choix de la table"
- Me.ResumeLayout(False)
-
- End Sub
-
- #End Region
-
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Me.StrConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Gestion_CD_Rom.mdb"
- Me.Remplissage_Combo_Listes()
- End Sub
-
- Public Function GetTables(ByVal conn As OleDbConnection) As DataTable
- conn.Open()
- 'on crée le schéma de la base de données dans une DataTable
- Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
- New Object() {Nothing, Nothing, Nothing, "TABLE"})
- conn.Close()
- Return schemaTable
- End Function
-
- Private Sub Remplissage_Combo_Listes()
- Dim i As Integer
- Dim ConX As New OleDbConnection(Me.StrConnection)
- Dim dt As New DataTable()
-
- 'on remplit la DataTable avec le shéma de
- 'l'ensemble des noms des tables de la base de données
- dt = Me.GetTables(ConX)
- For i = 0 To dt.Rows.Count - 1
- Me.CBlistes.Items.Add(dt.Rows(i).Item(2))
- Next
-
- End Sub
-
- Private Sub Supprimer_Controles()
- Dim i As Integer
- Dim Max As Integer
-
- Try
- Max = Me.Col_Control_Créés.Count
- 'pour chaque controle créé dynamiquement
- For i = 1 To Max
- 'on le supprime s'il existe
- If Me.Contains(Me.Col_Control_Créés.Item(i)) Then
- Me.Controls.Remove(Me.Col_Control_Créés.Item(i))
- End If
- Next
- Catch
- End Try
- End Sub
-
- Private Sub Charger_Liste_Enreg(ByVal dt As DataTable)
- Dim i As Integer
-
- Me.LBenregs.Items.Clear()
- For i = 0 To dt.Rows.Count - 1
- Me.LBenregs.Items.Add(dt.Rows(i).Item(1))
- Next
- End Sub
-
- Private Function Renvoyer_Le_Plus_Grand_Nombre_De_Caractères() As Integer
- Dim i, j, maxMot, cum As Integer
-
- maxMot = 0
- 'pour chaque enreg. dans la liste, on recherche le mot le plus long
- For i = 0 To Me.LBenregs.Items.Count - 1
- cum = 0
- 'on compte le nombre de caractère de chaque mot
- For j = 0 To CStr(Me.LBenregs.Items.Item(i)).Length - 1
- cum = cum + 1
- Next
- If cum > maxMot Then
- maxMot = cum
- End If
- Next
-
- Return maxMot
- End Function
-
- Private Sub CBlistes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBlistes.SelectedIndexChanged
- Dim Connex As New OleDbConnection(Me.StrConnection)
- Dim dt As New DataTable()
- Dim i As Integer
- Dim DR As New OleDbDataAdapter("SELECT * FROM " & Me.CBlistes.SelectedItem, Connex)
-
- 'on efface tous les controles posés sur la Form
- Me.Supprimer_Controles()
- 'on chage tous les enregistrements dans une DataTable
- DR.Fill(dt)
- 'on affiche tous les enregs. dans la ListBox
- Me.Charger_Liste_Enreg(dt)
- 'on vide la collection
- Me.Vider_Collection(Me.cc)
-
- 'pour chaque propriété de la table
- For i = 1 To dt.Columns.Count - 1
- 's'il y a une liaison vers une autre table
- 'on crée une ComboBox
- If Me.A_une_Liaison(i) Then
- Me.Création_ComboBox(i)
- Else
- 'sinon on crée une TextBox
- Me.Création_TextBox(dt.Columns(i).DataType.Name, i)
- End If
- Next
- End Sub
-
- Private Sub Création_ComboBox(ByVal i As Integer)
- Dim cb As New ComboBox()
-
- 'on ajuste la taille des TBs avec la plus grande chaine de la liste
- cb.Size = New Size(140 + 10 * Me.Renvoyer_Le_Plus_Grand_Nombre_De_Caractères, 23)
- cb.Location = New System.Drawing.Point(250, i * 40)
- cb.Name = "TB" & i
- cb.TabIndex = i
- cb.DropDownStyle = ComboBoxStyle.DropDownList
- Me.Controls.Add(cb)
- Me.Col_Control_Créés.Add(cb)
- End Sub
-
- Private Sub Création_TextBox(ByVal Type As String, ByVal i As Integer)
- Dim tb As New TextBox()
-
- 'on ajuste la taille des TBs avec la plus grande chaine de la liste
- tb.Size = New Size(140 + 10 * Me.Renvoyer_Le_Plus_Grand_Nombre_De_Caractères, 23)
- tb.Location = New System.Drawing.Point(250, i * 40)
- tb.Name = "TB" & i
- tb.TabIndex = i
- Me.Controls.Add(tb)
- Me.Col_Control_Créés.Add(tb)
- Me.cc.Add(Type)
- AddHandler tb.KeyPress, AddressOf TB_KeyPress
- End Sub
-
- Private Sub Vider_Collection(ByRef col As Collection)
- Dim colNouv As New Collection()
- col = colNouv
- End Sub
-
- Private Function A_une_Liaison(ByVal IndCol As Integer) As Boolean
- Dim ds As New DataSet()
- Dim DTaSuppr As New DataTable()
- Dim Trouv As Boolean
- Dim i As Integer = 0
-
- ds = Me.Remplir_Data_Tables
- DTaSuppr = Me.Suppression_DataTable(ds)
-
- Trouv = False
- 'il faut déjà que la propriété soit un numéro
- If CStr(DTaSuppr.Columns(IndCol).ColumnName).Substring(0, 3) = "Num" Then
- 'on recherche dans les autres tables,
- 'si on a le même nom de propriété que celle sélectionnée
- While i <= ds.Tables.Count - 1 And Not Trouv
- 'c'est la colonne de la table sélectionnée
- Dim ColAreg As New DataColumn()
- ColAreg = DTaSuppr.Columns(IndCol)
-
- 'et celle-ci, c'est la première colonne de l'autre table
- Dim dt As New DataTable()
- dt = ds.Tables(i)
- Dim ColVu As New DataColumn()
- ColVu = dt.Columns(0)
-
- 'si elles ont le même nom
- If ColAreg.ColumnName = ColVu.ColumnName Then
- Trouv = True
- Else
- i = i + 1
- End If
- End While
- End If
-
- Return Trouv
- End Function
-
- Private Function Suppression_DataTable(ByRef ds As DataSet) As DataTable
- Dim Trouv As Boolean
- Dim DTaSuppr As New DataTable()
- Dim i As Integer
-
- Trouv = False
- 'on recherche la DataTable avec le même nom que le champ de la combo
- While i <= ds.Tables.Count - 1 And Not Trouv
- Dim dt As New DataTable()
- dt = ds.Tables.Item(i)
- If Me.CBlistes.SelectedItem = dt.TableName Then
- DTaSuppr = dt
- Trouv = True
- Else
- i = i + 1
- End If
- End While
- 'Et on la supprime du DataSet
- ds.Tables.Remove(DTaSuppr)
-
- 'on renvoie la DataTable supprimée du DataSet
- Return DTaSuppr
- End Function
-
- Private Function Remplir_Data_Tables() As DataSet
- Dim i As Integer
- Dim ds As New DataSet()
- Dim dad As New OleDbDataAdapter()
- Dim connex As New OleDbConnection(Me.StrConnection)
-
- 'pour chaque nom de table
- For i = 0 To Me.CBlistes.Items.Count - 1
- 'on crée une requête SQL qui sélectionne l'ensemble des champs de la table
- Dim str As String = "SELECT * FROM " & Me.CBlistes.Items.Item(i)
- 'on crée un objet Command qui exécute la requête
- dad.SelectCommand = New OleDbCommand(str, connex)
- Dim dt As New DataTable(Me.CBlistes.Items.Item(i))
- 'en créant une DataTable, on peut la remplir avec les résultats de la requête
- dad.Fill(dt)
- 'on ajoute cette DataTable au DataSet
- ds.Tables.Add(dt)
- Next
-
- Return ds
- End Function
-
- Private Sub TB_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
- 'selon l'index du controle en question, on peut savoit le type de données dans la collection lui appartenant
- Select Case CStr(Me.cc.Item(CType(sender, TextBox).TabIndex)).ToUpper
- Case "DATETIME"
- 'si on ne met les caractères pour la date, alors on ne peut pas écrire
- If Not e.KeyChar.IsNumber(e.KeyChar) AndAlso e.KeyChar <> "/" Then
- e.Handled = True
- End If
- Case "INT32"
- 'si on ne met pas de valeur numérique, on ne peut pas écrire
- If Not e.KeyChar.IsDigit(e.KeyChar) Then
- e.Handled = True
- End If
- Case "DOUBLE"
- 'si on a autre chose que des réels, on ne peut pas écrire
- If Not e.KeyChar.IsNumber(e.KeyChar) Then
- e.Handled = True
- End If
- Case "STRING"
- 'si on a un caractère de ponctuation, on ne peut pas le mettre
- If e.KeyChar.IsPunctuation(e.KeyChar) Then
- e.Handled = True
- End If
- End Select
- End Sub
- End Class
Imports System.Data
Imports System.Data.OleDb
Public Class Fchoix
Inherits System.Windows.Forms.Form
Dim StrConnection As String
Dim Col_Control_Créés As New Collection()
Dim cc As New Collection()
Dim NumContrainte As Integer
#Region " Code généré par le Concepteur Windows Form "
Public Sub New()
MyBase.New()
'Cet appel est requis par le Concepteur Windows Form.
InitializeComponent()
'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
End Sub
'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Requis par le Concepteur Windows Form
Private components As System.ComponentModel.IContainer
'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
'Elle peut être modifiée en utilisant le Concepteur Windows Form.
'Ne la modifiez pas en utilisant l'éditeur de code.
Friend WithEvents CBlistes As System.Windows.Forms.ComboBox
Friend WithEvents LBenregs As System.Windows.Forms.ListBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.CBlistes = New System.Windows.Forms.ComboBox()
Me.LBenregs = New System.Windows.Forms.ListBox()
Me.SuspendLayout()
'
'CBlistes
'
Me.CBlistes.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.CBlistes.Location = New System.Drawing.Point(8, 8)
Me.CBlistes.Name = "CBlistes"
Me.CBlistes.Size = New System.Drawing.Size(121, 21)
Me.CBlistes.TabIndex = 21
'
'LBenregs
'
Me.LBenregs.Location = New System.Drawing.Point(8, 56)
Me.LBenregs.Name = "LBenregs"
Me.LBenregs.Size = New System.Drawing.Size(192, 212)
Me.LBenregs.TabIndex = 20
'
'Fchoix
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(664, 301)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.LBenregs, Me.CBlistes})
Me.Name = "Fchoix"
Me.Text = "Choix de la table"
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.StrConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\Gestion_CD_Rom.mdb"
Me.Remplissage_Combo_Listes()
End Sub
Public Function GetTables(ByVal conn As OleDbConnection) As DataTable
conn.Open()
'on crée le schéma de la base de données dans une DataTable
Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
conn.Close()
Return schemaTable
End Function
Private Sub Remplissage_Combo_Listes()
Dim i As Integer
Dim ConX As New OleDbConnection(Me.StrConnection)
Dim dt As New DataTable()
'on remplit la DataTable avec le shéma de
'l'ensemble des noms des tables de la base de données
dt = Me.GetTables(ConX)
For i = 0 To dt.Rows.Count - 1
Me.CBlistes.Items.Add(dt.Rows(i).Item(2))
Next
End Sub
Private Sub Supprimer_Controles()
Dim i As Integer
Dim Max As Integer
Try
Max = Me.Col_Control_Créés.Count
'pour chaque controle créé dynamiquement
For i = 1 To Max
'on le supprime s'il existe
If Me.Contains(Me.Col_Control_Créés.Item(i)) Then
Me.Controls.Remove(Me.Col_Control_Créés.Item(i))
End If
Next
Catch
End Try
End Sub
Private Sub Charger_Liste_Enreg(ByVal dt As DataTable)
Dim i As Integer
Me.LBenregs.Items.Clear()
For i = 0 To dt.Rows.Count - 1
Me.LBenregs.Items.Add(dt.Rows(i).Item(1))
Next
End Sub
Private Function Renvoyer_Le_Plus_Grand_Nombre_De_Caractères() As Integer
Dim i, j, maxMot, cum As Integer
maxMot = 0
'pour chaque enreg. dans la liste, on recherche le mot le plus long
For i = 0 To Me.LBenregs.Items.Count - 1
cum = 0
'on compte le nombre de caractère de chaque mot
For j = 0 To CStr(Me.LBenregs.Items.Item(i)).Length - 1
cum = cum + 1
Next
If cum > maxMot Then
maxMot = cum
End If
Next
Return maxMot
End Function
Private Sub CBlistes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CBlistes.SelectedIndexChanged
Dim Connex As New OleDbConnection(Me.StrConnection)
Dim dt As New DataTable()
Dim i As Integer
Dim DR As New OleDbDataAdapter("SELECT * FROM " & Me.CBlistes.SelectedItem, Connex)
'on efface tous les controles posés sur la Form
Me.Supprimer_Controles()
'on chage tous les enregistrements dans une DataTable
DR.Fill(dt)
'on affiche tous les enregs. dans la ListBox
Me.Charger_Liste_Enreg(dt)
'on vide la collection
Me.Vider_Collection(Me.cc)
'pour chaque propriété de la table
For i = 1 To dt.Columns.Count - 1
's'il y a une liaison vers une autre table
'on crée une ComboBox
If Me.A_une_Liaison(i) Then
Me.Création_ComboBox(i)
Else
'sinon on crée une TextBox
Me.Création_TextBox(dt.Columns(i).DataType.Name, i)
End If
Next
End Sub
Private Sub Création_ComboBox(ByVal i As Integer)
Dim cb As New ComboBox()
'on ajuste la taille des TBs avec la plus grande chaine de la liste
cb.Size = New Size(140 + 10 * Me.Renvoyer_Le_Plus_Grand_Nombre_De_Caractères, 23)
cb.Location = New System.Drawing.Point(250, i * 40)
cb.Name = "TB" & i
cb.TabIndex = i
cb.DropDownStyle = ComboBoxStyle.DropDownList
Me.Controls.Add(cb)
Me.Col_Control_Créés.Add(cb)
End Sub
Private Sub Création_TextBox(ByVal Type As String, ByVal i As Integer)
Dim tb As New TextBox()
'on ajuste la taille des TBs avec la plus grande chaine de la liste
tb.Size = New Size(140 + 10 * Me.Renvoyer_Le_Plus_Grand_Nombre_De_Caractères, 23)
tb.Location = New System.Drawing.Point(250, i * 40)
tb.Name = "TB" & i
tb.TabIndex = i
Me.Controls.Add(tb)
Me.Col_Control_Créés.Add(tb)
Me.cc.Add(Type)
AddHandler tb.KeyPress, AddressOf TB_KeyPress
End Sub
Private Sub Vider_Collection(ByRef col As Collection)
Dim colNouv As New Collection()
col = colNouv
End Sub
Private Function A_une_Liaison(ByVal IndCol As Integer) As Boolean
Dim ds As New DataSet()
Dim DTaSuppr As New DataTable()
Dim Trouv As Boolean
Dim i As Integer = 0
ds = Me.Remplir_Data_Tables
DTaSuppr = Me.Suppression_DataTable(ds)
Trouv = False
'il faut déjà que la propriété soit un numéro
If CStr(DTaSuppr.Columns(IndCol).ColumnName).Substring(0, 3) = "Num" Then
'on recherche dans les autres tables,
'si on a le même nom de propriété que celle sélectionnée
While i <= ds.Tables.Count - 1 And Not Trouv
'c'est la colonne de la table sélectionnée
Dim ColAreg As New DataColumn()
ColAreg = DTaSuppr.Columns(IndCol)
'et celle-ci, c'est la première colonne de l'autre table
Dim dt As New DataTable()
dt = ds.Tables(i)
Dim ColVu As New DataColumn()
ColVu = dt.Columns(0)
'si elles ont le même nom
If ColAreg.ColumnName = ColVu.ColumnName Then
Trouv = True
Else
i = i + 1
End If
End While
End If
Return Trouv
End Function
Private Function Suppression_DataTable(ByRef ds As DataSet) As DataTable
Dim Trouv As Boolean
Dim DTaSuppr As New DataTable()
Dim i As Integer
Trouv = False
'on recherche la DataTable avec le même nom que le champ de la combo
While i <= ds.Tables.Count - 1 And Not Trouv
Dim dt As New DataTable()
dt = ds.Tables.Item(i)
If Me.CBlistes.SelectedItem = dt.TableName Then
DTaSuppr = dt
Trouv = True
Else
i = i + 1
End If
End While
'Et on la supprime du DataSet
ds.Tables.Remove(DTaSuppr)
'on renvoie la DataTable supprimée du DataSet
Return DTaSuppr
End Function
Private Function Remplir_Data_Tables() As DataSet
Dim i As Integer
Dim ds As New DataSet()
Dim dad As New OleDbDataAdapter()
Dim connex As New OleDbConnection(Me.StrConnection)
'pour chaque nom de table
For i = 0 To Me.CBlistes.Items.Count - 1
'on crée une requête SQL qui sélectionne l'ensemble des champs de la table
Dim str As String = "SELECT * FROM " & Me.CBlistes.Items.Item(i)
'on crée un objet Command qui exécute la requête
dad.SelectCommand = New OleDbCommand(str, connex)
Dim dt As New DataTable(Me.CBlistes.Items.Item(i))
'en créant une DataTable, on peut la remplir avec les résultats de la requête
dad.Fill(dt)
'on ajoute cette DataTable au DataSet
ds.Tables.Add(dt)
Next
Return ds
End Function
Private Sub TB_KeyPress(ByVal sender As Object, ByVal e As KeyPressEventArgs)
'selon l'index du controle en question, on peut savoit le type de données dans la collection lui appartenant
Select Case CStr(Me.cc.Item(CType(sender, TextBox).TabIndex)).ToUpper
Case "DATETIME"
'si on ne met les caractères pour la date, alors on ne peut pas écrire
If Not e.KeyChar.IsNumber(e.KeyChar) AndAlso e.KeyChar <> "/" Then
e.Handled = True
End If
Case "INT32"
'si on ne met pas de valeur numérique, on ne peut pas écrire
If Not e.KeyChar.IsDigit(e.KeyChar) Then
e.Handled = True
End If
Case "DOUBLE"
'si on a autre chose que des réels, on ne peut pas écrire
If Not e.KeyChar.IsNumber(e.KeyChar) Then
e.Handled = True
End If
Case "STRING"
'si on a un caractère de ponctuation, on ne peut pas le mettre
If e.KeyChar.IsPunctuation(e.KeyChar) Then
e.Handled = True
End If
End Select
End Sub
End Class
Conclusion
désolé, pour l'instant je n'ai pas le zip et l'exe.....
c'est pour bientôt!!!
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|