+ Répondre à la discussion Actualité déjà publiée
Page 2 sur 9 PremièrePremière 123456 ... DernièreDernière
Affichage des résultats 21 à 40 sur 161
  1. #21
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 235
    Points : 2 943
    Points
    2 943

    Par défaut

    Re_bonjour,

    A Eric Boisvert : Je viens de tester :
    Code :
    1
    2
    3
    4
    procedure ShowMsg(DisplayText:string);
    begin
      Application.MessageBox(PChar(DisplayText),PChar(Application.ExeName),MB_OK);
    end;
    en lui donnant un nom différent de ShowMessage pour être certain que c'est bien ShowMsg qui s'affiche et non la ShowMessage standard, mais même dans ce cas l'astuce du Ctrl-C ne marche pas sous Delphi-5.
    Mais rien ne m'empêche de faire un truc personnalisé avec une lucarne surgissante porteuse d'un TEdit à la place de TLabel si je veux pourvoir y faire un Ctrl-C.

    A+

  2. #22
    Membre émérite

    Profil pro
    Inscrit en
    mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : mai 2003
    Messages : 582
    Points : 874
    Points
    874

    Par défaut

    à Gilbert Geyer..
    et pourtant ici, Delphi 5 pros+update pack 1... sous Win2k...
    CTRL+C dans la fenêtre et CTRL+V ici
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
     
    ---------------------------
    C:\P\Delphi\Test\Test.exe
    ---------------------------
    Testing
    ---------------------------
    OK   
    ---------------------------
    Y a probablement une différence entre les différents OS?
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  3. #23
    Expert Confirmé Sénior
    Avatar de Qwazerty
    Homme Profil pro Stéphane
    La très haute tension :D
    Inscrit en
    avril 2002
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Nom : Homme Stéphane
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 2 675
    Points : 7 545
    Points
    7 545

    Par défaut

    SAlut
    Tout d'abord c'est bien sympa cette section
    Pour le showmessage, j'etais persuadé qu'il faisait appelle a une api Windows, et le Ctrl+C c'est justement l'api qui le gere :/. j'ai donc du me fourvoyer....
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    HammerFest
    Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer

  4. #24
    Expert Confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    2 877
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 2 877
    Points : 3 843
    Points
    3 843

    Par défaut

    Salut tout le monde.

    Extrait de l'aide de D7 sur ShowMessage :
    Remarque : Si l'utilisateur tape Ctrl+C dans la boîte de message, le texte du message est copié dans le Presse-papiers.
    Mes 2 cts,
    --
    jp

  5. #25
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 235
    Points : 2 943
    Points
    2 943

    Par défaut

    Bonjour,

    A Eric Boisvert
    et pourtant ici, Delphi 5 pros+update pack 1... sous Win2k...
    ... autant pour moi, j'avais oublié de préciser que j'utilise Delphi 5 Standard sous Win98.

    A Jipété : A propos de l'extrait de l'aide de D7 sur ShowMessage :
    vérification faite dans l'aide de D5-Standard le description concernant ShowMessage se résume à :
    Description

    Appelez ShowMessage pour afficher un message simple avec le bouton OK. Le paramètre Msg est la chaîne qui apparaît dans la boîte de dialogue. Le nom de l'exécutable de l'application apparaît comme légende de la boîte de dialogue.

    Pour afficher un message avec d'autres boutons ou avec une icône, utilisez la fonction MessageDlg.
    ... sans aucune allusion à un Ctrl+C.

    A Tous: c'est sympa mais ne vous tracassez pas pour moi, et rien n'empêche un utilisateur de se faire une routine du type
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure SMS(S : string);
    begin     with Form1.Edit8 do // Edit8 est invisible sur ma Form 
              begin text:=S;
                    SelectAll;
                    CopyToClipBoard;
              end;
              ShowMessage(S);
    end;
    ... et non seulement ça marche même sous D5-Standard et en prime d'une part ça évite d'avoir à taper Ctrl+C, reste plus-qu'à taper le Ctrl-V par la suite.
    et d'autre part SMS() ça évite d'avoir à taper les 9 caractères de ShowMessage.

    Au fait, au lieu d'utiliser Edit8 on pourrait aussi le remplacer par un TEdit créé et libéré dynamiquement..

    A+

  6. #26
    Membre éclairé
    Inscrit en
    mai 2005
    Messages
    288
    Détails du profil
    Informations forums :
    Inscription : mai 2005
    Messages : 288
    Points : 377
    Points
    377

    Par défaut

    tu n'as même pas besoin d'un TEdit, en ajoutant clipbrd dans les uses

    Code :
    1
    2
    3
    4
    5
    procedure SMS(S : string);
    begin
     clipboard.AsText := s;
     ShowMessage(S);
    end;

  7. #27
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 235
    Points : 2 943
    Points
    2 943

    Par défaut

    Re-bonjour,

    A Exoseven : Merci beaucoup. Ah que j'aime ce type de routine où l'on règle un problème avec seulement deux instructions!

    A+

  8. #28
    Membre éprouvé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2006
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : octobre 2006
    Messages : 448
    Points : 409
    Points
    409

    Par défaut

    Citation Envoyé par Gilbert Geyer
    ... autant pour moi, j'avais oublié de préciser que j'utilise Delphi 5 Standard sous Win98.
    En fait, la cause proviens de Win98 et non de Delphi 5.
    la solution est de passer a Win2000 ou supérieur.
    Si vous êtes libre, choisissez le Logiciel Libre.

  9. #29
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    octobre 2005
    Messages
    2 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : octobre 2005
    Messages : 2 235
    Points : 2 943
    Points
    2 943

    Par défaut

    Re-bonjour,

    A TryExceptEnd :
    En fait, la cause proviens de Win98 et non de Delphi 5.
    la solution est de passer a Win2000 ou supérieur.
    ... ça fait depuis longtemps que je voulais installer WinXp mais la manip m'oblige à réinstaller tout le reste et les réinstallations c'est pas mon truc.

    A+

  10. #30
    Candidat au titre de Membre du Club
    Inscrit en
    mai 2007
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : mai 2007
    Messages : 13
    Points : 13
    Points
    13

    Par défaut

    J'utilise peu les showmessages pour une raison très simple. J'ai la plupart du temps un code multithread, et showmessage est rarement apprécié dans ce cas. Par contre j'utilise un petit objet "cLog", qui stocke tout ce qu'on lui envoie dans un fichier texte, via la fonction Append, et lui ne me pose pas de problème avec les Thread. En se débrouillant bien, çà permet de stocker le ou les messages avec un horodatage précis. Pas inutile dans le cas de traitement passablement long !

  11. #31
    Expert Confirmé Sénior
    Avatar de Qwazerty
    Homme Profil pro Stéphane
    La très haute tension :D
    Inscrit en
    avril 2002
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Nom : Homme Stéphane
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 2 675
    Points : 7 545
    Points
    7 545

    Par défaut

    Salut
    Attention le sujet dirive...
    A++

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    HammerFest
    Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer

  12. #32
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : mars 2005
    Messages : 5 195
    Points : 8 202
    Points
    8 202

    Par défaut

    Pour ma part, j'ai une unité où je mets les fonctions que j'utilise le plus souvent et qui se répercute de programmes en programmes.

    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
    73
    74
    75
    76
    77
     
    unit uDefs;
     
    interface
     
    uses SysUtils,stdctrls,Dialogs,DateUtils,Forms;
     
    const
      CVERSION = '1.00';
      CVERDATE = '10/08/2007';
     
    var
      GAPPPATH : String;
     
      procedure MemoMessage (Memo : TMemo; sText : String);
      procedure CreateLogFile(sFilename,sText : String);
      function Wait (ms : Integer) : Integer;
     
     
    implementation
     
    procedure MemoMessage (Memo : TMemo; sText : String);
    begin
      CreateLogFile(FormatDateTime('YYYYMMDD',Now) + '.log',
                      DateToStr(Now) + ' ' + TimeToStr(Now) +  sText);
      while Memo.Lines.Count > 500 do
        Memo.Lines.Delete(0);
      Memo.Lines.Add('[' + DateToStr(Now) + ' ' + TimeToStr(Now) + '] ' + sText);
    end;
     
    procedure CreateLogFile(sFilename,sText : String);
    var
      FText : TextFile;
      sFile, sDir : String;
    begin
      try
        sDir := GAPPPATH + '\logs\' + FormatDateTime('YYYY',Now) + '\' +
                FormatDateTime('MM',Now) + '\';
        if not DirectoryExists(sDir) then
          ForceDirectories(sDir);
        sFile :=sDir + sFileName;
        AssignFile(FText,sFile);
        if FileExists(sFile) then
          Append(FText)
        else
          ReWrite(FText);
        try
          Writeln(FText,Trim(sText));
        finally
          Closefile(FText);
        end;
      Except on E:Exception do
        begin
          if IOResult = 32 then
            CreateLogFile(sFileName,sText)
          else
            ShowMessage(E.Message);
        end;
      end;
    end;
     
    function Wait (ms : Integer) : Integer;
    var
      dTimeDebut : TDateTime;
      iMsBetween : Integer;
    begin
      dTimeDebut := Now;
      iMsBetWeen := MilliSecondsBetween(Now,Now);
      while  iMsBetWeen <= ms do
      begin
        Application.ProcessMessages;
        iMsBetween := MilliSecondsBetween(dTimeDebut,Now);
      end;
      Result := abs(iMsBetween);
    end;
     
    end.
    la variable Globale GAPPPATH est initialisée au démarrage et recoit le chemin de l'application.

    Code delphi :
    1
    2
     
    GAPPPATH := ExtractFilePath(Application.exename);

    De même que pour CVERSION et CVERDATE, je m'en sert pour le titre de l'paplication au démarrage

    Code Delphi :
    1
    2
     
    Caption := 'MonApplication v' + CVERSION + ' du ' + CVERDATE;

    La fonction Wait est une sorte de sleep sans le défaut du sleep.
    Car lors de l'utilisation du sleep, le programme est mis en pause (voir dans l'aide) alors que ma fonction laisse passer correctement les messages Windows.
    Modérateur Delphi Combattez la brute
    Aucune réponse aux sollicitations techniques par MP

    Le guide du bon forumeur :
    __________
    [Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3

  13. #33
    Inactif
    Inscrit en
    avril 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 55
    Points : 40
    Points
    40

    Par défaut Debbug

    Petite astuce pour debugger un projet
    Aller dans Projets options
    DÉSACTIVER l'optimisation (choix implicite)
    ACTIVER les trois erreurs à l'exécution
    ACTIVER les cinq options de debug

    Et quand vous compilez traitez les messages d'avertissement
    Pris un par un ils n'ont que peu d'importance (d'où leur claassificatio)
    mais leur combinaison peut générer à terme un bug beaucoup plus sournois a identifié (les effets de bord par exemple)

    L'ennemi le plus redoutable est le gestionnaire de mémoire Il est assez redoutable a debuger.
    Le meilleur moyen est de s'en passer au maximum aussi préférer toujours une variable de taille fixe globale a une dynamique locale.
    Il sera toujours temps quand votre projet sera au point de mettre en dynamique se qui peut l'etre et si cela se passe mal vous identifirez beaucoup plus facilement l'opération provoquant le bug.

    Bon debbug
    'Heureusement que l'on commets des erreurs : où serait le plaisir de la programmation si tous marchait du premier coup?

    PapyJohn

  14. #34
    Expert Confirmé Sénior Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    juillet 2006
    Messages
    10 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juillet 2006
    Messages : 10 080
    Points : 14 312
    Points
    14 312

    Par défaut

    Citation Envoyé par Rayek Voir le message
    La fonction Wait est une sorte de sleep sans le défaut du sleep.
    Car lors de l'utilisation du sleep, le programme est mis en pause (voir dans l'aide) alors que ma fonction laisse passer correctement les messages Windows.
    Le Sleep n'a aucun défaut, il est fait justement pour qu'un thread relache totalement son temps processeur au profit des autres threads, durant un tant donné sans se préoccuper des messages, car il y a justement une fonction d'attente prévue pour cela, c'est WaitMessage appelé dans le thread VCL, qui suspend le thread et reprend son execution dès l'apparation d'un message dans la file d'attente tout ceci appelé dans le Application.Idle, ensuite, lorsque WaitMessage relache la main au thread VCL, cela reprend l'execution de la boucle run, qui va lancer une écoute de message via l'API "PeekMessage" (voir ProcessMessage sans S dans TApplication) ... sinon,

    tu devrais modifier ta fonction Wait qui consomme à mon avis BEAUCOUP de processeur (100% pour un mono core, 50% pour un dual, ...), tient j'ai adapté (simplifié) une fonction que j'avais développé pour l'attente du remplissage asynchrone du HTMLBody d'un WebBrowser ...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {* -----------------------------------------------------------------------------
    Attend un Nombre de Milli-Seconde sans bloquer la réaction au Message 
    @param TimeOut Nombre de Milli-Seconde à attendre
    ------------------------------------------------------------------------------ }
    procedure WaitSleeping(TimeOut: Cardinal);
    var
       StartTime, PointTime: Cardinal;
    begin
      StartTime := GetTickCount();
      repeat
        Sleep(1); // Il laisse une Milliseconde Entière aux Autres Processus
        Application.ProcessMessages();
        PointTime := GetTickCount();
      until PointTime >= StartTime+TimeOut; // Continue jusqu'à ce que le Délai soit écoulé
    end;
    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

  15. #35
    Expert Confirmé Sénior
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    décembre 2002
    Messages
    3 516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : décembre 2002
    Messages : 3 516
    Points : 4 047
    Points
    4 047

    Par défaut

    Salut! Pour info, dans cette boucle ci-dessus, la durée du sleep affecte directement la charge du processeur. Dans certains cas, il est utile de ne pas bloquer le proc durant le délai... Perso, je mets sleep(50) en général pour obtenir une boucle suffisemment rapide sans trop bloquer le proc.

  16. #36
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    1 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 1 906
    Points : 1 776
    Points
    1 776

    Par défaut

    Bonjour,

    Encore deux trucs, dont l'un est en principe indispensable à tout développeur, à moins de disposer d'une mémoire d'éléphant.


    • 1. lorsque je tourne en rond, m'obstine sur un code, une méthode, un algo récalcitrant à trouver ; la pause du déjeuner ou dîner m'apporte souvent la réponse gràce justement à ce recul salutaire.



    • 2. pour revenir à votre mémoire d'éléphant comment, quelle méthode vous permet de conserver, mémoriser, stoker vos codes et snippets ?
      (snippet = morceau de code)
      Perso j'utilise avec bonheur depuis des années un des freewares de Christian Martinez (SoftChris). Ce programme se nomme SoftNote 2002.
      A noter également que je compte bientôt changer contre SortNote 2005, bien plus évolué !


    A l'aide de ce programme, à condition que votre classement soit effectué logiquement ; retrouver un code devient un simple jeu d'enfant, merci à son auteur et vive les freewares et auteurs de freewares !


  17. #37
    Membre habitué
    Profil pro
    Inscrit en
    janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : janvier 2005
    Messages : 158
    Points : 127
    Points
    127

    Par défaut

    Citation Envoyé par Droïde Système7
    2. pour revenir à votre mémoire d'éléphant comment, quelle méthode vous permet de conserver, mémoriser, stoker vos codes et snippets ?
    (snippet = morceau de code)
    Perso j'utilise avec bonheur depuis des années un des freewares de Christian Martinez (SoftChris). Ce programme se nomme SoftNote 2002.
    A noter également que je compte bientôt changer contre SortNote 2005, bien plus évolué !
    Je ne dirais qu'un mot : Adopté.

    Merci Droïde Système7
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  18. #38
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    1 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 1 906
    Points : 1 776
    Points
    1 776

    Par défaut Message pour encourager les auteurs de freewares...


  19. #39
    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

    Pour ma part, je dirais qu'il faut toujours avoir un programme prévu pour les tests dans lequel on va tester uniquement un bout de code pour le mettre au point au le debugger. Dans ce programme on va tester tous les cas possibles même si on sait qu'une valeur ne pourra pas arrivé on ne sais jamais un jour le code pourra être déplacé et l'erreur se produire.
    En plus, par ce système on s'affranchit des complications du code éventuel.

  20. #40
    Membre Expert
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    septembre 2003
    Messages
    1 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 1 906
    Points : 1 776
    Points
    1 776

    Par défaut

    Encore une :

    J'utilise Google tous les jours (GG pour les intimes), mais je viens d'apprendre qu'il existe une spécialisation CODE de notre ami GG :
    http://www.google.com/codesearch?hl=fr

    Dire, que je viens seulement de trouver ça grâce à notre camarade reisubar que je remercie très sincèrement.

    Mais je suis certain, que je ne dois pas être le seul, à découvrir cette mine d'or trop tardivement.

    @+

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
  •