Deutsch   English   Français   Italiano  
<6fOc69DcI-wyaSazWqGcBkZWkV4@jntp>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!pasdenom.info!from-devjntp
Message-ID: <6fOc69DcI-wyaSazWqGcBkZWkV4@jntp>
JNTP-Route: nemoweb.net
JNTP-DataType: Article
Subject: Re: =?UTF-8?Q?D=C3=A9fauts=20de=20conception=20d=27applications=20GEM?=
References: <qtSFf82IhkGH6IQ3C0dOI1Ns42w@jntp> <vifp37$1tahj$1@dont-email.me>
Newsgroups: fr.comp.sys.atari
JNTP-HashClient: JZbFMKhAdR_ACCQ6a6WEC5mtBsM
JNTP-ThreadID: 6XVeTTjh3XjCr8x6pNh2AKKvqZQ
JNTP-Uri: http://nemoweb.net/?DataID=6fOc69DcI-wyaSazWqGcBkZWkV4@jntp
User-Agent: Nemo/1.0
JNTP-OriginServer: nemoweb.net
Date: Sat, 30 Nov 24 22:40:53 +0000
Organization: Nemoweb
JNTP-Browser: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
Injection-Info: nemoweb.net; posting-host="6f838eb911e63cbc072939e8c104e88513e2fc5b"; logging-data="2024-11-30T22:40:53Z/9124328"; posting-account="69@nemoweb.net"; mail-complaints-to="julien.arlandis@gmail.com"
JNTP-ProtocolVersion: 0.21.1
JNTP-Server: PhpNemoServer/0.94.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-JNTP-JsonNewsGateway: 0.96
From: OL <ol.google@lutece.net>
Bytes: 5799
Lines: 80

Le 30/11/2024 à 20:29, Pierre TON-THAT a écrit :
> Plop,
> 
> Le 30/11/2024 à 19:05, OL a écrit :
>> Depuis le temps que je peste contre des programmes qui font des choses 
>> très étranges au niveau de l'AES, je me dis plutôt que de juste trouver 
>> des solutions dans MyAES, je pourrais aussi consigner tous les trucs 
>> inutiles ou foireux que je peux voir dans un document.
> 
>> Typiquement un truc comme les applications qui font un 
>> form_dial(FMD_START) mais ne font jamais un form_dial(FMD_FINISH)
> 
> Heu... Je sens que va falloir faire une revue totale de mon code et 
> updater toute mes productions. Merci pour le taf supplémentaire :)
> 
> Sinon, le form_dial(FMD_FINISH) tout seul, c'est bien pour provoquer un 
> redraw d'une partie de l'écran (le plus souvent au startup, quand on 
> installe le menu avec) sans avoir à le faire par Tube GEM.
> 
> D'une manière générale, quand on ouvre/requiert une ressource, on la 
> ferme/libère. Si c'est pour poukaver des logiciels non compatibles sur 
> les AES récents, alors qu'ils tournaient bien sur l'AES de l'époque, 
> autant que ce soit sur des trucs maintenus, sinon c'est un peu dénigrer 
> le travail de gens absents.
> 
> Tchuss,

L'idée c'est pour ceux qui programment encore, je ne vois pas trop 
l'intérêt pour les anciens softs, de toute façon la plupart des trucs 
pas super clean (on ne savait pas, la doc est souvent interprétable à 
coup d'essai je pense à un truc de dingue comme la gestion des clicks 
souris, c'est un truc de barjot pour celui qui refait un AES et pourtant 
sur le papier c'est super simple mais quand on fait tourner les softs pas 
un ne fait pareil, tu as toujours quelques récalcitrants alors on bricole 
et on rebricole). Dans des softs pourtant très bien écrits et débuggué 
comme Thing tu trouves parfois des dérapages, non pas que cela ne marche 
pas et soit faux mais tu ne comprends pas pourquoi l'interface est lente 
ou marche de manière maladroite et là tu as le code et tu te dis mais 
pourquoi ils ont fait comme cela c'est ultra compliqué alors tu retires 
systématiquement les trucs qui ne servent à rien et tout à coup tout 
devient fluide, pas seulement sur les aes modernes mais sur un bon vieux 
TOS aussi, dans Thing dans les modifications c'est à 80% du code retiré 
dans les modifications faites. Remarques quand je code MyAES aujourd'hui 
souvent c'est plus de la simplification que de l'ajout et dieu sait à 
quel point il y aurait encore à faire, pour transformer un truc pataud en 
un truc efficace.

form_dial(FMD_FINISH) peut être utilisé seul pour forcer le redraw, il 
n'y a pas de soucis là dedans, je l'utilise beaucoup en interne, 
form_dial(FMD_START) c'est une histoire complètement stupide, selon la 
doucumentation originale d'Atari : "Reserves screen space for the dialog 
box" Il y a donc la notion de réservation mémoire donc si on ne fait pas 
FMD_FINISH il y a un bloc qui est oublié quelque part, sauf qu'en fait le 
TOS ne fait strictement rien! donc form_dial(FMD_START) sans 
form_dial(FMD_FINISH) n'est pas franchement une erreur sauf par rapport à 
la documentation! Mais presque tous les programmes anciens qui n'utilisent 
pas les fenêtres pour dessiner leur boite de dialogue (ce qui n'est pas 
cool du tout sur les systèmes AES qui n'ont aucun moyen de faire de 
l'offscreen) le font (pour rien!) , alors si on réfléchi un peu cela 
peut être utile pour aider l'AES moderne plutôt que de tout bloquer 
comme sur cet exemple video de PureC : 
http://myaes.lutece.net/images/form_dial.mp4 
Mais si un soft oublie derrière de faire FMD_FINISH alors il peut se 
passer des truc très bizarre à l'écran!

Dans les trucs un peu bizarre des softs:
Beaucoup font un wind_update (BEGUPDATE ou BEGMCTRL) avant d'appeler le 
sélecteur de fichier, a quoi cela sert mystère pour moi.
Erreur de format pour form_alert, il n'y a pas à dire l'AES est 
tolérant!
Faire in wind_update(BEGUPDATE) avant d'appeler une routine event_xxx bof 
pas très sympa comme façon de faire
objc_draw() avec un largeur d'objet de 0! Et bien l'AES redessine tout!
Il y en a qui oublient de faire un appl_exit et d'autres qui appellent 
l'AES sans appl_init (bon souvent c'est pour des choses qui sont assez 
basiques comme graf_handle mais quand même c'est un peu ennuyant)

Dans les trucs cocasse de l'AES:
G_STRING se fout du de la largeur et hauteur de son objet et dépasse sans 
se poser de question