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

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2018
    Messages : 98
    Points : 63
    Points
    63

    Par défaut Options d'un TGrid par programmation

    Bonjour,

    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With GridBindSourceDB1 do
      Options :=  Options -[dgEditing];
    où GridBindSourceDB1 est un TGrid, me renvoie : identificateur 'dgEditing' non déclaré.

    Il y a un uses ou une formulation (genre TGridOptions.dgEditing) particulier ?

    Merci. Gilles

  2. #2
    Membre expérimenté
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    mars 2006
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : mars 2006
    Messages : 1 001
    Points : 1 620
    Points
    1 620
    Billets dans le blog
    5

    Par défaut

    je crois que c'est décrit dans l'unité "Vcl.DBGrids"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      TDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator,
        dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect,
        dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect,
        dgTitleClick, dgTitleHotTrack);
      TDBGridOptions = set of TDBGridOption;

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    9 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 9 716
    Points : 23 622
    Points
    23 622
    Billets dans le blog
    16

    Par défaut

    Bonjour,

    Citation Envoyé par ALWEBER Voir le message
    je crois que c'est décrit dans l'unité "Vcl.DBGrids"
    Attention, il s'agit d'un TGrid pas d'un TDBGrid donc il s'agit du Framework FMX
    Donc il faut chercher dans FMX.Grid

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TGridOption = (AlternatingRowBackground, Editing, AlwaysShowEditor, ColumnResize, ColumnMove, ColLines, RowLines,
        RowSelect, AlwaysShowSelection, Tabs, Header, HeaderClick, CancelEditingByDefault, AutoDisplacement);
    il faut donc écrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With GridBindSourceDB1 do
      Options :=  Options -[TGridOption.Editing];
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Berlin, Tokyo) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  4. #4
    Membre expérimenté
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    mars 2006
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : mars 2006
    Messages : 1 001
    Points : 1 620
    Points
    1 620
    Billets dans le blog
    5

    Par défaut

    Donc "Editing" et non pas "dgEditing"

  5. #5
    Membre chevronné
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 231
    Points : 1 838
    Points
    1 838

    Par défaut

    Bonjour,
    je vais surement poser une question bête, mais cela fait plusieurs fois que je remarque des différences de dénomination entre FMX et VCL ?
    pourquoi, puisque l'on préfixe les unités par VCL ou FMX dans le code et qu'il y a un ordre dans les uses ?
    y a t il un risque que le compilo s’emmêle les pinceaux ?

    A+
    Charly

  6. #6
    Membre expérimenté
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    mars 2006
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : mars 2006
    Messages : 1 001
    Points : 1 620
    Points
    1 620
    Billets dans le blog
    5

    Par défaut

    Citation Envoyé par Charly910 Voir le message
    ...
    pourquoi, puisque l'on préfixe les unités par VCL ou FMX dans le code et qu'il y a un ordre dans les uses ?
    y a t il un risque que le compilo s’emmêle les pinceaux ?
    ...
    Le compilateur préfixe automatiquement les unités si nécessaire au moment de la compilation en fonction du type de projet VCL ou FMX donc pas de problème. Le cas est plus complexe si tu utilises les deux en même temps avec le composant "firemonkey-container-master" par exemple et tu dois préfixer pour éviter les confusions.
    Dans le cas présent il y avait les unités DBGrids et Grid (Vcl.DBGrids FMX.Grid) et juste une petite confusion entre "Editing" et "dgEditing"

  7. #7
    Membre chevronné
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    décembre 2006
    Messages
    1 231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : décembre 2006
    Messages : 1 231
    Points : 1 838
    Points
    1 838

    Par défaut

    Merci ALWEBER,
    mais pourquoi pas simplement editing pour les 2 ; ce serait plus simple à retenir et cela désigne la même chose ?
    A+
    Charly

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    9 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 9 716
    Points : 23 622
    Points
    23 622
    Billets dans le blog
    16

    Par défaut

    Citation Envoyé par Charly910 Voir le message
    mais pourquoi pas simplement editing pour les 2 ; ce serait plus simple à retenir et cela désigne la même chose ?
    les évolutions des unités FMX qui obligent à indiquer le type TGridOption.xxx (comme d'ailleurs pour presque tout ce genre d'énumération)
    la compatibilité descendante de VCL et tu as les réponses

    ON pourrait dire la même chose des couleurs etc...

    pour ce qui est du préfixage des unités, je ne sais plus dans quel essai récent j'ai mêlé consciemment des FMX. et VCL. dans un programme FMX donc vaut mieux prendre l'habitude de préfixer
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Berlin, Tokyo) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  9. #9
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2018
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2018
    Messages : 98
    Points : 63
    Points
    63

    Par défaut

    Bonjour,

    Merci.

    Il faut dire que l'IDE n'aide pas beaucoup.
    Nom : eGridOption.PNG
Affichages : 39
Taille : 8,0 Ko
    La complétion devient muette TGridO. Quand on se remet au langage et qu'on en utilise d'autres... Pfffff Et c'est encore prire, je crois avec les uses.

    Ensuite quelle verbosité ! Je regrette mon vieux Delphi !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    with GridBindSourceDB1 do
      Options :=  Options -[TGridOption.Editing] +[TGridOption.RowSelect];
    N'y a-t-il pas moyen de rendre implicite le TGridOption ?

    Cordialement. Gilles

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    9 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 9 716
    Points : 23 622
    Points
    23 622
    Billets dans le blog
    16

    Par défaut

    Bonjour,
    Citation Envoyé par Selzig Voir le message
    N'y a-t-il pas moyen de rendre implicite le TGridOption ?
    c'est vrai que cette "amélioration" m'a toujours laissé un goût amer , on s'y habitue à la longue

    un moyen ? oui je viens d'en trouver au moins un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
       // je reprend le source dans FMX.Grid , renomme l'énumération TGridOption ,mais  peut-être est ce dangereux ?  
       TVGridOption = (AlternatingRowBackground, Editing, AlwaysShowEditor, ColumnResize, ColumnMove, ColLines, RowLines,
        RowSelect, AlwaysShowSelection, Tabs, Header, HeaderClick, CancelEditingByDefault, AutoDisplacement);
    var
      Form2: TForm2;
     
    implementation
     
    {$R *.fmx}
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    Grid1.Options:=Grid1.Options - [Editing] + [AlwaysShowEditor];
    end;
    et il y a toujours la manière "brute" en utilisant directement la valeur (mais il faut une bonne mémoire et au niveau maintenance (tierce ou pas) ce n'est pas très explicite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    Grid1.Options:=Grid1.Options - [1] + [2];
    end;

    je serais heureux d'en découvrir d'autres moins alambiqués
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Berlin, Tokyo) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

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