PROGRAMMATION (GUI) PREMIERE LESSON

Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006 - 28 déc. 2003 à 16:59
cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 - 4 janv. 2004 à 22:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/19010-programmation-gui-premiere-lesson

cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
4 janv. 2004 à 22:46
Bon, je sais, ce commentaire n'a rien à faire là, mais après tout, ce ne sera pas le seul...

Voilà: à chaque fois qu'il y a comme ici des commentaires dont la longueur dépasse la taille de la description de l'auteur (dans la colonne de gauche avec la photo), il faut un temps beaucoup plus long pour déterminer les transitions entre auteurs, qui a écrit quoi... encore plus s'ils n'ont pas mis de signature en bas de leur article. N'y aurait-il pas un moyen de rajoutter un trait horizontal entre les différents commentaires qui se suivent dans le script ASP?

C'est peut-être abuser mais dans tous les cas, un grand bravo (on ne le dira jamais assez) au designer dont on voit le nom en bas à gauche de la page. Le look du site est nickel, un peu comme Delphi: ergonomique et efficace. En plus le site n'est ni laid ni n'agresse les yeux, plutôt rare! Même si il y a plus ergonomique (mais moins eficace, comme VB) et plus efficace comme nous le fait remarquer cet intégriste farceur qui court-circuite l'environnement Delphi standard. Malheureusement, dans ce cas je ne vois plus l'intérêt d'utiliser Delphi...

Si la leçon suivante que semble nous promettre Delphirafik inclut des utilitaires qui permettent de faire tout ce qu'il est possible de faire dans l'environnement Delphi, et aussi rapidement, et donc avec une taille et des performances améliorées, je suis prêt à tout supporter, de "Dieu est grand et Jésus est son prophète" à "Bouddah va t'apporter la sérénité" dans le code, voire même "buvez coca-cola", après tout ça ne fera qu'un autre Delphi amélioré et financé par la pub, contrairement à l'officiel qui est (presque) payant <8=DX
cs_clandestino Messages postés 16 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 11 novembre 2004
3 janv. 2004 à 15:50
Vire les reférences à des .res vu que ton code n'en utilise pas :
je parle de la ligne
{$R *.RES} qui devrait d'ailleurs se trouver declarée juste après les uses mais tu as de la chance, dcc32 est tolérent....

Tu déclares un handleapp que tu n'utilises pas... il est sans doute destiné à servir de handle à l'application, tu devrais donc l'utiliser dans ta création de fenêtre ainsi :
handleapp := createwindow(wclass.lpszClassName,'r@fik is back again on delphifr [by focuse]',ws_visible or ws_overlappedwindow,210,210,350,150,0,0,hinstance,nil)

et meme remplacer ton wclass.lpzClassName dans cette expression par sa valeur que tu as déjà définie un peu plus haut ; je veux dire ici 'rafik'...

Tu commets aussi l'erreur de ne pas définir quel handle windowproc utilise : en l'occurence, et une fois que tu l'auras défini, handleapp...
il faudra ecrire :
function windowproc(handleapp:hwnd,msg,wparam,lparam:integer):integer;stdcall;

Tu définis ta classe en deux morceaux (une fois les commentaires enlevés)

wclass.hInstance:=hinstance;
wclass.lpszClassName:='rafik';
wclass.lpfnWndProc:=@windowproc;
with wclass do

begin


hbrBackground:=1;
hIcon:=loadicon(hinstance,'mainicon');
hCursor:=loadcursor(0,idc_arrow);


end;
il est plus correct de la définir ainsi :

{ Enregistrement de sa classe }

// déclarer Winclass : TWndClassA et Inst: HINST dans les variables
// en début d'application

begin
Inst := hInstance;
with WinClass do
begin
style := CS_CLASSDC or CS_PARENTDC;
lpfnWndProc := @WindowProc;
hInstance := Inst;
hbrBackground := color_btnface + 1;
lpszClassname := 'rafic';
hIcon := LoadIcon (inst,'MAINICON');
hCursor := LoadCursor(0, IDC_ARROW);
end; { du with }

RegisterClass(WinClass);

Toutes ces maladresses ajoutées aux commentaires en anglais posent la question de savoir si tu en est vraiment l'auteur ou si ce n'est que la récupération modifiée d'une source écrite par un autre.......

