FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Fonctionnement du caret_x_position(N)
par Jack Hier à 20:36

» Problèmes en cours.
par Jack Hier à 20:31

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 19:55

» Exemple d'une nouvelle version d'un GRID
par Minibug Hier à 17:36

» Comment faire fonctionner \qj en RTF ?
par jjn4 Mer 12 Déc 2018 - 19:25

» Mais où est donc passé Klaus ?!
par Jicehel Mer 12 Déc 2018 - 13:38

» Problème avec SaveStringList.
par Klaus Mer 12 Déc 2018 - 12:14

» Je suis de retour !
par Klaus Mer 12 Déc 2018 - 12:10

» Connexion au forum
par mindstorm Mer 5 Déc 2018 - 19:09

» Version instantanée V 0.9.29i5 du 17/11/2018
par silverman Ven 30 Nov 2018 - 10:37

» imprimer avec Print.dll
par JL35 Jeu 29 Nov 2018 - 21:33

» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
par Minibug Dim 25 Nov 2018 - 15:37

» Impression de documents
par JL35 Ven 23 Nov 2018 - 19:45

» Logiciel de soutien scolaire.
par Marc Jeu 22 Nov 2018 - 20:51

» Logiciel de soutien en langues.
par Marc Jeu 22 Nov 2018 - 19:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Container_begin

Aller en bas 
AuteurMessage
Navigateur

avatar

Nombre de messages : 41
Age : 70
Localisation : Les Clayes-sous-bois 78340
Date d'inscription : 02/09/2016

MessageSujet: Container_begin    Lun 29 Oct 2018 - 17:16

Bonjour,

Dans l'éditeur FBide, en faisant apparaître, les mots-clefs qui correspondent (pour moi) à des blocs d'instructions/de déclaration, sous une autre couleur (que les autres mots-clefs) par exemple

     container_begin -> container_end
     if                      -> end_if
     while                 -> wend , etc

je me suis aperçu (plus facilement) que dans un programme FBPano, j'avais oublié, après la création d'un container, la déclaration de son "commencement" (container_begin)  sans que cela soit détecté par le compilateur.

Création correcte d'un container :

' ========== MAIN
main_begin:
   Container o_ctn0%, ctn0_x%, ctn0_y%, ctn0_w%, ctn0_h%, , , T_Container_Tab
   Container_begin o_ctn0%
      .
      .
      .

   Container_end o_ctn0%
end
   

Création a priori incorrecte d'un container (Container_begin  ctn0% est mis en commentaire) . Cela n'est pas détecté par le compilateur et le programme s'exécute quand même :

' ========== MAIN
main_begin:
   Container o_ctn0%, ctn0_x%, ctn0_y%, ctn0_w%, ctn0_h%, , , T_Container_Tab
   ' Container_begin o_ctn0%
      .
      .
      .

   Container_end o_ctn0%
end

   
Dans mon programme, cette anomalie se reproduit pour d'autres containers liés à des Tabs "contenus" dans le container o_ctn0%.

Apparemment, la déclaration d'un container rend implicite son "commencement" pour toutes les instructions comprises entre l'instruction de sa création et l'instruction de sa fermeture (j'espère que je suis clair).

P.S. Même anomalie pour Tabs_begin
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 837
Age : 64
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Container_begin    Mar 30 Oct 2018 - 9:40

L'idée de mettre une couleur différente pour les mots-clés "appariés" me semble très bonne. Je devrais pouvoir la reprendre pour l'éditeur FBPano.

Pour les containers : les instructions de type ***_BEGIN et ***_END sont des appels à des fonctions de la DLL FLTK. Ce ne sont pas des instructions "natives" de FreeBASIC. C'est pour cela que le compilateur ne réagit pas. Il faudrait mettre un contrôle au niveau du traducteur.

Si l'instruction CONTAINER_BEGIN est absente les objets seront créés mais seront affectés à la fenêtre principale plutôt qu'au CONTAINER. Cela peut poser des problèmes, p. ex. avec des groupes de boutons RADIO.

EDIT : Vérification faite, c'est toi qui a raison ! L'instruction CONTAINER_BEGIN peut être omise après l'instruction de déclaration du CONTAINER. Voici l'exemple ex17 réécrit de cette manière :

Code:

set_scheme "gtk+"

form 0, 100, 100, 320,220, "Préférences"

container 10, 5,  30, 310, 40, "Système"

' container_begin 10
  radio 11,  20, 37, 120, 25, "Windows"
  radio 12, 175, 37, 120, 25, "Linux"
container_end 10

container 20, 5, 100, 310, 40, "Version"

