Raw coding - Delphi/Pascal - Programmation
Marsh Posté le 28-01-2005 à 20:13:01
Marsh Posté le 28-01-2005 à 20:52:49
Tout à fait. D'où l'intérêt de demander de l'aide sur un forum
Marsh Posté le 28-01-2005 à 21:16:29
bon je voulais pas, mais je te sors ce site :
http://win32assembly.online.fr/
c'est un site qui traite de la programmation Win32 en assembleur. meme si le langage est différent, les fonctions et la méthodologie sont les mêmes
edit: c'est de mieux en mieux les liens
Marsh Posté le 29-01-2005 à 02:30:02
Merci beaucoup Harkonnen de proposer ce lien. Si tu as déjà pratiqué ce genre de truc, j'aimerai te montrer le petit bout de code que j'ai fait pour récupérer du texte dans une zone de texte sur un clique de bouton. Tu me dira si je procède bien comme il faut ;-)
En tout cas, merci beaucoup pour tes réponses même si j'aurai pu me démerder d'une simple recherche googlé mais je persiste à croire que l'entraide sur des forums reste l'idéal ;-)
bonui.
Marsh Posté le 29-01-2005 à 12:13:42
C'est si grave que l'exe fasse 400 Ko ?
Tu peux jeter un coup d'il à ceci : http://bonanzas.rinet.ru/
Marsh Posté le 29-01-2005 à 12:51:40
inekman a écrit : Merci beaucoup Harkonnen de proposer ce lien. Si tu as déjà pratiqué ce genre de truc, j'aimerai te montrer le petit bout de code que j'ai fait pour récupérer du texte dans une zone de texte sur un clique de bouton. Tu me dira si je procède bien comme il faut ;-) |
fais péter le code
Marsh Posté le 29-01-2005 à 13:23:24
Non non antp, c'est pas si grave, mais j'ai envi d'apprendre de nouveaux trucs, changer complètement le paysage de Delphi en découvrant une autre approche de la programmation ;-)
Harko, voilà ce que j'ai réussi à faire seul Mais y'a un truc qui me plait pas, c'est le tableau de char. On peut pas utiliser simplement un string ?
Code :
|
Marsh Posté le 29-01-2005 à 16:52:48
inekman a écrit : Non non antp, c'est pas si grave, mais j'ai envi d'apprendre de nouveaux trucs, changer complètement le paysage de Delphi en découvrant une autre approche de la programmation ;-) |
ça a pas l'air mal, juste un petit mot sur la différence entre SendMessage() et PostMessage() :
- SendMessage() est bloquant, c'est à dire qu'il agit comme un appel de fonction. en d'autres termes, l'exécution de ton programme se bloque, et ne reprend qu'une fois le message envoyé traité par la pompe à message.
- PostMessage() est non bloquant. Il poste le message dans la file d'attente, et se termine aussitot, sans attendre le traitement du message. A noter que l'emploi de cette fonction ne garantit pas le traitement du message par la pompe à messages
Marsh Posté le 29-01-2005 à 17:35:42
Yes merci pour l'info Harkonnen ;-)
Je viens de réussir à écrire le contenu de 2 zones de texte similaires dans une structure que j'ai ensuite enregistré dans un fichier grâce à CreateFile. J'ai même réussi à ouvrir le fichier créé et charger le contenu dans la structure et le réafficher à l'écran ! Chui trop content, ça pète
J'ai fait d'autre test tout à l'heure à propos de charger un bitmap en ressource sur la surface de la fenêtre, mais y'a un truc pas po du tout c'est que les label sont dans un cadre gris tout pourri. Dans Delphi on peut cocher la case "Transparent" pour que le fond du label soit transparent mais avec les api je sais pas quoi utiliser, t'as une idée ?
Merci pour tout Harko et Antp, ça me fait plaisir
Marsh Posté le 29-01-2005 à 18:59:13
inekman a écrit : |
C'est un peu plus complexe.... Je sais pas si ce que je vais t'expliquer marchera dans Delphi, vu que le controle utilisé est un TLabel, et non un Static, mais bon...
En Win32, un label est appelé un "Static". En fait, le TLabel de Delphi encapsule le controle "static" de Win32.
Lorsqu'un static est sur le point d'être dessiné par sa fenêtre mère (celle qui contient le static), il envoie un message WM_CTLCOLORSTATIC à ladite fenêtre. Pour spécifier le texte et la couleur de fond du static, la fenêtre doit répondre à ce message. Elle pourra ainsi utiliser le device context du static pour modifier le texte ou la couleur de fond.
Ce message contient dans ses paramètres wParam et lParam, respectivement le handle du device context du static, et le handle du static lui même.
Ce qu'il faut donc faire : dans la pompe à messages de la fenêtre mère, réagir au message WM_CTLCOLORSTATIC, récupérer le device context via wParam, puis utiliser les fonctions de GDI pour modifier l'apparence du static.
En l'occurence ici, on utilisera la fonction SetBkMode() pour indiquer que le static doit être transparent (en C) :
Code :
|
Marsh Posté le 29-01-2005 à 19:48:38
ah ben j'avais trouvé cet api dans MSDN juste après avoir posté mon message mais j'ai pas réussi à l'utiliser. Je l'avais placé dans WM_PAINT :-)
D'ailleurs, j'utilise pas un TLabel pour mon étiquette car je créé la fiche par DialogBoxParam directement depuis un fichier de ressource que voici :
Code :
|
C'est un peu le bazar là dedans mais bon, je tatonne encore :-p
Merci pour l'astuce Harko, je prend note.
Marsh Posté le 29-01-2005 à 20:25:23
Harkonnen a écrit : En fait, le TLabel de Delphi encapsule le controle "static" de Win32. |
Non, le TLabel est juste peint sur son parent (il n'a pas de handle)
C'est le TStaticLabel (si ma mémoire est bonne) qui encapsule le Static de Win32.
Marsh Posté le 29-01-2005 à 22:45:29
antp a écrit : Non, le TLabel est juste peint sur son parent (il n'a pas de handle) |
ok, au temps pour moi
Marsh Posté le 29-01-2005 à 22:48:36
Tant qu'on est dans une phase de correction, on dit "autant pour moi"
voilou, et au fait Harko, Big merci pour le bidule de transparence des Static, cha marche :-D Inek is happy
Marsh Posté le 29-01-2005 à 22:51:29
inekman a écrit : Tant qu'on est dans une phase de correction, on dit "autant pour moi" |
euh non... moi aussi je pensais ça, mais on m'a prouvé par a+b que j'avais tort
http://www.academie-francaise.fr/l [...] l#au_temps
inekman a écrit : |
Marsh Posté le 29-01-2005 à 23:30:30
inekman a écrit : Tant qu'on est dans une phase de correction, on dit "autant pour moi" |
Pas dans le même contexte
- je veux 2 BigMac et 3 grandes frites
- autant pour moi, j'ai aussi très faim
Marsh Posté le 29-01-2005 à 23:33:06
antp a écrit : Pas dans le même contexte |
t'as pas les boules ? je viens de résoudre un topic Delphi
ton hégémonie sur cette cat touche à sa fin, la relève est là
Marsh Posté le 30-01-2005 à 09:27:37
Harkonnen a écrit : euh non... moi aussi je pensais ça, mais on m'a prouvé par a+b que j'avais tort |
Le délire j'ai appris un autre truc didon là
Et tu viens de me donner envie de te (ou antp ) poser une nouvelle question
Dans Delphi, quand on code avec la VCL, on peut changer la police (famille, couleur, taille) de n'importe quelle composant mais là une fois que j'ai défini "FONT 8 VERDANA", tous les compo ont la même tête et je me demande c'est où qu'on peut changer individuellement la police des compo
je me demande si je dois pas regarder du côté de CreateFont mais bon, c'est très hasardeux comme recherche
Marsh Posté le 28-01-2005 à 16:54:14
Salut les amis,
...mais bon, pour moi qui ai fait du Delphi depuis bientôt 3 ans c'est inbuvable
voilà quelques semaines maintenant que j'essaye de faire des tout petits programme avec Delphi. A part virer les fichiers requis inclue dans l'exécutable je n'avais trouvé aucun moyen de réduire considérablement la taille des exe généré en Delphi. Par contre c'est relou parce qu'à l'exécution il demande tout plein de fichier et ça le fait pas.
J'ai trouvé quelques programmes fait en Delphi uniquement à l'aide de l'API Win32 et on appelle ça "Raw coding" ou "Non-VCL"
Connaissez-vous des sites (FR ou UK) où je peux apprendre "facilement" à coder à l'aide de l'api Win32 exclusivement, sans la VCL
Merki