Quoi qu'il en soit, le travail à partir d'apis windows permet de fabriquer des executables minuscules... Ta source peut servir de premier pas pour ceux qui cherchent à emprunter ce chemin...

Happy raw delphi coding...

Clandestino
Debiars Messages postés 285 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 11 février 2018
30 déc. 2003 à 17:55
Intéressé, j'ai téléchargé ce zip...
Trois remarques :
1) je ne vois ce que Allah, avec tout le respect que je lui dois, viens faire
en programmation...
2) j'ai 33 ans de programmation derrière moi dont 22 en tant que professionnel,
et n'ai jamais suivi un seul cours d'anglais, alors... commençons par soigner
notre français : nous utilisons des accents et anglais s'écrit avec un "a",
contrairement à english.
3) "r@fik is back again on delphifr"!!! ...on se la pète un peu, non?

Bref, je n'ai pa eu envie d'aller plus loin, dommage peut-être.
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
30 déc. 2003 à 14:18
On peut aussi utiliser les avantages d'un outil RAD comme Delphi en les combinant avec le logiciel DFM2DPR, assurant la transformation d'un fichier DFM en son équivalent DPR.
Ce programme est disponible sur le site de Borland à l'adresse http://homepages.borland.com/torry/tools/code/codegen/dfm2dpr.zip

C'est un bon moyen pour apprendre la programmation en utilisant les API à 100% (si, y en a qui aiment ça !) et comment passer de l'un à l'autre avec un minimum d'efforts et de temps.
cs_ZED Messages postés 57 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 16 décembre 2005
29 déc. 2003 à 16:05
Laissons à part ce jargon religieux, et intéressons-nous au source lui même...

Je ne vais pas sans rappeler que Delphi est un RAD, ce qui signifie qu'il est dédié au développement rapide d'application.

Le fait de ne pas utiliser la VCL (Visual Component Library) n'a rien d'extraordinaire, ça revient à enregistrer les classes nous même, et ensuite de "travailler" avec les handles qu'on a récupéré... Du travail en trop.... C'est le cas lorsqu'on veut coder un programme microscopique en C (sur un bon compilateur C et non pas C++).

Je ne nie pas que les programmes qui utilisent directement les APIs (Application Programming Interface) sont du point de vue théorique les plus performant en terme de vitesse d'exécution. Mais sont relativement difficiles à coder (Ca nécessite un bon programmeur qui sait très bien ce qu'il fait). Cela met en question toute la méthode RAD. Ce que je me demande moi, c'est :
'Pourquoi utiliser un compilateur pascal objet développé pour un environnement RAD (delphi en occurrence), qui ajoute tellement de code mort dans l'EXE, pour réaliser une interface GUI Windows?'
Je n'en suis que sur que le même code en C (compilé sous LCC-Win32 par exemple) donnera un exécutable de taille bcp plus réduite. Et ne parlons pas des chaînes à zéro terminales et la rapidité de leurs traitements...

Bref... Delphi est un RAD, il faut le voir comme un RAD, créer des composants perso, et pourquoi pas ne pas bricoler n peu d'API lorsqu'on le voit plus rapide du point de vue coût de développement, fiabilité... etc.

Ca reste une question de chois, ou de philosophie.
Le compilateur ne va jamais te dire "Je n'ai jamais été prévu pour ce genre d'applications"...
Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006
28 déc. 2003 à 17:17
Je voulais pas en parler car chacun à ses propres convictions religieuses, mais franchement on ne devrait pas mettre ce genre de chose dans des fichiers rendu public. On s'en bat les couilles et ça ne regarde que toi.
Don0Choa Messages postés 104 Date d'inscription dimanche 29 octobre 2000 Statut Membre Dernière intervention 12 décembre 2005
28 déc. 2003 à 17:12
de bon conseil?
" // IL N'YA QU'UN SEUL DIEU ALLAH ET MOHAMAD EST SON DERNIER PROPHET"

Je sais aps pour vous mais moi je le bafferais bien celui la...
Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006
28 déc. 2003 à 16:59
Tu donne de bon conseil dans ton code, notamment concernant l'apprentissage de la langue anglaise...faudrait t'y mettre plus sérieusement ;-)