' container_begin 20
  radio 21,  20, 107, 120, 25, "32 bits"
  radio 22, 175, 107, 120, 25, "64 bits"
container_end 20

container 30, 5, 170, 310, 40, "Langage"

' container_begin 30
  radio 31,  20, 177, 120, 25, "PANORAMIC"
  radio 32, 175, 177, 120, 25, "FreeBASIC"
container_end 30

start 0

Mais tout de même, je ne conseillerais pas Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Navigateur

avatar

Nombre de messages : 41
Age : 70
Localisation : Les Clayes-sous-bois 78340
Date d'inscription : 02/09/2016

MessageSujet: Re: Container_begin    Mar 30 Oct 2018 - 11:12

D'accord avec toi pour laisser les instructions ****_begin même si pour l'instant elle peuvent être omises.

Pour l'éditeur FBide, pour faire apparaître les mots-clefs liés d'un autre couleur, j'ai modifié le fichier fbfull.lng des mots-clefs comme suit :

Code:
[keywords]
kw1=? const data read restore type any dim dim_static redim preserve ubound erase goto exit_function exit_sub using sleep exit mod true false not and or xor imp eqv shr shl swap cswap  case adr date time timer fdate ftime fdatetime str_to_date str_to_time str_to_datetime day_of_week randomize rnd abs int fix round floor ceil frac sgn min max odd even sqr pythag log log10 log2 exp sin cos tan asin acos atn atan2 sinh cosh tanh asinh acosh atanh asc chr bin hex cbool len str val left mid right lcase ucase ltrim rtrim trim space string instr instrrev insert reverse ulen uleft umid uright ulcase uucase uinstr uinsert ureverse uisascii uivstr uasc uchr cls locate tab print printf sprintf exit_while exit_repeat to step exit_for then is curdir exepath environ setenviron dir_exists dir_current dir_change dir_make dir_remove file_find_first file_find_next file_exists file_delete file_rename file_copy file_move file_extract_disk file_extract_extension file_extract_name file_extract_path file_open_read file_open_write file_open_append file_close file_eof freefile file_readln file_read file_write file_read_csv file_write_csv file_readbuf file_writebuf filebin_open_read filebin_open_write filebin_close filebin_size filebin_read filebin_write filebin_hexa_read filebin_hexa_write filebin_block_read filebin_block_write filebin_position filebin_pos filerandom_open_read filerandom_open_write filerandom_close filerandom_size filerandom_read filerandom_write filerandom_position filerandom_pos dlist dlist_count dlist_item_add dlist_item_insert dlist_item_delete dlist_clear dlist_item_read dlist_file_add dlist_file_load dlist_file_save dlist_invert dlist_sort_ascending dlist_sort_descending dlist_sort shell execute param_number param_value fb_windows fb_linux fb_arm rgbtohsv hsvtorgb rgbtohex cerrcode cmplx polar creal cimag csgn cabs cabs2 carg cconj cneg cinv clog cexp croot csqrt csin ccos ctan casin cacos catan csinh ccosh ctanh casinh cacosh catanh csincos csinhcosh form button picture alpha edit list combo menu menu_popup menu_button spin check radio container tabs chart color_chooser track_bar scroll_bar progress_bar treeview text_editor text_buffer hviewer xform xbutton xpicture xalpha xedit xlist xcombo xmenu xmenu_popup xmenu_button xspin xcheck xradio xcontainer xtabs xchart xcolor_chooser xtrack_bar xscroll_bar xprogress_bar xtreeview xtext_editor xcanvas matwidget xmatwidget message message_input message_choice message_password file_name color_chooser_dialog on_click on_event on_draw on_canvas_draw on_link on_timer timer_interval timer_remove handle_event event_text mouse_coord mouse_button set_scheme set_resizable form_begin form_end form_minsize form_iconize resize get_xywh set_coord get_coord set_size get_size caption get_caption caption_align get_caption_align text get_text caret_position get_caret_position copy_text_to_clipboard list_item_add list_item_insert list_item_replace list_item_delete list_item_select list_item_selected list_item_read list_item_index list_item_count list_clear list_tab list_sort_ascending list_sort_descending list_file_add list_file_load list_file_save menu_item_add menu_item_insert menu_item_delete menu_clear menu_item_read menu_item_index menu_item_count menu_item_checked menu_item_add_img fl_rgb color_fl color_rgb color_caption_fl color_caption_rgb color_text_fl color_text_rgb color_selection_fl color_selection_rgb color_connector_fl color_connector_rgb color_cursor_fl color_cursor_rgb color_numlines_fl color_numlines_rgb font_caption font_text font_list font_list_monospace is_monospace num_font hint set_img save_img get_img_size box_type_str set_box_type container_bars container_scroll tabs_set tabs_get mark_on mark_off checked position get_position position_range chart_add chart_insert chart_replace chart_set_type chart_set_bounds chart_clear color_chooser_set_rgb color_chooser_set_hsv color_chooser_get_rgb color_chooser_get_hsv tree_item_add tree_item_delete tree_item_select tree_item_spacing tree_widget_margin tree_item_count tree_item_index tree_item_is_selected tree_item_read tree_reason tree_clear tree_open tree_close tree_connector_style tree_select_mode tree_sort_order editor_set_buffer editor_set_stylebuffer editor_wrap editor_numlines editor_cut editor_copy editor_paste editor_show_insert_pos editor_set_insert_pos editor_get_insert_pos editor_redisplay_range add_style gen_style buffer_insert buffer_replace buffer_remove buffer_select buffer_unselect buffer_remove_select buffer_line_start buffer_line_end buffer_word_start buffer_word_end buffer_text_range buffer_length buffer_file_load buffer_file_save buffer_search_forward buffer_search_backward hviewer_file_load _2d_pen_color _2d_pen_color_fl _2d_pen_style _2d_point _2d_move_to _2d_line_to _2d_line _2d_line2 _2d_line_h _2d_line_hv _2d_line_hvh _2d_line_v _2d_line_vh _2d_line_vhv _2d_triangle _2d_triangle_fill _2d_poly4 _2d_poly4_fill _2d_rectangle _2d_rectangle_fill _2d_box _2d_arc _2d_pie _2d_font _2d_print _2d_print_box _2d_text_extension _2d_mouse_x _2d_mouse_y _2d_img_begin _2d_img_end _2d_img_to_fb _2d_set_img _2d_clip_begin _2d_clip_end rgb rgba rgba_r rgba_g rgba_b rgba_a fb_form fb_cls fb_pen_color fb_bkg_color fb_get_color fb_point fb_move_to fb_line_to fb_line fb_rectangle fb_rectangle_fill fb_arc fb_pie fb_print fb_paint fb_paint_pattern fb_draw fb_view fb_window fb_load fb_save fb_load_trans fb_img_begin fb_img_end fb_img_to_2d fb_set_img fb_get fb_put fb_multiput fb_x_pixel fb_y_pixel fb_x_user fb_y_user fb_contour fb_colormap fb_keycode fb_event_key fb_animate sound sound_init sound_play sound_is_playing sound_get_position sound_get_index sound_get_volume sound_get_balance sound_get_speed sound_get_paused sound_get_params sound_get_max sound_get_min sound_get_mean sound_set_position sound_set_index sound_set_volume sound_set_balance sound_set_speed sound_set_paused sound_spectrum sound_oscillator nwidget self number_objects object_exists object_type object_delete set_focus get_focus redraw object_draw object_redraw show hide flush active inactive start
kw2=
kw3=
kw4=main_begin container_begin container_end else elseif end_select end end_enum end_function end_if end_sub end_while end_with enum for function if next repeat select sub tabs_begin tabs_end until wend while with

