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

 Delphi Discussion :

Nos petits trucs utiles de développeurs


Sujet :

Delphi

  1. #41
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Manque de bol je viens d'essayer le Ctrl-C sur un ShowMessage, et ensuite, lors du Ctrl-V, le presse papier ne me renvoie que ce qui s'y trouvait a préalable et non le contenu du ShowMessage. Donc la manip ne marche pas sous Delphi-5 : Dommage.
    Une petite remarque après avoir découvert cette simplissime géniale astuce, Chez moi (Delphi 2005 version gratuite developpez.com), la commande suivante :
    ShowMessage ('ceci est un message');
    entraine (c'est la moindre des choses) l'affichage de la boite correspondante ; un Ctrl C dessus entraine dans Notepad lors du CTRL V ceci :

    ---------------------------
    Project1
    ---------------------------
    ceci est un message
    ---------------------------
    OK
    ---------------------------

    à noter que Delphi n'a rien à voir là dedans, puisque essayant avec un message système de Windows, j'ai obtenu ceci :

    ---------------------------
    Avertissement
    ---------------------------
    Les modifications apportées à ce dossier affecteront tous les utilisateurs utilisant cet ordinateur. Voulez-vous continuer*?
    ---------------------------
    Oui Non
    ---------------------------

    Et dire que personne ne savait ça !!!

  2. #42
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    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 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bounjour,

    Manque de bol je viens d'essayer le Ctrl-C sur un ShowMessage, et ensuite, lors du Ctrl-V, le presse papier ne me renvoie que ce qui s'y trouvait a préalable et non le contenu du ShowMessage. Donc la manip ne marche pas sous Delphi-5 : Dommage.
    ... suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    procedure SMS(s : string);
    begin     clipboard.AsText:=s; Showmessage(s); end;
    ... avec clipbrd dans le uses.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #43
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

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

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    salut

    on codant et parfois pour des tests on est amenés à mettre en commentaire certain blocs de code, il devient un peut pénible déactivé et de réactivé les bloques vu qu'il faut chercher les accolade ouvrante et fermante correspondante.

    on rajoutant deux barres oblique avant les accolades ouvrante et fermante en peut aisément activé et désactivé le bloque de code en supprimant les deux barre avant l'accolade ouvrante.

    bloque désactivé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
    for I := 0 to List.Count - 1 do
     begin
        List.add('ligne '+IntToStr(I));
     end;
       //}
    bloque activé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //{
    for I := 0 to List.Count - 1 do
     begin
        List.add('ligne '+IntToStr(I));
     end;
       //}
    a+

  4. #44
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut
    Salut à tous,

    Pour décaler un bout de code vers la droite ou vers la gauche, moi je fais :

    Shift+Ctrl+I : Décale le code sélectionné vers la droite de 2 caractères

    Shift+Ctrl+U : Décale le code sélectionné vers la gauche de 2 caractères

  5. #45
    Expert éminent sénior

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Points : 10 152
    Points
    10 152
    Par défaut
    Pour ceux qui se demandent où sont passés les messages sur l'unité graphique qui travaille en coordonnées mathématiques, ils sont dans un nouveau thread :
    Un bitmap ou canvas qui travaille directement en coordonnées mathématiques
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  6. #46
    Aos
    Aos est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Points : 187
    Points
    187
    Par défaut
    Quand je savais pas encore utiliser de debuggeur, je procédais ainsi :

    Je créais une variable globale :

    Et dans mon code, a des endroits sensibles, je mettais genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if DEBUG_MODE then
      ShowMessage(blablabla);
    blablabla represente soit des variables, soit "ok" ect... ça depend de la situation.
    Puis avant de recompiler le programme, je choisissais de mettre DEBUG_MODE à false ou à true.

  7. #47
    Inactif  
    Inscrit en
    Novembre 2008
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 255
    Points : 264
    Points
    264
    Par défaut
    j'utilise GExperts, ou sa fonction "Replace Component" et très utilile. tu désigne le composant à changer et par quoi le remplacer et op c'est fais en qlq seconde.

    http://www.gexperts.org

  8. #48
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Je cherchais comment obtenir une GroupBox, mais sans le caption du haut à gauche, non, je cherchais comment obtenir un rectangle aux quatre côtés bien nets tout simplement.

    Je pensais avoir trouvé, en ajoutant en caption, des signes "-" comme le principe des PopUpMenus, afin de remplir l'espace du caption.

    Mais rien à faire, même à l'aide de caractères tirets.

    A la suite d'un fausse manipulation, j'ai effacé le caption et... mission accomplie ; voici une belle GroupBox aux quatre lignes sans rien d'autre

    Bête comme choux non ?

    Pour vous, ce compo supplémentaire pour le prix d'un seul

    @+

  9. #49
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Ne pas oublier le Code Template:
    La flemme de taper la structure d'une boucle "for" encore et encore?
    Tapez forb dans l'IDE puis CTRL + J
    ...et hop:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for  :=  to  do
    begin
     
    end;
    Voyez Delphi|menu Outils|Options editeur|Code Insight pour trouver d'autres raccourcis et personalliser vos snippets.

    Merci a tous pour ces contributions!

    Particulierement a aityahia pour ces snippets auto-activants
    et Aos pour son Debug_Mode

  10. #50
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut Vista, petit canailloux va !
    Bonjour

    Un truc qui m'a fait tourner en bourrique pendant un certain temps.

    Vista le canailloux...

    Si jamais vous changez l'icône de votre exe, ne cherchez pas trop ailleurs quelle est la cause de la non prise en compte de cette nouvelle icône.

    Quoique c'est à vrai dire bien plus gratiné

    Si vous changez d'icône sur votre application, seule la première taille d'icône, dans votre dossier d'application Delphi, sera visible.

    Sur les trois autres tailles ; seulement l'ancienne icône sera visible.

    Ce n'est de deux ou trois jours ensuite, allez savoir pourquoi... ; tout sera rentré dans l'ordre, et votre nouvelle icône enfin visible partout, sur les quatre tailles Windows Vista.

    Encore une petite chose, heuuu pardon si si, c'est possible d'admirer cette nouvelle icône la première fois ; à condition de renommer le dossier de cette appplication Delphi, ou bien de vous amusez de créer un nouveau dossier, et de déposer cet exe à l'intérieur.

    Voilà qui j'espère, vous fera gagner du temps en recherches. Lorsque par la force des choses, vis à vis de vos applications tournant hors de chez vous, et donc sur un OS différent ; Vista pour ne pas le nommer.

    Dingo non ?

    @+

  11. #51
    Membre confirmé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Points : 474
    Points
    474
    Par défaut positionner & dimentionner les compos
    Salut tout le monde
    Un petit truc que je trouve très pratique pour déplacer et positionner avec précision les compos sur la form
    CTRL + flèche direction pour déplacer le compo
    SHIFT + bas pour augmenter la height du compo
    SHIFT + haut pour diminuer la height du compo
    SHIFT + droite pour augmenter la width du compo
    SHIFT + gauche pour diminuer la width du compo
    tout ça pixel par pixel
    Très utile aussi pour modifier la taille/position d'un compo en arrière plan, inaccessible à la souris
    Choisir, c'est renoncer...

  12. #52
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Merci pour vos astuces^^
    La mienne (de super débutant^^), je sais pas si ça a été dis, mais quand on met du code après le end de fin de programme Delphi 5 n'en tient pas compte, il fait comme si ça n'existait pas, et ça me permet de stocker du code au lieu de le copier dans un fichier texte et le ramener après.

    Ha oui aussi une bonne astuce : lire les astuces d'un forum delphi que j'aime bien : Phidels.com (lien direct vers les astuces)

    http://www.phidels.com/php/index.php...07e726cfadcde5
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  13. #53
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    pour une image de fond, mieux la chargé dynamiquement, que de l'insérer dans l'exe, surtout dans les phases de développement-->compilation et exécution rapide, en plus si par hasard on veux changer l'image, comme il fait windows
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  14. #54
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    598
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 598
    Points : 628
    Points
    628
    Par défaut
    Par insérer dans l'exe tu veux dire dans un TImage par exemple ?
    Sinon merci pour l'astuce^^
    Cliquez ici et reprenez le pouvoir !
    A bas IE !, Google, et le pistage du net, testons DuckDuckGo.com
    Lords Of The Realm II Download : Lords of the realm 2
    Infos en anglais :Ici

  15. #55
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    oui,
    pour les image des buttons, ou tout autre composant, mieux utliser une Timageliste, et affecter les images pas code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
              ImageList1.GetBitmap(1,BitBtn1.Glyph);// ici 1 c'est le n° de 1image dans Imagelist
    si vous utlisé Tadoconnection, assurez-vous que connected=False,avant l'execution et surtout avant la férmeture de delphi et même sera mieux si on efface le connectioenstring
    pour IBdatabase, mettez AllowStreamedConnected à false
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  16. #56
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    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) ...
    pour moi, je préfére ne pas utlisé les sleep, surtout dans une boucle d'attent,
    pour toi shailetroll, tu dis que tu
    Citation Envoyé par ShaiLeTroll Voir le message
    tient j'ai adapté (simplifié) une fonction que j'avais développé pour l'attente du remplissage asynchrone du HTMLBody d'un WebBrowser ...
    ?? asyncrone, et sleep, bizar
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  17. #57
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par edam Voir le message
    ?? asyncrone, et sleep, bizar
    Ben non c'est normal. Le TWebBrowser encapsule en fait l'activeX d'IE qui est multi-threadé.
    Ca te paraît peut-être bizarre, mais il est justement préférable d'endormir le thread principal, pour éviter qu'il ne consomme les ressources CPU dont les threads secondaires du TWebBrowser ont besoin pour effectuer le traitement dont tu attends la fin de l'exécution... (même si ici, on attend en fait que le site web ait répondu...)

    D'une façon générale, lorsqu'on n'a rien à faire dans une appli, il faut le dire à l'OS d'une façon ou d'une autre pour qu'il puisse attribuer le CPU aux autres processus qui en ont besoin.
    Selon les besoins, on fera un WaitMessage, WaitForSingleObject ou si on n'attend rien de particulier : Sleep...

  18. #58
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par Franck SORIANO Voir le message
    Ben non c'est normal. Le TWebBrowser encapsule en fait l'activeX d'IE qui est multi-threadé.
    Ca te paraît peut-être bizarre, mais il est justement préférable d'endormir le thread principal, pour éviter qu'il ne consomme les ressources CPU dont les threads secondaires du TWebBrowser ont besoin pour effectuer le traitement dont tu attends la fin de l'exécution... (même si ici, on attend en fait que le site web ait répondu...)
    sa je l'ai bien compris, mais la boucle principale peut faire l'affaire,non?? ou même comme tu as dis avec WaitMessage, WaitForSingleObjec
    bien sûr si ce activix d'IE peut envoyer des evénement(onterminate) par example
    mais avec sleep dans une boucle, c'est déjà il consomme du temps de CPU!!!?? , c'est ce que je veux dire,
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  19. #59
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Un petit mot sur la licence GPL.

    Cette dernière est absolument contagieuse !

    J'avais lu ça très étonné sur un livre de Paul Toth et Olivier Dahan.

    Bref, si par exemple vous utilisez un tout petit morceau de code récupéré sur un programme sous licence GPL ; votre programme devient automatiquement, que ça vous plaise ou non, à son tour, sous licence GPL.

    Idem, si vous utilisez une DLL sous cette licence pour votre programme ; devinez...

    @+

  20. #60
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Encore une petite

    Ce petit canailloux de Vista

    L'autre fois j'ai bien passé 1/2 heure pour trouver pour quelle raison, lors de tests, je n'étais même plus fichu de créer un tout bête fichier INI.

    Sur le code ci-dessous, Vista refuse de façon silencieuse l'écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    FileIni := TIniFile.Create('test.ini');
    ...
    Par contre, en affectant un dossier bien ciblé, là tout est autrement, et la création est effective :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    FileIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+'test.ini');
    ...
    Par contre, je n'ai pas testé en neutralisant l'UAC de Vista, mais je subodore...

    @+

Discussions similaires

  1. Thread "Nos petits trucs utiles de.." cadenassé
    Par Droïde Système7 dans le forum Débuter
    Réponses: 8
    Dernier message: 22/02/2012, 11h45
  2. Petit truc utile que j'ai découvert $.each
    Par SpaceFrog dans le forum jQuery
    Réponses: 12
    Dernier message: 27/08/2010, 02h12
  3. Petit truc tout simple que je comprend pas
    Par Olaf MENJI dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/11/2005, 16h56

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