|
Publicité ' | ||||||||||||||||||||||||
|
|
#101 |
|
Membre éclairé
![]() Développeur informatique Inscription : octobre 2006 Messages : 435 ![]() |
Pour les raccourcis clavier : http://olance.developpez.com/article...accourcis-ide/
__________________
Si vous êtes libre, choisissez le Logiciel Libre. |
|
|
00
|
|
|
#102 |
|
Membre Expert
![]() ![]() Étudiant Inscription : juin 2009 Messages : 936 ![]() |
Cool
Dommage que certains de ces raccourcis ne soient pas disponibles dans la version personnelle .... Je pense principalement au Ctrl+Shift+C qui a l'air super utile !! |
|
|
00
|
|
|
#103 |
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
![]() Ça faisait longtemps que je n'avais eu l'occasion, à chatouiller du code en rapport avec la gestion des exceptions. Hé oui en général, dès que l'on s'approche de près où de loin vers ces méthodes, c'est que ça devient chaud quelque part. J'ai donc ajouté du code aux bons endroits et testé... J'ai testé et re testé... mais sans jamais avoir un résultat positif ; comme si tout code ajouté ne servait rigoureusement à rien. J'ai consulté scrupuleusement des tutos, mais en vain, toujours le même résultat Au bout de plusieurs heures, si si... j'ai eu comme un flash ![]() Bon sang mais c'est bien sûr !!! Si ça vous arrive, pensez à moi. Heuuuuuu, j'oubliais : pensez à tester votre exe hors EDI hein. Enfin je suis sous D7, peut-être que les choses sont gérées désormais de façon différente sous d'autres versions de Delphi ? |
|
|
10
|
|
|
#104 |
![]() ![]() Inscription : septembre 2008 Messages : 2 884 ![]() |
Et si tu nous disais la différence de comportement constatée en et hors EDI...
|
|
|
00
|
|
|
#105 | ||
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
Citation:
Citation:
Autrement dit l'EDI garde la main et détecte le souci en amont du code soulevant l'exception. Donc le code en question ne peut être exécuté. Mais je suis toujours sous D7, ceci expliquant peut-être cela Tandis qu'hors EDI, l'exception est effectivement bien gérée, du nickel chrôme quoi
|
||
|
|
00
|
|
|
#106 |
|
Membre Expert
![]() Inscription : août 2002 Messages : 1 074 ![]() |
Dans l'EDI, la gestion d'exception est gérée en débugage, encore heureux.
Par contre, il lève l'exception et "arrête" le programme. Il faut acquitter l'exception puis continuer l'exécution.
__________________
Delphi 7 Windows XP/Vista |
|
|
00
|
|
|
#107 | |
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
Citation:
Sinon je ne pense pas que, l'autre fois, j'aurais passé des heures à tourner en rond. |
|
|
|
00
|
|
|
#108 |
|
Membre Expert
![]() ![]() |
Pour ceux qui ne connaisse pas il existe de merveilleux petit addon pour Delphi
Voila ceux que j'utilise : http://www.gexperts.org/ rajoute des fonctions très utile, celle que j'utilise le plus c'est "components to code" tu pose ton composants sur ta fiche tu le règle et "components to code" te donne le code pour le créer en runtime avec les réglages choisi, il reste plus qu'a supprimer le composants de la fiche. http://andy.jgknet.de/blog/ IDE Fix Pack qui existe pour Delphi 7, 2007, ... XE la liste est trop longue aller voir le site, c'est un boost pour le démarrage, la complétition de code, la compilation, la recherche, ... Je l'utilise depuis Delphi 2007 j'ai jamais eu de souci avec. Le site a d'autre outils sympa. vidéo de démarrage de mon Delphi avec JVCL, FastReport, DevExpress VCL. 9sec c'est un redémarrage en fait le 1er démarrage est légèrement plus long.
__________________
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas. |
|
10
|
|
|
#109 |
![]() ![]() Inscription : septembre 2008 Messages : 2 884 ![]() |
Le bloc d'exception n'est pas traité, soit. Mais qu'est-ce qui devrait générer l'exception ? Utilises-tu un FindWindow par exemple ?
Pourquoi FindWindow ? Simplement parce que la fiche en conception à toute les caractéristiques d'une fiche en exécution. On a l'impression que FindWindow devrait échoué parce que notre fenêtre n'est pas (encore) créée depuis notre exe, mais en fait FindWindow nous renvoi la fiche ouverte dans l'EDI... Il y a peut être d'autres cas, d'où le besoin dans savoir plus. Dire que le code n'est pas exécuté si lancé depui l'EDI n'est pas suffisant |
|
|
00
|
|
|
#110 | |||
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
Citation:
Voici en gros mon code qui chatouille et provoque... Code :
ouiouioui, intéressant aussi ton message merci, je vais éplucher ça. Par la même ça en aidera certainement plus d'un. |
|||
|
|
00
|
|
|
#111 | ||
|
Membre expérimenté
![]() PIERRE-LUC REAUDprogrammateur ( programmeur amateur ;) Inscription : septembre 2010 Messages : 278 ![]() |
Salut à tous,
Deux petits trucs utiles en conception comme en utilisation : 1) Lorsque l'Application doit afficher un nombre de lignes assez important dans des contrôles comme par exemple le TMemo ou le TListBox, la vitesse d'affichage dépend de la fonte choisie. Par exemple, MS Sans Serif s'affiche 4 fois plus vite que Times New Roman. 2) Heureusement, il n'est pas nécessaire de s'imposer certaines fontes plutôt que d'autres. Il suffit d'encadrer le code d'affichage par BeginUpdate et EndUpdate (contrôles utilisant TStrings). EXEMPLE : Code :
Valeurs relevées avec un test d'affichage de 400 lignes dans un TMemo (D7): - Times New Roman => 4s. - MS Sans Serif => 1s. - Avec BeginUpdate/EndUpdate (pour les deux fontes ci-dessus) => 0,05 s (!) |
||
|
|
00
|
|
|
#112 | ||||
|
Membre émérite
![]() ![]() Prof, développeur amateur vaguement éclairé... Inscription : mars 2004 Messages : 623 ![]() |
Avec Outils/Configurer les outils/Ajouter...
![]() ![]() (testé avec Delphi 2009 sous Win 7). Créeront deux outils ouvrant un explorateur de fichiers, le premier dans le répertoire du fichier sélectionné dans l'éditeur, le deuxième dans le répertoire cible du projet. Explo électronique, toujours pratique. Déterminer la taille d'un fichier en toutes circonstances, même s'il est ouvert dans une autre application : Code :
Résoudre le problème du warning "Char in SetOfChar" sous Delphi 2009 et +, en conservant un code universel : Se compile sous toutes les versions de Delphi, Ansi ou Unicode, et paf ! le warning. Code :
|
||||
|
20
|
|
|
#113 | ||
|
Membre émérite
![]() ![]() Prof, développeur amateur vaguement éclairé... Inscription : mars 2004 Messages : 623 ![]() |
Spécial Delphi XE2
Il n'y a pas de directive pour savoir si on est dans un "contexte VCL" ou dans un "contexte FMX", ce qui est logique puisque cette notion n'a pas de sens : en effet il est possible d'avoir au sein de la même application des fiches VCL et des fiches FMX (même si cela est déconseillé par Embarcadero). Par contre il est tout à fait possible, dans le cadre d'une procédure opérant sur un composant, ou d'une méthode dudit composant, de savoir si ce composant est sur une fiche FMX ou sur une fiche VCL : Les fiches VCL dérivent de VCL.Forms.TCustomForm Les fiches FMX dérivent de FMX.Forms.TCommonCustomForm; Je vous propose un squelette de code pour un composant non visuel qui aurait besoin de connaître le contexte dans lequel il est instancié, et qui pourrait se compiler sous n'importe quelle version de Delphi (et de Lazarus, avec quelques ajouts simples) : Code :
Il existe une fonction pour ça, elle est dans l'unité Fmx.Platform.Win : Code :
WinHandle := FmxHandleToHWND(lX.Handle); Enjoy! |
||
|
00
|
|
|
#114 |
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
Merci mon capitaine pour ces précieuses infos
![]() Mais... ne pas oublier ni dévier du sujet de ce thread... En effet, demande à un débutant ce qu'il pense de la réalisation de composants. Sans parler s'il fait le distinguo entre un "contexte VCL" et FMX". @+ |
|
|
00
|
|
|
#115 |
|
Membre émérite
![]() ![]() Prof, développeur amateur vaguement éclairé... Inscription : mars 2004 Messages : 623 ![]() |
Hum. Oui. Désolé...
Je m'étais focalisé sur le titre "nos petits trucs utiles..." en oubliant que c'était avant tout destiné aux débutants. Dont acte.
|
|
00
|
|
|
#116 | |
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
Citation:
En échange ; peux-tu nous donner stp un autre truc plus accessible aux débutants ? Merci pour eux
|
|
|
|
00
|
|
|
#117 |
|
Membre chevronné
![]() ![]() |
Raccourcis clavier : http://docwiki.embarcadero.com/RADSt...ar_d%C3%A9faut
On remarque au passage que la doc est disponible en ligne... (depuis la version D7) Sinon, je ne peux plus me passer de cnpack, entre autre pour la coloration des indentations... Pour illustrer :
|
|
00
|
|
|
#118 |
|
Membre Expert
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 933 ![]() |
Je viens d'essayer, et il y a plein de choses intéressantes
![]() MERCI |
|
|
00
|
|
|
#119 | |
|
Membre Expert
![]() ![]() Inscription : septembre 2003 Messages : 1 896 ![]() |
Citation:
|
|
|
|
00
|
|
|
#120 | ||||||
|
Membre émérite
![]() ![]() Prof, développeur amateur vaguement éclairé... Inscription : mars 2004 Messages : 623 ![]() |
Polymorphisme, static et virtual...
Je ne définirai pas ces termes, des tutoriels bien faits existent pour ça sur developpez.net. Ce que je propose là n'entre pas dans la catégorie des trucs utiles, mais plutôt des trucs "pédagogiques"... par contre, c'est bien pour les débutants. Pour la petite histoire, quand j'ai commencé à étudier la programmation objet il y a... enfin voilà, quoi, j'ai beaucoup ramé au début pour comprendre les notions de polymorphisme, d'héritage, tout ça. Avec le recul, j'ai compris que c'était lié au fait que par défaut, les méthodes de Delphi sont déclarées static, donc, par défaut, Delphi ne gère pas le polymorphisme. Ceci pour des raisons techniques de performance qui étaient sans doute valables sous un 486 cadencé à 33 MHz, mais qui ne sont peut-être plus vraiment d'actualité aujourd'hui. Je trouve que c'est quand on passe une classe ancêtre comme paramètre d'une fonction qu'on comprend de façon limpide ces notions. Voici une unité, à copier/coller et à sauvegarder sous le nom ExemplePolymorphismeU : Code :
Code :
Maintenant, modifiez le code de la première unité en : Code :
|
||||||
|
10
|
Copyright © 2000-2013 - www.developpez.com