Les mots qui me semblent "liés" ont été enlevés des mots-clefs 1 et mis dans les mots-clefs 4 (dans le fichier d'origine crée lors de l'installation de FBPano, cette liste est vide). Il faut aussi changer/adapter la couleur de cette nouvelle liste via la modification du Thème.

Pour convenance personnelle, j'ai rajouté le mot-clef main_begin qui doit être utilisé comme un label pour faire visuellement apparaître le bloc principal, Main_begin: -> End.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 837
Age : 64
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Container_begin    Mer 31 Oct 2018 - 9:02

Merci pour la liste des mots-clés. Je vais modifier l'éditeur en conséquence.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Navigateur

avatar

Nombre de messages : 41
Age : 70
Localisation : Les Clayes-sous-bois 78340
Date d'inscription : 02/09/2016

MessageSujet: Mots-clefs FBPano   Mer 31 Oct 2018 - 22:29

Je viens de voir que le mot-clef "command" est manquant dans le fichier fbfull.lng d'origine.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 837
Age : 64
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Container_begin    Lun 5 Nov 2018 - 9:09

Encore un mot-clé que j'ai oublié ! J'en découvre constamment !

Il sera dans la prochaine version ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé




MessageSujet: Re: Container_begin    

Revenir en haut Aller en bas
 
Container_begin
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Grands projets réalisés avec Panoramic :: Compilateur FBPANO-
Sauter vers: