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

Web & réseau Delphi Discussion :

Simuler un click en Intraweb


Sujet :

Web & réseau Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut Simuler un click en Intraweb
    Bonjour,

    Tout est dans le titre , bien que cela soit un peu étonnant et peut être loin d'être "secure" !
    Mon objectif est le suivant :
    Soit une forme de login "classique"
    Nom d'utilisateur
    Mot de passe
    Bouton de Login
    je voudrais que si le couple Nom d'utilisateur/Mot de passe est faux faire apparaitre une boite d'erreur en popup (le WebApplication.ShowMessage étant vraiment trop moche)

    ma piste #1 serait donc de mettre un lien(bouton) caché sur la forme et de simuler un clic (travaillant avec JQuery cela me permettrait d'afficher un joli popup ) d'où ma question

    ma piste #2 afficher une nouvelle forme (plus simple , mais je n'ai pas cette présentation sympa de popup)

    ma piste #3 un script ? mais là je sèche un peu , j'avais réussi avec les "loading widgets" dont j'ai malheureusement perdu le source mais je suis pas assez balèze en jscript pour un "popup"
    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

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Si tu utilises déjà JQuery, pousse vers JQueryUI::Dialog

    Je ne vois pas la notion de simulation du click dans ta question !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Je ne vois pas la notion de simulation du click dans ta question !
    si tu lis attentivement mon option 1
    mettre un lien (bouton) caché sur la forme et de simuler un clic
    j'en suis aussi a ma piste 3 avec le même principe que ce que tu m'a cité en lien, à savoir
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <script>
    $(function() {
    $( "#error" ).dialog();
    });
    </script>
    le problème reste que je ne sais pas déclencher ce dialogue en Intraweb autrement que par un clic bouton : je tourne en rond

    il y a bien TIWJqueryWidget mais le moins que l'on puisse dire c'est que les explication a son sujet sont 'troubles'. Je suis également sur la piste
    EDN
    <script>
    function a(event) {
    //$("#IWBUTTON1").prop('value', $( "#slider" ).slider( "value" ));
    var sValue = "&value=" + $( "#slider" ).slider( "value" );
    executeAjaxEvent(sValue, null,"MyAjaxHandler",false, null, true);
    }

    $(function() {
    $( "#slider" ).slider({
    orientation: "horizontal",
    range: "min",
    max: 255,
    value: 127,
    slide: a,
    change: a
    });

    });

    </script>



    In Delphi

    procedure TFrmAdmin.MyAjaxHandler(EventParams: TStringList);
    begin
    IWButton1.Caption := EventParams.Values['which'];
    WebApplication.ShowMessage(EventParams.Values['value']);
    // WebApplication.ShowMessage(EventParams.Text);
    end;

    procedure TFrmAdmin.IWAppFormCreate(Sender: TObject);
    begin
    WebApplication.RegisterCallBack('MyAjaxHandler', MyAjaxHandler);
    end;
    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
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Ce que je ne comprends pas, si ton utilisateur saisi son login et mot de passe, il faut bien qu'il valide sa saisie en cliquant sur le bouton ?!

    Et je suppose que la validation de login\mdp sera selon le retour d'une fonction d'identification appelé AJAX sur le Serveur ?

    En IW, si je comprends, ton RegisterCallBack est ce qu'il y a de plus proche d'un échange JSON !?
    Est-ce que EventParams peut retourner une valeur comme un token de session pour la redirection

    Il semblerait qu'il existe aussi le THandlers qui permet de renvoyer un Stream libre pouvant être XML ou JSON


    C'est ton MyAjaxHandler qui doit indiquer si la connexion est possible et selon la réponse, le JS affichera le Dialog ou redirigera vers une autre form

    Si la fonction d'identification renvoie true, cela ouvre un autre formulaire comme la "MainFor" de ton application web
    Si la fonction d'identification renvoie false, tu invoque ton dialog en JS
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Si la fonction d'identification renvoie false, tu invoque ton dialog en JS
    c'est cette dernière chose que je sais pas faire
    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

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu ne sais pas comment renvoyer un résultat ou lancer conditionnellement le Dialog ?

    As-tu regardé la propriété ScriptsEvent de ton TIWButton, tu peux lui mettre des JS personnalisés

    en regardant Creating Custom Content Handlers

    Tu adpates GiveMeSomeXML en GiveMeSomeJSON
    MIME_XML devient 'application/json'
    Utilise un TJSONObjet et TStringStream pour envoyer ta chaine via THttpReply.WriteString

    Code JAVASCRIPT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $.ajax({
      type: "GET",
      url: "http://127.0.0.1:8888/GiveMeSomeJSON",
      dataType: "json",
      success: function(data) {
        alert(data); },
      error: function() {
        alert('La requête n\'a pas abouti');}
    });

    le retour de GiveMeSomeJSON, c'est dans data
    c'est gérer avec un converter "text xml": jQuery.parseXML
    ou "text json": jQuery.parseJSON, le DataType normalement fait ce travail

    Dans data, tu mets un boolean indique si connexion OK,
    un url pour la redirection

    alert(data); c'est pour le debug, une fois le JSON correct coté serveur, tu passe au code client

    La syntaxe JS, je ne connais pas mais je pense que tu as déjà quelques pistes pour faire des essais

    Code JAVASCRIPT : 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
     
    $.ajax({
      type: "GET",
      url: "http://127.0.0.1:8888/GiveMeSomeJSON",
      dataType: "json",
      success: function(data) {
        if (data.OK) {
          window.location.href = data.url;
        }
        else {
          alert('Identifiant incorrect');}
        }
      },
      error: function() {
        alert('La requête n\'a pas abouti');}
    });
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. [C#] Simuler un Click souris
    Par helmout dans le forum Windows Forms
    Réponses: 13
    Dernier message: 13/12/2007, 01h59
  2. Réponses: 4
    Dernier message: 25/07/2005, 14h24
  3. Simulation de click souris
    Par Nats dans le forum Windows
    Réponses: 5
    Dernier message: 07/02/2005, 20h51
  4. [C#] CompactF: simuler un click de stylet
    Par tabs dans le forum Windows Mobile
    Réponses: 3
    Dernier message: 29/06/2004, 18h41

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