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

Composants VCL Delphi Discussion :

Problème avec DBEdit.text


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Août 2012
    Messages : 96
    Points : 57
    Points
    57
    Par défaut Problème avec DBEdit.text
    Bonjour à tous,

    Je n'arrive pas à manipuler la propriété Text d'un DBEdit, j'essaie de l'affecter à une autre variable, un autre Edit, ou même de l'afficher dans un Showmessage, mais quoi que je fasse j'obtiens le vide, pourtant il est bel et bien rempli (connecté à une table SQL SERVER), et les données s'affichent correctement.

    Ps: aucun message d'erreur ne s'affiche

    Merci d'avance

  2. #2
    Membre averti Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 297
    Points : 421
    Points
    421
    Par défaut
    montre nous le code ...

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    14 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14 962
    Points : 40 794
    Points
    40 794
    Billets dans le blog
    62
    Par défaut
    Un DBEdit donc lié à des données et peut-être même en lecture seule ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 622
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 622
    Points : 12 925
    Points
    12 925
    Par défaut
    Pourquoi depuis le DBEdit puisqu'il affiche la donnée de l'enregistrement sélectionné ? Récupère-la directement depuis la DB.

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Août 2012
    Messages : 96
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Pourquoi depuis le DBEdit puisqu'il affiche la donnée de l'enregistrement sélectionné ? Récupère-la directement depuis la DB.
    J'ai une table Régime(code_reg, lib_reg),
    Et un DBGrid contenant plusieurs champs venant de plusieurs tables, y compris le champ Code_reg, mon objectif c'est d'afficher le Lib_reg en HINT du DBGrid, quand je survole le champ Code_reg.
    Donc j'ai utilisé un DBEdit comme intermédiaire, du coup je l'ai rendu invisible,
    Mais maintenant, que je viens de de le rendre visible, je me suis rendu compte qu'il est VIDE en mode exécution, alors qu'il est bel et bien rempli en mode création

    L'idée c'est de filtrer la table FDTable Régime sur le code_reg sélectionné dans le DBGrid, puis afficher le Lib_reg dans le HINT.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    14 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14 962
    Points : 40 794
    Points
    40 794
    Billets dans le blog
    62
    Par défaut
    Moui, mais peut-être serait-ce mieux de faire une requête avec des jointures pour obtenir ce libellé directement ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 622
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 622
    Points : 12 925
    Points
    12 925
    Par défaut
    Il veut un hint au survol, ce n'est pas la ligne sélectionnée dans la grille. Il faut clairement deux TTable (ou TQuery).

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    14 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 14 962
    Points : 40 794
    Points
    40 794
    Billets dans le blog
    62
    Par défaut
    J'ai bien compris que c'était un hint au survol, cependant plutôt que faire un autre appel à la base de données si ce libellé était déjà dans la première requête ce serait AMHA plus rapide et moins gourmand
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 622
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 622
    Points : 12 925
    Points
    12 925
    Par défaut
    Il l'est manifestement (enfin j'espère).

    Ce que j'envisageais était plutôt par CloneCursor. Sinon c'est bookmark, désactivation des compos visuels, recherche, etc.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Août 2012
    Messages : 96
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    J'ai bien compris que c'était un hint au survol, cependant plutôt que faire un autre appel à la base de données si ce libellé était déjà dans la première requête ce serait AMHA plus rapide et moins gourmand
    Non le champs Lib_reg n'est pas dans la 1ère requete,
    donc j'ai fait un 2ème appel, et ça marche parfaitemnt avec le FDQuery
    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
     
    procedure TForm1.DBGArtCellClick(Column: TColumn);
    begin
    with dm.fdqreg do
       begin
          with sql do
                      begin
                         Clear;
                         Add('SELECT lib_reg FROM regime');
                         Add('where code_reg = '+quotedstr(dbgArt.Fields[4].asstring)); //Code_reg dans le DBGrid
                      end;
                   open;
       end;
    dbgart.Hint := dm.fdqreg.fields[0].asstring;
    end;
    Sachant que j'ai par la suite testé la meme chose avec FDTable, mais ça n'a pas marché:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm1.DBGArtCellClick(Column: TColumn);
    begin
    with dm.fdTreg do
       begin
          filter := 'code_reg = '+quotedstr(dbgArt.Fields[4].asstring);
          filtered := true 
       end;
    dbgart.Hint := dm.fdTreg.fields[1].asstring;
    Le plus important c'est que ça a marché avec le FDQuery,
    Par contre, je n'arrive pas trouvé un meilleur événement que le OnCellClick;

    Comment preciser l'événement survol de la cellule ?

  11. #11
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 399
    Points : 5 771
    Points
    5 771
    Par défaut
    salut

    dans l'evenement onmousemove peut etre

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    function TMyFrm.GetHint(dataset : Tdataset ) : String;
    begin
      result := '';
      with dm.fdTreg do
      begin
          filter := 'code_reg = '+quotedstr(dataset.Field[4].asstring);
          filtered := true 
      end;
      result := dm.fdTreg.fields[1].asstring;
    end;
     
    procedure TMyFrm.DBGArtMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    var
      MColumn, MRow: Longint;
      rec : integer;
      st  : String;
    begin
      inherited;
      if not(sbCommit.enabled) Then
      begin
        MouseToCell(X,Y,MColumn,MRow);
        if dgTitles in TDBGrid(Sender).Options then
          Dec(MRow);
        if dgIndicator in TDBGrid(Sender).Options then
          Dec(MColumn);
     
        if (MRow > 0) and (MColumn >0) and (Mcolumn <= (Sender as TDBGrid).Columns.Count) then
        begin
            if (Sender as TDBGrid).DataLink.Active Then
            begin
              rec := (Sender as TDBGrid).DataLink.ActiveRecord;
              try
                (Sender as TDBGrid).DataLink.ActiveRecord := MRow;
                st :=  GetHint((Sender as TDBGrid).datasource.dataset);
                (Sender as TDBGrid).Hint := st;
                Application.HintPause := 1;
                Application.ActivateHint(Mouse.CursorPos);
              finally
                (Sender as TDBGrid).DataLink.ActiveRecord:= rec;
              end;
          end;
        end
        else
        begin
          Application.HintPause := 500;
          Application.CancelHint;
        end;
    end;
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

Discussions similaires

  1. [Python 2.X] Problème avec widget text et textvariable
    Par rybusy dans le forum Tkinter
    Réponses: 2
    Dernier message: 24/04/2016, 15h27
  2. [WD17] Problème avec champ texte mmo
    Par lololebricoleur dans le forum WinDev
    Réponses: 4
    Dernier message: 01/08/2012, 10h28
  3. Réponses: 4
    Dernier message: 05/06/2008, 13h49
  4. [HTML] problème avec un text area
    Par krfa1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 29/10/2004, 12h37
  5. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 14h17

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