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 :

TWebBrowser: copier QUE la sélection + tracer en pas à pas


Sujet :

Web & réseau Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 87
    Points
    87
    Par défaut TWebBrowser: copier QUE la sélection + tracer en pas à pas
    Bonjour à tous

    J'utilise TwebBrowser sous Delphi 10.3. ( Tokyo ) je bloque sur un point, malgré des heures de tests / recherche sur le net...

    je cherche à :

    1 - Copier la sélection ( et QUE la sélection, tout j'y arrive ) du TWebBrowser dans le presse papier.
    Ou avoir accès à la sélection en tant que String...

    2 - Si on fait un clic droit dans le TWebBrowser, un menu contextuel apparait. Il comporte un sous menu COPIER qui fait ce que je voudrais...( = copier QUE la sélection )
    Mais comment "suivre en pas à pas " ce qu'il fait ?
    Pour voir comment c'est et éventuellement faire " pareil ".
    TWebBrowser étant un composant basé sur IE, est ce possible ?

    A noter que le le code que l'on trouve en 2 mn sur le net, pour copier la sélection:
    webBrowser1.Document.ExecCommand("Copy", false, null);
    Edit1.Text := Clipboard.AsString;
    ne se compile pas :
    [dcc32 Erreur] DialHTMLJournal.pas(965): E2003 Identificateur non déclaré : 'ExecCommand'

    ==> ne compile pas, ça doit dépendre des versions de Delphi ( ? )

    Merci par avance

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut
    Effectivement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Memo1.Clear ;
      Memo1.PasteFromClipboard;
    passe bien.
    regarde éventuellement de ce côté la. Je vais continuer de chercher dans mes archives
    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
     
    use activeX
    var
      ms1 : tmemoryStream ;
    begin
      ms1 := TmemoryStream.Create ;
      ms1.Position := 0  ;
      try
        Application.ProcessMessages;
        if Assigned(webbrowser1.Document) then
          (webbrowser1.Document as IPersistStreamInit).Save
          (TStreamAdapter.Create(ms1),true);
        ms1.saveToFile ('x.txt') ;
      finally
        ms1.Free;
      end;
    end;

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 87
    Points
    87
    Par défaut
    Bonjour

    Citation Envoyé par ALWEBER Voir le message
    Effectivement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      Memo1.Clear ;
      Memo1.PasteFromClipboard;
    passe bien.

    ===> ?? Je n'ai pas de composant TMemo. Hors sujet...

    regarde éventuellement de ce côté la. Je vais continuer de chercher dans mes archives
    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
     
    use activeX
    var
      ms1 : tmemoryStream ;
    begin
      ms1 := TmemoryStream.Create ;
      ms1.Position := 0  ;
      try
        Application.ProcessMessages;
        if Assigned(webbrowser1.Document) then
          (webbrowser1.Document as IPersistStreamInit).Save
          (TStreamAdapter.Create(ms1),true);
        ms1.saveToFile ('x.txt') ;
      finally
        ms1.Free;
      end;
    end;
    ==> je vais tester ...à suivre, mais passer par un TMemoryStream...compliqué des fois Delphi...

    Merci, Pascal

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 87
    Points
    87
    Par défaut OK trouvé
    voila la solution proposée sur un autre forum par Jean, ça marche nickel
    Merci, Pascal 07300

    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
    Function CopySelectedHtmlToText(MyWebBrowser : TWebBrowser) : string;
    var  document: IHTMLDocument2;
      selectionObj: IHTMLSelectionObject;
      selectionRange: IHtmlTxtRange;
    begin
      document := MyWebBrowser.Document as IHTMLDocument2;
      selectionObj := document.selection;
      selectionRange := selectionObj.CreateRange as IHtmlTxtRange;
      Result := selectionRange.text;
    end;
     
     
    Function CopySelectedHtmlToHtml(MyWebBrowser : TWebBrowser) : string;
     
    var  document: IHTMLDocument2;
      selectionObj: IHTMLSelectionObject;
      selectionRange: IHtmlTxtRange;
    begin
      document := MyWebBrowser.Document as IHTMLDocument2;
      selectionObj := document.selection;
      selectionRange := selectionObj.CreateRange as IHtmlTxtRange;
      Result := selectionRange.htmlText;
    end;
    il est possible qu'il faille rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    initialization
      OleInitialize(nil);
    finalization
      OleUninitialize;

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

Discussions similaires

  1. [RMI] ClassNotFoundException que je ne comprends tjs pas
    Par Satch dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/05/2007, 12h07
  2. Requête de sélection n'affiche pas tout
    Par tojiji dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 03/08/2006, 21h33
  3. Réponses: 2
    Dernier message: 06/04/2006, 09h17
  4. Tester que le fichier n'est pas un fichier binaire
    Par fedfil dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 21/10/2005, 17h29
  5. [VB.NET]Lancement d'un programme que s'il n'est pas lancé
    Par cyrcroix dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2005, 14h05

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