IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Migration vb/delphi, Controls


Sujet :

Delphi

  1. #1
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut Migration vb/delphi, Controls
    Hello,
    Je travaille sur un projet de migration de vb à delphi. J'aimerai connaître l'équivalent de controls, en effet dans vb j'ai un code du genre form.controls.count ce qui permet de compter les controls de la form, cependant ce code ne semble pas être reconnu sous delphi, j'ai cherché un peu dans l'aide mais je n'ai trouvé qu'un équivalent à Control qui est TControl (me trompe-je ?). Merci pour votre aide.
    Ali

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    L'équivalent en Delphi est Components. TControl est une classe dont dérive de nombreux composants, TButton par exemple.

    Pour avoir le nombre de composants sur ta fiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ShowMessage(Self.ComponentCount);  // Self représentant ta form.
    @+ Claudius

  3. #3
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Merci pour la réponse.
    Pour le bout de code suivant je remplace donc Controls.count par ComponentCount, mais Controls(i) ne semble pas poser de pb, c'est le . qui se trouve avant qui n'est pas le bien venu. Devrai-je remplacer .Controls(i) par f.Controls(i), f.Components(i), Components(i) ou .Components(i) ... ?

    with f do begin
    iMax := 0;
    for i := 0 to Controls.Count-1 do begin
    with .Controls(i) do begin
    if (Visible ) then begin .....


    Pour parcourir les forms d'une application en vb, on utilise la propriété forms, quel est son équivalent en delphi ? . En ce qui concerne field et database en vb, j'ai cherché des équivalents sur l'aide de delphi, j'ai trouvé TDatabase et Tfield mais qd je déclare des variables ayant ces types, les deux types ne sont pas reconnus. Why ????? .Merci.
    Ali

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    with f do begin
      iMax := 0;
      for i := 0 to ComponentCount-1 do begin
        with Components[i] do begin
          if (Visible) then begin .....
    Voilou !

    Citation Envoyé par AL1986
    J'aurai aussi une autre question, pour parcourir les forms d'une application en vb, on utilise la propriété forms, quel est son équivalent en delphi ? . Merci.
    Tu travaille sur une appli MDI ?

  5. #5
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    626
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 626
    Points : 2 480
    Points
    2 480
    Par défaut
    Non, ce n'est pas une appli MDI, mais plutot une appli UAG

  6. #6
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Non ce n'est pas une application MDI.
    Dans le code vb, j'ai des lignes du genre VB.Forms.count ceci me compte les forms chargées dans l'application, j'ai trouvé dans l'aide delphi que je peux les compter en appelant FormCount, dans l'exemple fourni, il est appelé sur screen, dois-je en faire de même? Merci.

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par AL1986
    dois-je en faire de même? Merci.
    Voui !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i := 0 to Screen.FormCount - 1 do
      with Screen.Forms[i] do begin
        // ...
    @+ Claudius

  8. #8
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    Ouki, et pour les TField et TDatabase, pourquoi ne sont-ils pas reconnus ?

  9. #9
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    TField est défini dans l'unit DB, TDatabase est défini dans DBTables.

    Ces unités sont automatiquement incluses dans les uses dès que tu déposes un compo orienté données sur ta fiche.

    Qu'est-ce que tu veux faire exactement ?

    @+

  10. #10
    Membre averti Avatar de AL1986
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 434
    Points : 441
    Points
    441
    Par défaut
    J'ai une procédure qui copie la structure d'une table dans une autre, son code vb est :

    Sub CopyStruct(from_db As Database, To_db As Database, from_nm As String, to_nm As String, create_ind As Integer, Export As Boolean)
    Dim i As Integer
    Dim Tbl As New TableDef
    Dim Fld As Field
    Dim ind As Index
    Dim k As Long
    NameSearch:
    For i = 0 To To_db.TableDefs.count - 1
    If To_db.TableDefs(i).Name = to_nm Then
    If Export Then
    To_db.TableDefs.Delete to_nm
    ......

    Après migration, le code delphi est le suicvant :

    procedure CopyStruct(from_db : Database;To_db : Database;from_nm : string;var to_nm : string;create_ind : integer;Export : boolean);
    var
    Fld : tfield;
    i : integer;
    ind : Index;
    k : longint;
    begin
    NameSearch:
    for i := 0 to To_db.TableDefs.count-1 do begin
    if (To_db.TableDefs[i].Name = to_nm ) then begin
    if (Export ) then begin
    To_db.TableDefs.delete( to_nm ) ;
    .....

    database n'a pas été remplacé et tfield n'est pas reconnu, qd je remplace database par tdatabase ce n'est toujours pas reconnu. TableDefs non plus et je ne sais pas par quoi le remplacer.

  11. #11
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Re,

    Je pense que tu auras plus de chance d'obtenir une solution en clôturant cette discussion (le bouton Résolu et/ou Délestage en bas) et en ouvrant une autre sur le Forum Delphi et Bases de données.

    N'oublies pas de préciser dans ton message le type de bases de données (Access) et la facon dont tu te connectes à celle-ci (ADO, dbExpress, ...).

    Tu peux déjà ajouter les unités DB et DBTables dans tes uses afin qu'il reconnaisse les types TDatabase et TField.

    @+ Claudius

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. migration de delphi vers delphi.net
    Par momo629 dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 03/08/2007, 20h11
  2. migration vb6/delphi, form invisible
    Par AL1986 dans le forum Delphi
    Réponses: 4
    Dernier message: 17/07/2007, 15h33
  3. Migration VB6/Delphi, Pb avec fonte
    Par AL1986 dans le forum Delphi
    Réponses: 5
    Dernier message: 17/07/2007, 10h42
  4. Erreur après la migration de delphi 2005 vers 2006
    Par sawbo1 dans le forum Delphi
    Réponses: 2
    Dernier message: 21/07/2006, 19h18
  5. [D2005] Migration de Delphi 7 vers 2005
    Par Teb dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 19/07/2005, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo