Traduction de Delphi6.0 à VB

Résolu
dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009 - 5 nov. 2009 à 21:20
dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009 - 6 nov. 2009 à 12:32
Bonjour à tous,
Programmant sous Delphi 6.0 de petites applications, il me faut, pour cause de licence, traduire une de mes appli.
Pour cause de simplicité, j'ai choisi de passer sous Visual Basic 2008 Express. Ce qui fait qu'il me faut réapprendre syntaxes, mots réservés, etc... Bref, je repart à zéro.(ai-je fait le bon choix?)

Donc, sur une fiche se trouve un textbox dont la propriété enabled est à false.
la fiche, lorsqu'elle est active, doit renvoyer dans le textbox le caractère tapé au clavier de la même façon que si textbox=true et textbox à le focus. (saisie clavier normal pour ce composant. mais comme ici, enabled=false, je nage, pas moyen.

en Delphi, cela donnait:
edit1.text := edit1.text+Upcase(key);
mais sous vb, je nage.
Merci pour votre coup de main.

6 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 nov. 2009 à 22:40
à toi d'empêcher le focus alors (enfin logiquement....)
si tu mets disabled pour malgré tout accepter la saisie, c'est un problème de conception, peu importe que tu aies bidouillé sous delphi et que çà tourne

bref pour reproduire cette même bizarrerie :

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Enabled = False
        Me.KeyPreview = True
        TextBox1.CharacterCasing = CharacterCasing.Upper
    End Sub
    Private Sub Form2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
        TextBox1.AppendText(e.KeyChar.ToString)
    End Sub



pas sale mais pas logique ni réfléchi

++
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
5 nov. 2009 à 22:10
salut,

ok donc quelle est la question au final?
si tu veux autoriser la saisie de l'utilisateur il ne faut pas rendre la zone en DISABLED, peu importe le focus....

mais c'est la même chose dans tous les langages donc peux-tu préciser ta question stp


ps : comparativement à ton code, VB2008 gère le UCASE permanent (propriétés en mode design)

[hr]
0
dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009
5 nov. 2009 à 22:29
J'ai besoin que cette zone soit disabled car si elle a le focus, je ne peux, avec la souris effectuer d'autres opérations car le focus change et il y a deux utilisateur sur le même pc.(je sais c'est zarbi)

Sous mon appli actuelle, la zone est disabled ca fonctionne nickel depuis un an.
les caractères tapés au clavier apparaissent gris clair mais sont visibles.
Quand à ma question:
comment voir dans un textbox les caractères saisis au clavier avec textbox.enabled=false

Ca marchait impecc sous delphi.
0
dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009
5 nov. 2009 à 23:08
Merci, j'ai pas tout comris mais ça marche.

Me.KeyPreview = True
Pourquoi faut il redéclarer preview à true avec Me alors qu'il l'était déja lors de la conception?
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
6 nov. 2009 à 07:30
"me" c'est la form (et non la zone de texte), et par défaut son keypreview est à false

les 3 lignes dans le LOAD sont des propriétés que tu peux modifier en mode design (donc sans code). c'est juste parfois plus pratique par code pour t'y retrouver si tu ne touches plus à ton projet quelques semaines

on dit à la form que lors d'une touche pressée (sur n'importe quel contrôle), elle relève l'évènement avant ses contrôles enfants

de là, lors de la pression, on ajoute le caractère pressé
et comme on a défini la casse en majuscule (TextBox1.CharacterCasing = CharacterCasing.Upper), pas de code à ajouter
0
dhp9951 Messages postés 10 Date d'inscription dimanche 27 février 2005 Statut Membre Dernière intervention 6 novembre 2009
6 nov. 2009 à 12:32
Je trouvais bizarre de devoir redéclarer à chaque fois des propriétés déja "écrites".

Voila qui éclaire ma lanterne.
Maerci A+
0
Rejoignez-nous