Publicité
+ Répondre à la discussion
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 34
  1. #1
    Rédacteur
    Avatar de Giovanny Temgoua
    Étudiant
    Inscrit en
    novembre 2003
    Messages
    3 830
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2003
    Messages : 3 830
    Points : 3 823
    Points
    3 823

    Par défaut Venez participer à la FAQ Delphi !

    Bonjour,

    Comme vous le savez, la FAQ Delphi contient les questions fréquemment posées sur les forums Delphi et Delphi et bases de données. Malgré nos efforts, elle peut néanmoins contenir des erreurs, nous vous remercions donc de nous les signaler si vous en trouvez.

    Par ailleurs, si vous avez des Questions/Réponses (QRs) intéressantes à proposer dont vous êtes l'auteur, vous pouvez les poster à la suite de ce topic en respectant le format donné ci-après. Ces questions doivent être relatives à des problèmes précis que vous avez rencontrés lors du développement de votre application ou alors une question frequemment posée sur le forum. Il vous est demandé, par conséquent, de préciser la version de Delphi, les composants que vous utilisez (éditeurs, gratuits, personnels) ainsi que la section dans laquelle vous souhaitez voir votre QR publiée.
    La FAQ Delphi aimerait rester la plus technique possible.
    Nous encourageons donc les developpeurs (débutants ou expériementés) à consulter l'aide afin d'utiliser les fonctions standards qui résolvent bien des problèmes avant de proposer une QR.

    Pour soumettre une QR, il vous est demandé de la présenter de cette façon :
    [QR]Comment bien présenter une nouvelle QR ?

    Vous devez présenter le titre en couleur comme ci-dessus et écrire le texte de votre QR ici. Soyez clair et précis sans écrire un livre. Une QR est une réponse simple à une question courante.
    Vous pouvez ajouter des liens dans votre texte en utilisant la balise URL.
    Dans le texte si vous citez une fonction de Delphi, mettez la déclaration en gras. Exemple : pour connaitre la position de la souris utiliser la fonction GetCursorPos(). Bien sur dans les balises code il ne faut pas mettre de mise en forme. La coloration est faite au moment de la publication sur le site.
    Vous pouvez utiliser le gras l'italique ou le souligné mais pas les tailles de polices ni la couleur.
    De même ne mettez pas de smiley dans le texte.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Le code doit toujours être entre les balises CODE
    // Indenter correctement votre code afin de nous éviter une reprise
    // manuelle ensuite
    Begin
      ShowMessage('Hem.');
      ShowMessage('Avez-vous compris ?');
      If Reponse='OUI'
        Then ShowMessage('OK')
        Else ShowMessage('Relisez tout');
    End;
    En fin de QR, vous pouvez ajouter les liens qui peuvent être utiles en complément.
    Ensuite, vous pourrez éventuellement ajouter vos remarques. Si la QR est fournie avec des fichiers (par exemple, un projet présentant le fonctionnement du code) veuillez les placer dans un fichier .zip et nous communiquer le lien où on pourra le télécharger.

    Il est également possible d'envoyer votre QR par mail (avec éventuellement en pièces jointes les sources) à l'adresse faqdelphi _AT_ redaction-developpez.com


  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Étudiant
    Inscrit en
    novembre 2003
    Messages
    3 830
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : novembre 2003
    Messages : 3 830
    Points : 3 823
    Points
    3 823

    Par défaut

    Bonjour,

    L'adresse de la FAQ est exclusivemement réservée à vos propositions pour la FAQ. Si par ailleurs, vous souhaitez rédiger un article, merci de prendre contact directement avec un des membres de l'équipe Delphi ou le DRH par MP.

    Par ailleurs, les questions techniques (ou non) doivent être postées sur le forum. Toute demande par mail sera purement et simplement ignorée.

    Merci.

  3. #3
    Membre émérite
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    mars 2004
    Messages
    622
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2004
    Messages : 622
    Points : 970
    Points
    970

    Par défaut Taille en pixels d'un texte (encore une...)

    Roland Chastain : intégré dans la nouvelle FAQ, merci pour cette contribution

    Obtenir la largeur et/ou la hauteur en pixels d'un texte, dans une fonte donnée, et dans un contrôle fenêtré donné.

    Fonctions sans instanciations d'objets VCL, donc rapides.

    Plateforme Windows uniquement, enfin je crois...

    Code :
    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
    function GetTextSize  (const AControl : TWinControl;
                           const AFont    : TFont;
                           const AText    : string): TSize;
    var DC: HDC;
    begin
      DC := GetWindowDC(AControl.Handle);
      Result.cx := 0;
      Result.cy := 0;
      SelectObject(DC,AFont.Handle);
      GetTextExtentPoint32(DC,PChar(AText),Length(AText),Result);
      ReleaseDC(AControl.Handle,DC);
    end;
     
    function GetTextWidth (const AControl : TWinControl;
                           const AFont    : TFont;
                           const AText    : string): Integer;
    begin
     Result := GetTextSize(AControl,AFont,AText).cx
    end;
     
    function GetTextHeight(const AControl : TWinControl;
                           const AFont    : TFont;
                           const AText    : string): Integer;
    begin
     Result := GetTextSize(AControl,AFont,AText).cy
    end;

  4. #4
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    Super QR
    Merci de ta participation
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre éclairé Avatar de gb_68
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2006
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2006
    Messages : 203
    Points : 350
    Points
    350

    Par défaut

    Bonjour,

    une information intéressante
    Delphi 2006 propose un nouveau gestionnaire de mémoire : http://dn.codegear.com/article/33416
    pour mettre à jour la
    [QR]Comment partager un objet entre un exécutable (.exe) et une DLL?
    [QR]Comment passer des strings dans une DLL ?


    il suffit de mettre SimpleShareMem dans les uses à la place ShareMem ; comme FastShareMem, il n'y a plus besoin de BORLNDMM.DLL et cette unité est fournie de base avec Delphi (de plus ce n'est qu'une infime partie des nouveautés présentées dans l'article http://dn.codegear.com/article/33416).

    edit:et rajouter

    Roland Chastain : intégré dans la nouvelle FAQ

    [QR]Comment traquer les fuites de mémoire ?
    Le gestionnaire de mémoire de Delphi 2006 permet de savoir si votre programme libère bien toute la mémoire que vous avez allouée. Il suffit d'ajouter à votre programme ReportMemoryLeaksOnShutdown := true ; ou ReportMemoryLeaksOnShutdown := DebugHook <> 0 ; pour n'activer cette fonctionnalité qu'en débogage.

    Exemple :
    Code :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      PRec = ^Rec;
     
      Rec = record
        A,B : integer;
      end;
     
      TObjetInterne = class(TObject)
      end;
     
      TObjetPrincipal = class(TObject)
      public
        FObjetInterne : TObjetInterne;
        FRec : PRec ;
        constructor Create;
        destructor  Destroy; override;
      end;
     
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
    { TObjetPrincipal }
    constructor TObjetPrincipal.Create;
    begin
       inherited;
       FObjetInterne := TObjetInterne.Create;
       New(FRec);
    end;
     
    destructor TObjetPrincipal.Destroy;
    begin
      FObjetInterne.Free;
      Dispose(FRec);
      inherited;
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    var ObjetPrincipal : TObjetPrincipal; ptr : Pointer;
    begin
       ReportMemoryLeaksOnShutdown := DebugHook <> 0 ;
       ObjetPrincipal := TObjetPrincipal.Create;
       ptr := AllocMem(10000);
    end;
     
    end.
    En cliquant 4 fois sur Button1 puis en fermant l'application, on obtient :
    Une autre petite mise à jour possible
    [QR]Comment ajouter une icône dans le systray ?
    Delphi ne propose pas en standard de méthode pour ajouter une icône dans la barre des tâches de Windows.
    Depuis Delphi 2006 il existe TTrayIcon (palette Supplément).
    Images attachées Images attachées

  6. #6
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    pour toutes ces infos gb_68
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  7. #7
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : mars 2004
    Messages : 624
    Points : 635
    Points
    635

    Par défaut Comment obtenir un handle de fenêtre (HWND) de console

    Roland Chastain : intégré dans la nouvelle FAQ, merci pour cette contribution

    J'ai trouvé ça par hasard et je ne l'ai pas trouvé dans la FAQ (enfin j'ai trouvé ceci Comment cacher la fenêtre d'une application console ? mais il me semble intéressant de rajouter ça à part)
    http://support.microsoft.com/kb/124103/fr

    Le but est d'obtenir le Handle de la fenêtre de l'application console.
    Pour ce faire on va générer un titre unique et chercher la fenêtre qui à ce titre.

    Code DELPHI :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function GetConsoleHwnd : HWND ;
    var
        NewWindowTitle : string ;
        OldWindowTitle : string ;
    begin
          SetLength(NewWindowTitle, 1024) ;
     
          // Récupère le titre courant
          GetConsoleTitle(PChar(OldWindowTitle), 1024);
     
          NewWindowTitle := Format('%d/%d', [GetTickCount, GetCurrentProcessId]);
     
           // Change le titre
           SetConsoleTitle(PChar(NewWindowTitle));
     
           // Attend pour que le titre de la fenêtre soit changé
           Sleep(40);
     
           // Charche le nouveau titre
           Result := FindWindow(nil, PChar(NewWindowTitle)) ;
     
           // Restore le titre originnal.
           SetConsoleTitle(OldWindowTitle);
    end ;

  8. #8
    Rédacteur
    Avatar de sjrd
    Homme Profil pro Sébastien Doeraene
    Chercheur en informatique
    Inscrit en
    juin 2004
    Messages
    4 508
    Détails du profil
    Informations personnelles :
    Nom : Homme Sébastien Doeraene
    Âge : 24
    Localisation : Suisse

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : juin 2004
    Messages : 4 508
    Points : 9 655
    Points
    9 655

    Par défaut

    Merci pour cette proposition et ta participation
    On va traiter tout ça
    sjrd, ancien rédacteur/modérateur Delphi, désormais membre de l'équipe Scala à l'EPFL en tant que doctorant.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript.
    Découvrez Mes tutoriels, ou mon logiciel phare FunLabyrinthe v5.3 : un jeu de labyrinthe gratuit et personnalisable à l'infini avec des scripts Delphi-like.

  9. #9
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 4
    Points : 13
    Points
    13

    Par défaut

    Alcatîz : mise à jour effectuée, merci.

    [QR]Comment change-t-on la couleur de fond d'un élément de radiogroup ?[QR]

    Mise à jour de http://delphi.developpez.com/faq/?pa...fondradiogroup

    Depuis Delphi 7 (peut-être avant) on peut directement acceder à la propriété
    Buttons[Index] du Radiogroup ce qui donne accès toutes ses propriétés :

    Code :
    1
    2
    3
    4
    5
    6
     
    procedure RGB_ColorItem(RadioGroup: TRadioGroup; ItemIndex: Byte; Color: 
    Tcolor); 
    begin 
      RadioGroup.Buttons[ItemIndex].Color := Color; 
    end;
    Voici ma modeste contribution

  10. #10
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    Merci pour ta contribution gaabne
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  11. #11
    Rédacteur
    Avatar de aityahia
    Homme Profil pro Idir AIT YAHIA
    EURL CIEPTAL CARS
    Inscrit en
    mars 2006
    Messages
    1 923
    Détails du profil
    Informations personnelles :
    Nom : Homme Idir AIT YAHIA
    Âge : 39
    Localisation : Algérie

    Informations professionnelles :
    Activité : EURL CIEPTAL CARS
    Secteur : Transports

    Informations forums :
    Inscription : mars 2006
    Messages : 1 923
    Points : 3 224
    Points
    3 224

    Par défaut

    Alcatîz : mise à jour effectuée, merci.

    salut:
    je tiens a proposé une MAJ pour la question énuméré dans la FAQ.
    Comment envoyer un e-mail avec Delphi ?

    la solution proposé ne gère pas les connections SSL.

    [QR] Comment envoyer un e-mail avec Delphi?

    les fichiers .cer seront obtenus auprès de votre fournisseur de services.

    Code :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    var
      IdMessage: TIdMessage;
      IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
      IdSMTP: TIdSMTP;
      Message: TStrings;
      i: Integer;
      Fichiers: Array Of String;
    begin
      IdMessage := TIdMessage.Create(nil); //création dynamique du composant
     
      IdMessage.From.Address := 'expediteur@domaine.com';
     
      //Ces deux lignes peuvent-être répétées autant de fois que vous désirez 
      //d'adresse de réponse et/ou de destinataire
      IdMessage.ReplyTo.Add.Address := 'expediteur@domaine.com';
      IdMessage.Recipients.Add.Address := 'destinataire@domaine.com' ;
     
      IdMessage.Subject := 'Sujet du message';
     
      IdMessage.ContentType := 'multipart/alternative'; //Message 'découpé' en plusieurs parties
     
      Message := Memo1.Lines; //par exemple... il faut juste que ce soit un TStrings !
     
      //Ici on va créer les différentes parties du message
      //Au cas où le client ne gère pas les messages HTML :
      With TIdText.Create(IdMessage.MessageParts, Message) Do
      Begin
        ContentType := 'text/plain';
        Body.Insert(0, 'Ce message est un message HTML. Configurez votre client de courrier électronique' +
       'pour le visionner de manière appropriée');
      end;
     
      //Ajout du message au format HTML (en supposant que Message contient du HTML) :
      with TIdText.Create(IdMessage.MessageParts, Message) do
        ContentType := 'text/html';
     
      //Et maintenant, l'ajout des pièces jointes :
      //Le tableau de strings Fichiers doit être remplis avec les chemins complets des fichiers à inclure
      for i := Low(Fichiers) to High(Fichiers) do
        TIdAttachment.Create(IdMessage.MessageParts, Fichiers[i]);
     
      //On passe ensuite à l'envoi du message:
      IdSMTP := TIdSMTP.Create(nil) ; //Création dynamique du composant
     
      IdSMTP.Port := 25; //Le port SMTP standard... 
      IdSMTP.Host := 'smtp.serveur.com';  //Le serveur auquel se connecter
     
    // paramétrage de la connexion SSL.
    If SSLConnect Then
     begin
       IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.RootCertFile :='RootCert.cer';
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile := 'Certificat.cer';
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.KeyFile := '';
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv3;
     end;
     
      //Ensuite on se connecte et on envoit le message, en gérant les erreurs, tant qu'à faire !
      Try
        Try
          IdSMTP.Connect;
          IdSMTP.Send(IdMessage);
        except
          on e: exception do MessageDlg(e.Message, mtError, [mbOK], 0);
        end;
      finally
        IdSMTP.Disconnect;
        IdSMTP.Free;
        IdMessage.Free;
      end;
     
    end ;

  12. #12
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    Merci pour ta participation
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  13. #13
    Nouveau Membre du Club
    Inscrit en
    septembre 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : septembre 2002
    Messages : 13
    Points : 29
    Points
    29

    Par défaut Comment formater un entier avec la fonction format

    Alcatîz : QR ajoutée à la nouvelle FAQ, merci pour cette contribution

    La FAQ donne un exemple de formatage d'un nombre réel mais il n'y a rien sur les nombres entiers. Pour formater un nombre entier en utilisant les séparateurs de millier, on doit utiliser l'astuce de convertir notre entier en nombre flottant et n'afficher que la partie entière. La fonction format permet de réaliser cela très facilement.

    Il existe deux formes d'utilisation de la fonction format.

    Il est possible d'utiliser une variable locale pour spécifier le séparateur de millier ou le séparateur décimal.

    Voici un exemple

    Code :
    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
     
    procedure AfficheEntierFormate;
    var
    i:integer;
    setting:Tformatsettings;
    begin
    i:=10000000;
     
    //première forme de l'utilisation de la fonction format
    //L'astuce consiste à diviser l'entier par 1 pour obtenir un nombre flottant
    //et utiliser le caractère de type de conversion n au lieu de d.
    //On fixe le nombre de décimale à zéro avec le spécificateur facultatif de précision .0
    //On affiche donc une nombre flottant sans afficher les décimales
    //La fonction format utilisera les paramètres locaux pour formater le nombre
    showmessage(format('le nombre est %.0n ',[i/1]));
    //Si le séparateur de millier est l'espace notre valeur sera 10 000 000
    //mais rien nous garantie que le séparateur de millier est celui que nous voulons
     
    //Si on désire contrôler les paramètres de formatage, il faut déclarer une variable
    //de type Tformatsetting et utiliser la deuxième forme de la fonction format
    //On initialise notre variable avec les paramètres régionaux fixés par l'usager
    GetLocaleFormatSettings(SysLocale.DefaultLCID, setting);
    //On modifie la valeur ou les valeurs qui nous intéressent
    setting.ThousandSeparator:=',';
    showmessage(format('le nombre est %.0n ',[i/1], setting));
    //Notre valeur sera affichée à coup sur selon notre désir 10,000,000
     
    end;
    De cette façon on ne modifie pas les variables globales et on ne risque pas d'effet de bord dans les traitements subséquents.

    Salutations
    BeTuLa

  14. #14
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    Merci pour ta participation
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  15. #15
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    mars 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Âge : 26
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2008
    Messages : 105
    Points : 54
    Points
    54

    Par défaut Comment récuperer les liens dans une page HTML ?

    Alcatîz : remarque ajoutée dans la QR, merci pour cette contribution

    Bonjour seulement j'ai remarqué qu'il n'est pas dit qu'il faut ajouter StrUtils dans la caluse Uses pour la fonction PosEx, et j'ai un problème de compilation ( identificateur non déclaré ) pour le BeginPos , la question dans la Faq c'est :
    Comment récuperer les liens dans une page HTML ?
    Voici le lien

  16. #16
    Membre actif Avatar de adaneels
    Homme Profil pro Arnaud DANEELS
    Chef de projet MOA
    Inscrit en
    août 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Nom : Homme Arnaud DANEELS
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : août 2006
    Messages : 235
    Points : 180
    Points
    180

    Par défaut

    Alcatîz : correction faite, merci beaucoup

    Citation Envoyé par Zaki_SDwin
    Bonjour seulement j'ai remarqué qu'il n'est pas dit qu'il faut ajouter StrUtils dans la caluse Uses pour la fonction PosEx,
    Sorry, les clauses uses sont rarement mises si je me souviens bien. Mais tu peux les retrouver très facilement dans l'aide de Borland (F1 sur la fonction par exemple).

    Citation Envoyé par Zaki_SDwin
    j'ai un problème de compilation ( identificateur non déclaré ) pour le BeginPos , la question dans la Faq c'est :
    Comment récuperer les liens dans une page HTML ?
    Voici le lien
    C'est une variable dont la déclaration a été oubliée. Elle est à déclarer en "BeginPos : Integer;" juste avant le premier "begin".
    --
    Arnaud DANEELS

  17. #17
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    Merci de l'avoir signalé
    On essaiera de corriger tout ça à la prochaine mise à jour.
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  18. #18
    Rédacteur/Modérateur
    Avatar de SergioMaster
    Homme Profil pro Serge Girard
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    5 393
    Détails du profil
    Informations personnelles :
    Nom : Homme Serge Girard
    Âge : 58
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 5 393
    Points : 10 562
    Points
    10 562

    Par défaut [EDI BDS2005,BDS2006 ...] une Aide plus efficace

    Fatigué de me battre avec une aide de BDS2006 un peu 'floue', nostalgique de l'aide si complète de D7 et désespérant avoir un jour une mise à jour , j'ai trouvé une petite pepite chez CodeGear . Voici une proposition de Question/Réponse , a retravailler car le lien ne fonctionne pas tout le temps et on doit être enregistré il y a a aussi Delphi Praxis Help Booster qui pourrait être cité

    [QR] ajouter de l'aide à mon EDI
    il est possible d'utiliser un ancien fichier d'aide Delphi avec votre nouveau EDI . Si vous avez la chance d'avoir une version plus ancienne D3..D7 :
    télechargez et installez Delphi7helpforBDS

    Ctrl+F1 et Shift+F1 seront alors vos touches d'aides supplémentaires

  19. #19
    Rédacteur
    Avatar de Pedro
    Inscrit en
    octobre 2003
    Messages
    5 418
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 5 418
    Points : 7 737
    Points
    7 737

    Par défaut

    Merci de ta participation Maitre Sergio
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  20. #20
    Membre éclairé Avatar de HumanTool
    Homme Profil pro Guillaume ROQUES
    Chef de projet NTIC
    Inscrit en
    janvier 2006
    Messages
    273
    Détails du profil
    Informations personnelles :
    Nom : Homme Guillaume ROQUES
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2006
    Messages : 273
    Points : 328
    Points
    328

    Par défaut [OpenOffice]

    Alcatîz : correction effectuée, merci

    Bonjour,
    il semblerait que j'eusse oublié une partie du code pour la faq pourriez la mettre à jour :
    Code :
    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    function IsNullEmpty(AObject: Variant): Boolean;
    begin
        Result := VarIsEmpty(AObject) or VarIsNull(AObject) or VarIsClear(AObject);
    end;
     
    function CreateUnoService(const AServiceName: String): Variant;
    begin
        try
            Result := AApp.createInstance(AServiceName);
        except
        end;
    end;
     
    procedure StartOpenOffice;
    begin
        try
            if not IsNullEmpty(AApp) then
                AApp := Unassigned;
            AApp := CreateOleObject('com.sun.star.ServiceManager');
            ADeskTop := CreateUnoService('com.sun.star.frame.Desktop');
            AUno := CreateUnoService('com.sun.star.frame.DispatchHelper');
            ALocale := CreateUnoService('com.sun.star.Lang.Locale');
        except
            on E: Exception do
            begin
                AApp := Unassigned;
                Abort;
            end;
        end;
    end; 
     
    function PasteClipBoard: String;
    var
        OOoClip, OOoClipContents, OOoTypes: Variant;
        I: Integer;
    begin
        Result := '';
        try
            OOoClip := CreateUnoService('com.sun.star.datatransfer.clipboard.SystemClipboard');
     
            OOoClipContents := OOoClip.getContents;
            OOoTypes := OOoClipContents.getTransferDataFlavors;
            For I := VarArrayLowBound(OOoTypes, 1) to VarArrayHighBound(OOoTypes, 1) do
            begin
                if OOoTypes[i].HumanPresentableName = 'Unicode-Text' then
                begin
                    Result := String(OOoClipContents.getTransferData(OOoTypes[i])) + #13#10;
                    Break;
                end;
            end;
        except
            on E: Exception do
            begin
                CTErrorDlg('OfficeReportCreation', [E.Message]);
                Abort;
            end;
        end;
    end;
    Ce code est valable pour les 2 exemples...merci
    D'abord ils vous ignorent, ensuite ils se moquent de vous, puis ils vous combattent, enfin vous gagnez (Gandhi)

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •