Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Début d'un autre IDE | |
|
+4sergeauze papydall Yannick Klaus 8 participants | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 6:16 | |
| Je crois que mon PPE vient de trouver la dernière fonction qui lui manquait... ...enfin jusqu'à ma prochaine idée tordue. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 25 Fév 2014 - 13:36 | |
| @ Klaus,
Pour accrocher un RE à un onglet , tu te sers de la sub "TAB_RE_add(1,1,RE_table%(RE_count%))".
Je crois avoir deviné les deux derniers paramètres ( n° onglet, n° RE dans l' onglet) mais quel est le premier ?... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 13:44 | |
| Voici un extrait du fichier d'aide TAB.rtf que je copie maintenant dans le dossier de l'IDE: - Citation :
- TAB_RE_add attacher un objet RichEdit à un onglet
Syntaxe: TAB_RE_add(N%,O%,P%)
Cette function agit exactement comme la fonction Object_add, mais au lieu d'un objet standard Panoramic, elle agit sur un objet RichEdit.
N%: numéro du TAB (1...20) O%: numéro de l'onglet du TAB N% P%: numéro d'objet Panoramic (ou valeur RE% retournée par CreateRichEdit) | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 25 Fév 2014 - 14:54 | |
| J' ai un petit souci...(oui encore un )
Les tableurs ne s' affichent pas dans les onglets... J' ai mis PPE2_2.zip sur mon webdav (GUI.bas).
heu...
dim RichEdit_1% : RichEdit_1% = 4
à quoi correspond la valeur attribuée à cette variable et à quoi elle sert ? Je ne la vois plus ailleurs dans le main du projet... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 16:28 | |
| Je vais regarder ton zip. L'IDE génère une variable pour chaque objet, du type: memo_1% tab_2% button_7% RichEdit_2% etc Ces noms de variables sont exactement les noms des objets dans l'IDE. La valeur qu'on leur affecte, est leur numéro d'objet dans Panoramic. Je crée cela juste pour la facilité de programmation par la suite: ainsi, il est facile de cibler un objet particulier par son nom. C'est évidemment parfaitement optionnel, mais on peut programmer ceci: - Code:
-
if text$(edit_3%)="" then message "Le contenu du Edit numéro 3 est vide !" C'est plus facile que d'essayer d'imaginer quels pourraient être les numéros d'objet de Panoramic, pour chaque objet de l'IDE. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 25 Fév 2014 - 18:12 | |
| Dans le cas présent il s' agit d' un RichEdit pas d' un objet Panoramic. La valeur devrait être la valeur du res% de l' appel à la dll. A moins que tu fasses un obj%=obj%+1 : RichEdit_1%=obj% mais le numéro d' objet sera creux car rien n' affecte ce numéro en panoramic.
tu ne peux faire par exemple :
text$(RichEdit_1%) ou autre....
Bref, je pensais que le problème pouvait venir de l' absence de cette variable dans mes déclarations.
( Je suppose que cette numérotation est du à une procédure qui agit ainsi pour tous les objets et qu' il est plus simple de laisser ainsi que de faire une exception et si c' est le cas, je le comprend.) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 18:38 | |
| Tu as raison: ces variables n'ont pas de sens pour un RE. Je vais certainement remplacer cette valeur non utile par la vraie valeur du RE.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 18:40 | |
| Je suis en train de regarder ton zip. Je n'ai pas encore percé le mystère, mais je peux déjà te suggérer d'utiliser ce fichier comme TAB.bas: - Code:
-
' TAB_inc.bas
' =============== Sécurité ==================================== top 0,message_error_OK("TAB: on ne peut pas executer ce module directement !") terminate
' ***************************************************************************** sub TAB_initialize(D$) if variable("TAB_param$")=0 label TAB_create_err1, TAB_click_tab, TAB_change label TAB_dessiner_tabs, TAB_dessiner_page label TAB_aff_objet label TAB_SearchParam, TAB_param_value, TAB_param_string_value label TAB_count_object label TAB_onglet_choisi label TAB_print_attributs label TAB_add_err1a, TAB_add_err2a label TAB_aff_objet_err, TAB_aff_objet_err2 label TAB_change_err, TAB_remove_err1 dim TAB_params$ dim TAB_debug% dim TAB_result%, TAB_active%(20,20), TAB_font$(20,1), TAB_font_onglets$(20,40) dim TAB_par$(10,1), TAB_LstFct$, TAB_p$, tab_zz%, TAB_xt% dim TAB_numero_objet%, TAB_n_onglets%(20), TAB_m%, TAB_result$ dim TAB_top%(20), TAB_left%(20), TAB_hauteur%(20), TAB_largeur%(20), TAB_l% dim TAB_i%, TAB_n%, TAB_s$, TAB_v%, TAB_v$, TAB_j%, TAB_nr%(20), TAB_code% dim TAB_error_mode%, TAB_err%, TAB_onglet%(20), TAB_ancien_onglet%(20), TAB_index% dim TAB_n_tabs%, TAB_liste_tabs%(20), TAB_xx%, TAB_yy%, TAB_do_aff%, TAB_k% dim TAB_events%(20), TAB_etiq_onglets$(20,20), TAB_type_objet% dim TAB_liste_objets%(20,420) : ' (i,o)=nombre d'objets onglet o (i,o*20+n)=nième numéro d'objet onglet o dim TAB_color_onglets%(20,84) : ' (i,o*4)=x (i,o*4+1)=R (i,o*4+2)=G (i,o*4+3)=B ' x=1: utiliser RGB onglet x=0: utiliser RBG objet TAB ' pour o=zéro : valeurs RBG de l'objet TAB dim TAB_type_objets%(20,420) : ' (i,o*20+n) = type de l'objet n onglet o TAB i ' type=1: normal Panoramic type=2: objet TAB ' type=3: objet GLIST type=4: objet RIchEdit ' type=0: objet dépendant d'un TAB ou d'un GLIST dim TAB_dossier$ : TAB_dossier$ = d$ : ' dossier à utiliser dim TAB_x%, TAB_y%, TAB_h%, TAB_w% end_if end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_create(N%,H%,W%,T%,L%,O%,D$) if variable("TAB_params$")=0 then TAB_initialize(D$) if TAB_n_tabs%=20 TAB_params$ = "TAB: trop d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if
TAB_n% = n% on_error_goto TAB_create_err1 picture TAB_n%+1 picture TAB_n% off_error_goto TAB_numero_objet% = TAB_n% print_target_is TAB_numero_objet% on_click TAB_numero_objet%,TAB_click_tab TAB_n_tabs% = TAB_n_tabs% + 1 TAB_index% = TAB_n_tabs% TAB_liste_tabs%(TAB_n_tabs%) = TAB_numero_objet% TAB_n_onglets%(TAB_n_tabs%) = 1 TAB_liste_objets%(TAB_n_tabs%,1) = 0 TAB_onglet%(TAB_index%) = 1 : ' par défaur: onglet actuel est 1 TAB_ancien_onglet%(TAB_index%) = 1 : ' par défaut: ancien onglet est onglet 1 TAB_color_onglets%(TAB_index%,0) = 0 : ' pour objet TAB TAB_color_onglets%(TAB_index%,1) = 255 TAB_color_onglets%(TAB_index%,2) = 255 TAB_color_onglets%(TAB_index%,3) = 255 TAB_color_onglets%(TAB_index%,4) = 0 : ' pour onglet 1 TAB_color_onglets%(TAB_index%,5) = 255 TAB_color_onglets%(TAB_index%,6) = 255 TAB_color_onglets%(TAB_index%,7) = 255 TAB_events%(TAB_index%) = 0 : ' pas d'évènement TAB_active%(TAB_index%,1) = 1 : ' onglet 1 actif TAB_font$(TAB_index%,0) = "Arial" TAB_font$(TAB_index%,1) = ""
TAB_hauteur%(TAB_index%) = H% TAB_left%(TAB_index%) = L% TAB_top%(TAB_index%) = T% TAB_largeur%(TAB_index%) = W% TAB_n_onglets%(TAB_index%) = O% for TAB_i%=1 to TAB_n_onglets%(TAB_index%) TAB_etiq_onglets$(TAB_index%,TAB_i%) = str$(TAB_i%) TAB_color_onglets%(TAB_index%,TAB_i%*4) = 0 TAB_color_onglets%(TAB_index%,TAB_i%*4+1) = 255 TAB_color_onglets%(TAB_index%,TAB_i%*4+2) = 255 TAB_color_onglets%(TAB_index%,TAB_i%*4+3) = 255 TAB_active%(TAB_index%,TAB_i%) = 1 TAB_font_onglets$(TAB_index%,(TAB_i%-1)*2+1) = "" TAB_font_onglets$(TAB_index%,(TAB_i%-1)*2+2) = "" next TAB_i% TAB_onglet%(TAB_index%) = 1
gosub TAB_dessiner_tabs gosub TAB_dessiner_page exit_sub TAB_create_err1: off_error_goto TAB_params$ = "TAB: problème avec numéro d'objet " + str$(TAB_numero_objet%) if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_mode(type$) if variable("TAB_params$")=0 then TAB_initialize("") if type$="silent" then TAB_error_mode% = 0 if type$="verbose" then TAB_error_mode% = 1 end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_label(N%,O%,L$) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_index% = TAB_i% TAB_n% = O% if TAB_n%>0 and TAB_n%<=TAB_n_onglets%(TAB_index%) TAB_s$ = L$ print_target_is TAB_liste_tabs%(TAB_index%) print_locate (TAB_n%-1)*int(TAB_largeur%(TAB_index%)/TAB_n_onglets%(TAB_index%)),5 TAB_etiq_onglets$(TAB_index%,TAB_n%) = TAB_s$ gosub TAB_print_attributs print TAB_s$ end_if exit_sub end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** ' syntaxe: TAB_params$ = "Tab_insert|N=20|O=3|L=xxxxxxx|" sub TAB_insert(N%,O%,L$) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_n% = O% if TAB_n%>=0 and TAB_n%<=TAB_n_onglets%(TAB_index%) TAB_s$ = "<Nouveau>" if TAB_n%<TAB_n_onglets%(TAB_index%) for TAB_j%=TAB_n_onglets%(TAB_index%) to TAB_n%+1 step -1 TAB_etiq_onglets$(TAB_index%,TAB_j%+1) = TAB_etiq_onglets$(TAB_index%,TAB_j%) TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+2+2) = TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+2) TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+2+1) = TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+1) if TAB_liste_objets%(TAB_index%,TAB_j%)>0 for TAB_k%=1 to TAB_liste_objets%(TAB_index%,TAB_j%) TAB_liste_objets%(TAB_index%,(TAB_j%+1)*20+TAB_k%) = TAB_liste_objets%(TAB_index%,TAB_j%*20+TAB_k%) TAB_type_objets%(TAB_index%,(TAB_j%+1)*20+TAB_k%) = TAB_type_objets%(TAB_index%,TAB_j%*20+TAB_k%) next TAB_k% end_if TAB_liste_objets%(TAB_index%,TAB_j%+1) = TAB_liste_objets%(TAB_index%,TAB_j%) TAB_type_objets%(TAB_index%,TAB_j%+1) = TAB_type_objets%(TAB_index%,TAB_j%) : ' pour usage futur TAB_active%(TAB_index%,TAB_j%+1) = TAB_active%(TAB_index%,TAB_j%) next TAB_j% for TAB_j%=TAB_n_onglets%(TAB_index%)*4 to TAB_n%*4 step -1 TAB_color_onglets%(TAB_index%,TAB_j%+3) = TAB_color_onglets%(TAB_index%,TAB_j%-1) next TAB_j% end_if TAB_color_onglets%(TAB_index%,TAB_n%*4) = 0 TAB_color_onglets%(TAB_index%,TAB_n%*4+1) = 255 TAB_color_onglets%(TAB_index%,TAB_n%*4+2) = 255 TAB_color_onglets%(TAB_index%,TAB_n%*4+3) = 255 TAB_liste_objets%(TAB_index%,TAB_n%) = 0 TAB_type_objets%(TAB_index%,TAB_n%) = 0 TAB_n_onglets%(TAB_index%) = TAB_n_onglets%(TAB_index%) + 1 TAB_active%(TAB_index%,TAB_n%+1) = 1 TAB_etiq_onglets$(TAB_index%,TAB_n%+1) = L$ TAB_font_onglets$(TAB_index%,TAB_n%*2+1) = "" TAB_font_onglets$(TAB_index%,TAB_n%*2+2) = "" gosub TAB_dessiner_tabs exit_sub end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_delete(N%,O%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_n% = O% if TAB_n%>0 and TAB_n%<=TAB_n_onglets%(TAB_index%) if TAB_n%<TAB_n_onglets%(TAB_index%) for TAB_j%=TAB_n% to TAB_n_onglets%(TAB_index%)-1 TAB_etiq_onglets$(TAB_index%,TAB_j%) = TAB_etiq_onglets$(TAB_index%,TAB_j%+1) TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+1) = TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+2+1) TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+2) = TAB_font_onglets$(TAB_index%,(TAB_j%-1)*2+2+2) if TAB_liste_objets%(TAB_index%,TAB_j%+1)>0 for TAB_k%=1 to TAB_liste_objets%(TAB_index%,TAB_j%+1) TAB_liste_objets%(TAB_index%,TAB_j%*20+TAB_k%) = TAB_liste_objets%(TAB_index%,(TAB_j%+1)*20+TAB_k%) TAB_type_objets%(TAB_index%,TAB_j%*20+TAB_k%) = TAB_type_objets%(TAB_index%,(TAB_j%+1)*20+TAB_k%) next TAB_k% end_if TAB_liste_objets%(TAB_index%,TAB_j%) = TAB_liste_objets%(TAB_index%,TAB_j%+1) TAB_type_objets%(TAB_index%,TAB_j%) = TAB_type_objets%(TAB_index%,TAB_j%+1) : ' pour usage futur TAB_active%(TAB_index%,TAB_j%) = TAB_active%(TAB_index%,TAB_j%+1) next TAB_j% for TAB_j%=TAB_n%*4 to (TAB_n_onglets%(TAB_index%)-1)*4-1 TAB_color_onglets%(TAB_index%,TAB_j%) = TAB_color_onglets%(TAB_index%,TAB_j%+4) next TAB_j% end_if TAB_n_onglets%(TAB_index%) = TAB_n_onglets%(TAB_index%) - 1 gosub TAB_dessiner_tabs exit_sub end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_select(N%,O%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_p$ = "N" gosub TAB_param_value TAB_n% = TAB_result% if TAB_n%>1 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_p$ = "O" gosub TAB_param_value TAB_n% = TAB_result% if TAB_n%>0 and TAB_n%<=TAB_n_onglets%(TAB_index%) if TAB_n%=TAB_onglet%(TAB_index%) then exit_sub if TAB_active%(TAB_index%,TAB_n%)=0 then return TAB_ancien_onglet%(TAB_index%) = TAB_onglet%(TAB_index%) TAB_onglet%(TAB_index%) = TAB_n% gosub TAB_change exit_sub end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_OBJECT_add(N%,O%,P%) if variable("TAB_params$")=0 then TAB_initialize("") TAB_type_objet% = 1 TAB_add_x(N%,O%,P%) end_sub sub TAB_TAB_add(N%,O%,P%) if variable("TAB_params$")=0 then TAB_initialize("") TAB_type_objet% = 2 TAB_add_x(N%,O%,P%) end_sub sub TAB_GLIST_add(N%,O%,P%) if variable("TAB_params$")=0 then TAB_initialize("") TAB_type_objet% = 3 TAB_add_x(N%,O%,P%) end_sub sub TAB_RE_add(N%,O%,P%) if variable("TAB_params$")=0 then TAB_initialize("") TAB_type_objet% = 4 TAB_add_x(N%,O%,P%) end_sub
sub TAB_add_x(N%,O%,P%) if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_n% = O% if (TAB_n%>0) and ((TAB_liste_objets%(TAB_index%,TAB_n%) + TAB_type_objet%)<=20) TAB_v% = P% TAB_j% = TAB_liste_objets%(TAB_index%,TAB_n%) : ' nombre d'objets pour cet onglet if TAB_j%>0 for TAB_k%=1 to TAB_j% if TAB_liste_objets%(TAB_index%,TAB_n%*20+TAB_k%)=TAB_v% then exit_sub : ' déjà membre ? next TAB_k% end_if TAB_xt% = TAB_type_objet% if TAB_type_objet%=4 then TAB_xt% = 1 : ' cas du RichEdit if (TAB_type_objet%=2) for TAB_j%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_j%)=TAB_v% TAB_top%(TAB_j%) = TAB_top%(TAB_j%) + TAB_top%(TAB_index%) + 22 TAB_left%(TAB_j%) = TAB_left%(TAB_j%) + TAB_left%(TAB_index%) exit_for end_if next TAB_j% end_if gosub TAB_count_object repeat TAB_liste_objets%(TAB_index%,TAB_n%) = TAB_liste_objets%(TAB_index%,TAB_n%) + 1 TAB_liste_objets%(TAB_index%,TAB_n%*20+TAB_liste_objets%(TAB_index%,TAB_n%)) = TAB_v% : ' mémoriser l'objet if (TAB_type_objet%=TAB_xt%) or (TAB_type_objet%=4) TAB_type_objets%(TAB_index%,TAB_n%*20+TAB_liste_objets%(TAB_index%,TAB_n%)) = TAB_type_objet% else TAB_type_objets%(TAB_index%,TAB_n%*20+TAB_liste_objets%(TAB_index%,TAB_n%)) = 0 end_if if TAB_result%=0 : ' objet pas encode dans un TAB ? on_error_goto TAB_add_err1a if TAB_type_objet%=4 TAB_j% = dll_call3("RichEditFunction",TAB_v%,8,0) : ' hide RE TAB_j% = dll_call5("GetRichEditGeometry",TAB_v%,adr(TAB_x%),adr(TAB_y%),adr(TAB_w%),adr(TAB_h%)) TAB_j% = dll_call5("RichEditGeometry",TAB_v%,TAB_x%+TAB_left%(TAB_index%),TAB_y%+TAB_top%(TAB_index%)+22,TAB_w%,TAB_h%) else hide TAB_v% TAB_j% = top(TAB_v%) top TAB_v%,TAB_j% + TAB_top%(TAB_index%) + 22 TAB_j% = left(TAB_v%) left TAB_v%,TAB_j% + TAB_left%(TAB_index%) end_if TAB_add_err1a: off_error_goto end_if on_error_goto TAB_add_err2a if TAB_type_objet%=4 TAB_j% = dll_call3("RichEditFunction",TAB_v%,8,0) : ' hide RE else hide TAB_v% end_if TAB_add_err2a: off_error_goto TAB_v% = TAB_v% + 1 TAB_xt% = TAB_xt% - 1 until TAB_xt% = 0 TAB_result% = 1 for TAB_zz%=1 to TAB_n_tabs% for TAB_yy%=1 to TAB_n_onglets%(TAB_zz%) if TAB_liste_objets%(TAB_zz%,TAB_yy%)>0 for TAB_xx%=1 to TAB_liste_objets%(TAB_zz%,TAB_yy%) if TAB_liste_objets%(TAB_zz%,TAB_yy%*20+TAB_xx%)=TAB_numero_objet% if TAB_onglet%(TAB_zz%)<>TAB_yy% then TAB_result% = 0 end_if next TAB_xx% end_if next TAB_yy% next TAB_zz% if TAB_n%<>TAB_onglet%(TAB_index%) then TAB_result% = 0 if TAB_result%=1 TAB_do_aff% = 1 gosub TAB_dessiner_tabs end_if exit_sub end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_OBJECT_remove(N%,O%,P%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_n% = O% if TAB_n%>0 and TAB_n%<=TAB_n_onglets%(TAB_index%) TAB_v% = P% TAB_j% = TAB_liste_objets%(TAB_index%,TAB_n%) : ' nombre d'objets pour cet onglet if TAB_j%>0 for TAB_k%=1 to TAB_j% if TAB_liste_objets%(TAB_index%,TAB_n%*20+TAB_k%)=TAB_v% : ' trouvé ? if TAB_type_objets%(TAB_index%,TAB_n%*20+TAB_k%)=0 then exit_sub : ' sous-type de TAB ou GLIST ? gosub TAB_count_object TAB_xx% = TAB_type_objets%(TAB_index%,TAB_n%*20+TAB_k%) if TAB_xx%=4 then TAB_xx% = 1 : ' cas RichEdit repeat if TAB_result%=1 on_error_goto TAB_remove_err1 TAB_m% = top(TAB_v%) top TAB_v%,TAB_m% - TAB_top%(TAB_index%) - 22 TAB_m% = left(TAB_v%) left TAB_v%,TAB_m% - TAB_left%(TAB_index%) TAB_remove_err1: off_error_goto end_if if TAB_k%<TAB_liste_objets%(TAB_index%,TAB_n%) for TAB_l%=TAB_k% to TAB_liste_objets%(TAB_index%,TAB_n%) - 1 TAB_liste_objets%(TAB_index%,TAB_n%*20+tab_l%) = TAB_liste_objets%(TAB_index%,TAB_n%*20+tab_l%+1) TAB_type_objets%(TAB_index%,TAB_n%*20+tab_l%) = TAB_type_objets%(TAB_index%,TAB_n%*20+tab_l%+1) next TAB_l% end_if TAB_v% = TAB_v% + 1 TAB_xx% = TAB_xx% - 1 until TAB_xx%=0 TAB_liste_objets%(TAB_index%,TAB_n%) = TAB_liste_objets%(TAB_index%,TAB_n%) - 1 TAB_type_objets%(TAB_index%,TAB_n%) = TAB_type_objets%(TAB_index%,TAB_n%) - 1 : ' pour usage futur TAB_do_aff% = 1 gosub TAB_dessiner_tabs exit_sub end_if next TAB_k% end_if end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_color(N%,R%,G%,B%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_result% = R% if TAB_result%=-1 then TAB_result% = 255 TAB_par$(0,0) = str$(TAB_result%) TAB_result% = G% if TAB_result%=-1 then TAB_p=result% = 255 TAB_par$(0,1) = str$(TAB_result%) TAB_result% = B% if TAB_result%=-1 then TAB_result% = 255 TAB_par$(1,0) = str$(TAB_result%) TAB_color_onglets%(TAB_index%,0) = 0 TAB_color_onglets%(TAB_index%,1) = val(TAB_par$(0,0)) TAB_color_onglets%(TAB_index%,2) = val(TAB_par$(0,1)) TAB_color_onglets%(TAB_index%,3) = val(TAB_par$(1,0)) if TAB_color_onglets%(TAB_index%,TAB_onglet%(TAB_index%)*4)=0 color TAB_numero_objet%+1,TAB_color_onglets%(TAB_index%,1),TAB_color_onglets%(TAB_index%,2),TAB_color_onglets%(TAB_index%,3) gosub TAB_dessiner_tabs exit_sub end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_tab_color(N%,O%,R%,G%,B%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_numero_objet% = TAB_n% TAB_index% = TAB_i% TAB_v% = O% if (TAB_v%>0) and (TAB_V%<=TAB_n_onglets%(TAB_index%)) TAB_result% = R% if TAB_result%=-1 then TAB_result% = 255 TAB_par$(0,0) = str$(TAB_result%) TAB_result% = G% if TAB_result%=-1 then TAB_result% = 255 TAB_par$(0,1) = str$(TAB_result%) TAB_result% = B% if TAB_result%=-1 then TAB_result% = 255 TAB_par$(1,0) = str$(TAB_result%) TAB_i% = TAB_v%*4 TAB_color_onglets%(TAB_index%,TAB_i%) = 1 TAB_color_onglets%(TAB_index%,TAB_i%+1) = val(TAB_par$(0,0)) TAB_color_onglets%(TAB_index%,TAB_i%+2) = val(TAB_par$(0,1)) TAB_color_onglets%(TAB_index%,TAB_i%+3) = val(TAB_par$(1,0)) if TAB_onglet%(TAB_index%)=TAB_v% then color TAB_numero_objet%+1,TAB_color_onglets%(TAB_index%,TAB_i%+1),TAB_color_onglets%(TAB_index%,TAB_i%+2),TAB_color_onglets%(TAB_index%,TAB_i%+3) gosub TAB_dessiner_tabs exit_sub end_if end_if next TAB_i% TAB_params$ = "TAB: onglet non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_event_on(N%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_events%(TAB_i%) = 1 end_if next TAB_i% end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_event_off(N%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_events%(TAB_i%) = 0 end_if next TAB_i% end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_active(N%,O%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_p$ = "N" gosub TAB_param_value TAB_n% = TAB_result% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% if (O%>0) and (O%<=TAB_n_onglets%(TAB_n%)) TAB_active%(TAB_i%,O%) = 1 gosub TAB_dessiner_tabs exit_sub end_if end_if next TAB_i% end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_inactive(N%,O%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% if (O%>0) and (O%<=TAB_n_onglets%(TAB_i%)) TAB_active%(TAB_i%,O%) = 0 gosub TAB_dessiner_tabs exit_sub end_if end_if next TAB_i% end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_font(N%,F$,A$) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_index% = TAB_i% TAB_numero_objet% = TAB_liste_tabs%(TAB_index%) TAB_font$(TAB_index%,0) = F$ : ' font_name TAB_font$(TAB_index%,1) = A$ : ' BIU font_name TAB_numero_objet%,TAB_font$(TAB_index%,0) gosub TAB_dessiner_tabs exit_sub end_if next TAB_i% end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_tab_font(N%,O%,F$,A$) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% TAB_index% = TAB_i% TAB_numero_objet% = TAB_liste_tabs%(TAB_index%) TAB_n% = O% TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+1) = F$ : ' font_name TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+2) = A$ : ' BIU gosub TAB_dessiner_tabs exit_sub end_if next TAB_i% end_if TAB_params$ = "TAB: objet TAB non défini" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) end_sub ' *****************************************************************************
' ***************************************************************************** sub TAB_parent(N%,P%) if variable("TAB_params$")=0 then TAB_initialize("") if TAB_n_tabs%=0 TAB_params$ = "TAB: pas d'objets TAB" if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) exit_sub end_if TAB_n% = N% if TAB_n%>0 for TAB_i%=1 to TAB_n_tabs% if TAB_liste_tabs%(TAB_i%)=TAB_n% parent TAB_n%,P% parent TAB_n%+1,P% exit_sub end_if next TAB_i% end_if end_sub
' *****************************************************************************
' ***************************************************************************** ' ***************************************************************************** ' *****************************************************************************
' *************** routines de service
TAB_click_tab: TAB_n% = number_click for TAB_i%=1 to TAB_n_tabs% if TAB_n%=TAB_liste_tabs%(TAB_i%) TAB_index% = TAB_i% TAB_numero_objet% = TAB_liste_tabs%(TAB_index%) 2d_target_is TAB_numero_objet% print_target_is TAB_numero_objet% TAB_xx% = mouse_x_left_down(TAB_numero_objet%) TAB_yy% = mouse_y_left_down(TAB_numero_objet%) TAB_n% = TAB_n_onglets%(TAB_index%) TAB_j% = int(TAB_largeur%(TAB_index%)/TAB_n%) TAB_v% = int( (TAB_xx%+TAB_j%-1) / tab_j% ) if TAB_active%(TAB_index%,TAB_v%)=0 then return TAB_ancien_onglet%(TAB_index%) = TAB_onglet%(TAB_index%) TAB_onglet%(TAB_index%) = int( (TAB_xx%+TAB_j%-1) / tab_j% ) if TAB_onglet%(TAB_index%)=TAB_ancien_onglet%(TAB_index%) then return gosub TAB_change TAB_params$ = "Tab "+str$(TAB_index%)+" Ancien onglet "+str$(TAB_ancien_onglet%(TAB_index%))+" Nouvel onglet "+str$(TAB_onglet%(TAB_index%)) TAB_params$ = TAB_params$ + "="+TAB_etiq_onglets$(TAB_index%,(TAB_onglet%(TAB_index%))) if TAB_error_mode%=1 then TAB_err% = message_error_OK(TAB_params$) if TAB_events%(TAB_index%)=1 then gosub TAB_onglet_choisi return end_if next TAB_i% return
TAB_change: ' cacher les objets de l'ancien onglet if TAB_ancien_onglet%(TAB_index%)>0 TAB_j% = TAB_liste_objets%(TAB_index%,TAB_ancien_onglet%(TAB_index%)) if TAB_j%>0 for TAB_i%=1 to TAB_j% on_error_goto TAB_change_err if TAB_type_objets%(TAB_index%,TAB_ancien_onglet%(TAB_index%)*20+TAB_i%)=4 TAB_x% = dll_call3("RichEditFunction",TAB_liste_objets%(TAB_index%,TAB_ancien_onglet%(TAB_index%)*20+TAB_i%),8,0) : ' hide RE else hide TAB_liste_objets%(TAB_index%,TAB_ancien_onglet%(TAB_index%)*20+TAB_i%) end_if TAB_change_err: off_error_goto for TAB_v%=1 to TAB_n_tabs% if TAB_liste_objets%(TAB_index%,TAB_ancien_onglet%(TAB_index%)*20+TAB_i%)=TAB_liste_tabs%(TAB_v%) if TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%))>0 for TAB_k%=1 to TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%)) if TAB_type_objets%(TAB_index%,TAB_ancien_onglet%(TAB_index%)*20+TAB_i%)=4 TAB_x% = dll_call3("RichEditFunction",TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%)*20+TAB_k%),8,0) : ' hide RE else hide TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%)*20+TAB_k%) end_if next TAB_k% end_if exit_for end_if next TAB_v% next TAB_i% end_if end_if ' afficher les objets du nouvel onglet gosub TAB_aff_objet ' changer le graphisme TAB_j% = int(TAB_largeur%(TAB_index%)/TAB_n_onglets%(TAB_index%)) 2d_target_is TAB_numero_objet% 2d_line 1,21,TAB_largeur%(TAB_index%)-1,21 if TAB_color_onglets%(TAB_index%,TAB_onglet%(TAB_index%)*4)=1 TAB_i% = TAB_onglet%(TAB_index%)*4 color TAB_numero_objet%+1,TAB_color_onglets%(TAB_index%,TAB_i%+1),TAB_color_onglets%(TAB_index%,TAB_i%+2),TAB_color_onglets%(TAB_index%,TAB_i%+3) else color TAB_numero_objet%+1,TAB_color_onglets%(TAB_index%,1),TAB_color_onglets%(TAB_index%,2),TAB_color_onglets%(TAB_index%,3) end_if 2d_pen_color color_pixel_red(TAB_numero_objet%+1,2,2),color_pixel_green(TAB_numero_objet%+1,2,2),color_pixel_blue(TAB_numero_objet%+1,2,2) 2d_line (TAB_onglet%(TAB_index%)-1)*TAB_j%+1,21,TAB_onglet%(TAB_index%)*TAB_j%-1,21 2d_flood (TAB_onglet%(TAB_index%)-1)*TAB_j%+5,5,color_pixel_red(TAB_numero_objet%+1,2,2),color_pixel_green(TAB_numero_objet%+1,2,2),color_pixel_blue(TAB_numero_objet%+1,2,2) ' 2d_flood (TAB_ancien_onglet%(TAB_index%)-1)*TAB_j%+5,5,220,220,220 2d_pen_color 0,0,0 gosub TAB_dessiner_page return
TAB_aff_objet: TAB_j% = TAB_liste_objets%(TAB_index%,TAB_onglet%(TAB_index%)) if TAB_j%>0 for TAB_i%=1 to TAB_j% on_error_goto TAB_aff_objet_err if TAB_type_objets%(TAB_index%,TAB_onglet%(TAB_index%)*20+TAB_i%)=4 TAB_x% = dll_call3("RichEditFunction",TAB_liste_objets%(TAB_index%,TAB_onglet%(TAB_index%)*20+TAB_i%),8,1) : ' show RE else show TAB_liste_objets%(TAB_index%,TAB_onglet%(TAB_index%)*20+TAB_i%) end_if TAB_aff_objet_err: off_error_goto for TAB_v%=1 to TAB_n_tabs% if TAB_liste_objets%(TAB_index%,TAB_onglet%(TAB_index%)*20+TAB_i%)=TAB_liste_tabs%(TAB_v%) if TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%))>0 for TAB_k%=1 to TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%)) on_error_goto TAB_aff_objet_err2 if TAB_type_objets%(TAB_index%,TAB_onglet%(TAB_index%)*20+TAB_i%)=4 TAB_x% = dll_call3("RichEditFunction",TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%)*20+TAB_k%),8,1) : ' show RE else show TAB_liste_objets%(TAB_v%,TAB_onglet%(TAB_v%)*20+TAB_k%) end_if TAB_aff_objet_err2: off_error_goto next TAB_k% end_if exit_for end_if next TAB_v% next TAB_i% end_if TAB_do_aff% = 0 return
' dessiner les TAB's TAB_dessiner_tabs: gosub TAB_dessiner_page if TAB_do_aff%=1 then gosub TAB_aff_objet 2d_target_is TAB_numero_objet% 2d_fill_color 255,255,255 file_load TAB_numero_objet%,TAB_dossier$+"TAB_vide.bmp" height TAB_numero_objet%,22 top TAB_numero_objet%,TAB_top%(TAB_index%) width TAB_numero_objet%,TAB_largeur%(TAB_index%) left TAB_numero_objet%,TAB_left%(TAB_index%) print_target_is TAB_numero_objet% TAB_k% = TAB_n_onglets%(TAB_index%) TAB_j% = int(TAB_largeur%(TAB_index%)/TAB_k%) 2d_poly_from 1,21 for TAB_i%=1 to TAB_k% 2d_poly_to (TAB_i%-1)*TAB_j%+1,3 2d_poly_to (TAB_i%-1)*TAB_j%+1+3,1 if TAB_i%=TAB_k% 2d_poly_to (TAB_i%-1)*TAB_j%+TAB_j%-2,1 2d_poly_to TAB_largeur%(TAB_index%)-1,3 2d_poly_to TAB_largeur%(TAB_index%)-1,21 else 2d_poly_to (TAB_i%-1)*TAB_j%+TAB_j%-3,1 2d_poly_to (TAB_i%-1)*TAB_j%+TAB_j%-1,3 2d_poly_to (TAB_i%-1)*TAB_j%+TAB_j%-1,21 2d_poly_to (TAB_i%-1)*TAB_j%+TAB_j%+1,21 end_if next TAB_i% 2d_line 1,21,TAB_largeur%(TAB_index%)-1,21 if TAB_color_onglets%(TAB_index%,TAB_onglet%(TAB_index%)*4)=1 TAB_i% = TAB_onglet%(TAB_index%)*4 color TAB_numero_objet%+1,TAB_color_onglets%(TAB_index%,TAB_i%+1),TAB_color_onglets%(TAB_index%,TAB_i%+2),TAB_color_onglets%(TAB_index%,TAB_i%+3) else color TAB_numero_objet%+1,TAB_color_onglets%(TAB_index%,1),TAB_color_onglets%(TAB_index%,2),TAB_color_onglets%(TAB_index%,3) end_if TAB_result% = TAB_result% : ' pour éviter une violation d'accès... 2d_pen_color color_pixel_red(TAB_numero_objet%+1,2,2),color_pixel_green(TAB_numero_objet%+1,2,2),color_pixel_blue(TAB_numero_objet%+1,2,2) 2d_line (TAB_onglet%(TAB_index%)-1)*TAB_j%+1,21,TAB_onglet%(TAB_index%)*TAB_j%-1,21 2d_pen_color 0,0,0 for TAB_i%=1 to TAB_k% if TAB_active%(TAB_index%,TAB_i%)=1 if TAB_color_onglets%(TAB_index%,TAB_i%*4)=1 2d_flood (TAB_i%-1)*TAB_j%+3,3, TAB_color_onglets%(TAB_index%,TAB_i%*4+1),TAB_color_onglets%(TAB_index%,TAB_i%*4+2),TAB_color_onglets%(TAB_index%,TAB_i%*4+3) else 2d_flood (TAB_i%-1)*TAB_j%+3,3, TAB_color_onglets%(TAB_index%,1), TAB_color_onglets%(TAB_index%,2), TAB_color_onglets%(TAB_index%,3) end_if else 2d_flood (TAB_i%-1)*TAB_j%+3,3, 220,220,220 end_if TAB_n% = TAB_i% gosub TAB_print_attributs print_locate (TAB_i%-1)*TAB_j%+3,5 print TAB_etiq_onglets$(TAB_index%,TAB_i%) next TAB_i% gosub TAB_dessiner_page return
' dessiner la page utile TAB_dessiner_page: 2d_fill_color color_pixel_red(TAB_numero_objet%+1,2,3),color_pixel_green(TAB_numero_objet%+1,2,3),color_pixel_blue(TAB_numero_objet%+1,2,3) height TAB_numero_objet%+1,TAB_hauteur%(TAB_index%) - 20 top TAB_numero_objet%+1,TAB_top%(TAB_index%)+20 width TAB_numero_objet%+1,TAB_largeur%(TAB_index%) left TAB_numero_objet%+1,TAB_left%(TAB_index%) 2d_target_is TAB_numero_objet%+1 2d_fill_color color_pixel_red(TAB_numero_objet%+1,2,3),color_pixel_green(TAB_numero_objet%+1,2,3),color_pixel_blue(TAB_numero_objet%+1,2,3) 2d_rectangle 1,1,TAB_largeur%(TAB_index%),TAB_hauteur%(TAB_index%)-20 2d_pen_color color_pixel_red(TAB_numero_objet%+1,2,3),color_pixel_green(TAB_numero_objet%+1,2,3),color_pixel_blue(TAB_numero_objet%+1,2,3) TAB_k% = TAB_n_onglets%(TAB_index%) TAB_j% = int(TAB_largeur%(TAB_index%)/TAB_k%) 2d_poly_from (TAB_onglet%(TAB_index%)-1)*TAB_j%+1,1 2d_poly_to (TAB_onglet%(TAB_index%)-1)*TAB_j%+TAB_j%-1,1 2d_pen_color 0,0,0 return
' analyse des paramètres par Nardo26 TAB_SearchParam: for TAB_i%=0 to 10:TAB_par$(TAB_i%,0)="":TAB_par$(TAB_i%,1)="":next TAB_i% TAB_par$(0,1)="0" : TAB_j% = 0 for TAB_i%=1 to len(TAB_params$) if mid$(TAB_params$,TAB_i%,1)="|" TAB_par$(0,1)=str$(val(TAB_par$(0,1))+1) TAB_j%=0 else if mid$(TAB_params$,TAB_i%,1)="=" TAB_j%=1 else TAB_par$(val(TAB_par$(0,1)),TAB_j%)=TAB_par$(val(TAB_par$(0,1)),TAB_j%)+mid$(TAB_params$,TAB_i%,1) end_if end_if next TAB_i% if RIGHT$(TAB_params$,1)="|" TAB_par$(0,1)=str$(val(TAB_par$(0,1))-1) end_if return
' retourner un paramèetre numérique TAB_param_value: for TAB_result%=1 to val(TAB_par$(0,1)) if TAB_par$(TAB_result%,0)=TAB_p$ TAB_result% = val(TAB_par$(TAB_result%,1)) return end_if next TAB_result% TAB_result% = -1 return
' retourner un paramètre string TAB_param_string_value: for TAB_result%=1 to val(TAB_par$(0,1)) if TAB_par$(TAB_result%,0)=TAB_p$ TAB_result$ = TAB_par$(TAB_result%,1) return end_if next TAB_result% TAB_result$ = "" return
' compter le nombre d'affectation pour un objet Panoramic TAB_count_object: TAB_result% = 0 for TAB_zz%=1 to TAB_n_tabs% for TAB_yy%=1 to TAB_n_onglets%(TAB_zz%) if TAB_liste_objets%(TAB_zz%,TAB_yy%)>0 for TAB_xx%=1 to TAB_liste_objets%(TAB_zz%,TAB_yy%) if TAB_liste_objets%(TAB_zz%,TAB_yy%*20+TAB_xx%)=TAB_v% then TAB_result% = TAB_result% + 1 next TAB_xx% end_if next TAB_yy% next TAB_zz% return
' déterminer les attributs pour écriture des libellés de l'onglet TAB_n% TAB_print_attributs: if TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+1)="" font_name TAB_numero_objet%,TAB_font$(TAB_index%,0) if instr(TAB_font$(TAB_index%,1),"B" )>0 font_bold TAB_numero_objet% else font_bold_off TAB_numero_objet% end_if if instr(TAB_font$(TAB_index%,1),"I" )>0 font_italic TAB_numero_objet% else font_italic_off TAB_numero_objet% end_if if instr(TAB_font$(TAB_index%,1),"U" )>0 font_underline TAB_numero_objet% else font_underline_off TAB_numero_objet% end_if else font_name TAB_numero_objet%,TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+1) if instr(TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+2),"B" )>0 font_bold TAB_numero_objet% else font_bold_off TAB_numero_objet% end_if if instr(TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+2),"I" )>0 font_italic TAB_numero_objet% else font_italic_off TAB_numero_objet% end_if if instr(TAB_font_onglets$(TAB_index%,(TAB_n%-1)*2+2),"U" )>0 font_underline TAB_numero_objet% else font_underline_off TAB_numero_objet% end_if end_if return
' ===================== routine d'évènement on_change appelée en changement d'onglet ' Cette routine est appelée à chaque changement d'onglet, si elle a été activée ' par la fonction Event. Il suffit de copier cette routine dans le programme principal, ' après le #INCLUDE "TAB.bas" et de la mettre en commentaire dans TAB.bas. ' On peut alors adapter la routine aux besoins du programme. Lorsqu'elle est ' appelée, les variables suivantes sont disponibles: ' TAB_numero_objet% - numero d'objet Panoramic de l'objet TAB dont un onglet a changé ' TAB_index% - numéro d'ordre de création de l'objets TAB ' TAB_onglets%(TAB_index%) - numéro de l'onglet activé TAB_onglet_choisi: message "TAB "+str$(TAB_numero_objet%)+" Onglet "+str$(TAB_onglet%(TAB_index%)) return
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 25 Fév 2014 - 18:56 | |
| Le fichier TAB.bas utilisée est un fichier généré par ton IDE (dernière version) dont j' ai simplement changé le nom.
J' ai repris ce que l' on a vu hier pour la création du Tab avec 5 onglets de couleurs différentes avec leur propre nom.
J' ai rajouté l' appel à la sub pour ajouter/accrocher un RE à un onglet. Dans le cas de PPE il y a 5 onglets avec chacun un RE. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 19:02 | |
| HEUREKA ! Tu m'en as fait, des belles ! Tu crées les RE en les attachant à la form 0, et tu espères les voir dans un Tab contenu dans un Panel ! J'ai apporté 2 modifs dans GUI.bas: 1. dans les 5 RichEditCreateWithEvent, j'ai remplacé handle(0) par handle(TB_Pan%) 2. j'ai déplacé les 5 appels à TB_RE_ADD plus bas, lorsque chaque RE est définitivement configuré. En effet, l'insertion d'un RE dans un Tab change la position (donc sa "géometrie"). Et si tu refais RichEditGeometry après cela, tu défais tout ce que TAB_RE_add a fait. Voici GUI.bas opérationnel: - Code:
-
' # GENERAL USER INTERFACE #
Sub GUI() dim_local res%,hnd%,i% hnd%=handle(0)
' -- Form 0 --
O_Form(0,0,1,0,0,600,1000,"Personnal Panoramic Editor") res% = DLL_call2("SetMinimizeMaximize",hnd%,0) font_name 0,"arial" ' -- Main menu --
obj%=obj%+1 :MMenu%=obj% O_main_menu(obj%,0) obj%=obj%+1 :SMenu1%=obj% O_sub_menu(obj%,MMenu%,"Fichier",1,1) obj%=obj%+1 :SsMenu1%=obj% O_sub_menu(obj%,SMenu1%,"Nouveau projet",1,1) obj%=obj%+1 :SsMenu2%=obj% O_sub_menu(obj%,SMenu1%,"----------",0,0) obj%=obj%+1 :SsMenu3%=obj% O_sub_menu(obj%,SMenu1%,"Ouvrir un projet",1,1) obj%=obj%+1 :SsMenu4%=obj% O_sub_menu(obj%,SMenu1%,"Ouvrir un *.exe",1,1) obj%=obj%+1 :SsMenu5%=obj% O_sub_menu(obj%,SMenu1%,"----------",0,0) obj%=obj%+1 :SsMenu6%=obj% O_sub_menu(obj%,SMenu1%,"Imprimer",1,1) obj%=obj%+1 :SsMenu7%=obj% O_sub_menu(obj%,SMenu1%,"----------",0,0) obj%=obj%+1 :SsMenu8%=obj% O_sub_menu(obj%,SMenu1%,"Enregistrer",1,1) obj%=obj%+1 :SsMenu9%=obj% O_sub_menu(obj%,SMenu1%,"Enregistrer_sous",1,1) obj%=obj%+1 :SMenu2%=obj% O_sub_menu(obj%,MMenu%,"Prévisualiser",1,1) obj%=obj%+1 :SMenu3%=obj% O_sub_menu(obj%,MMenu%,"Compiler",1,1) obj%=obj%+1 :SMenu4%=obj% O_sub_menu(obj%,MMenu%,"Paramètres",1,1) obj%=obj%+1 :SMenu5%=obj% O_sub_menu(obj%,MMenu%,"A Propos...",1,1) obj%=obj%+1 :SMenu6%=obj% O_sub_menu(obj%,MMenu%,"Aide",1,1)
' -- Toolbar --
obj%=obj%+1 : TB_Edit%=obj% O_Edit(obj%,0,0,0,0,0,0,"",1)
obj%=obj%+1 : TB_Pan%=obj% Panel obj% Init_TB() ' -- Objets fonctions texte --
' COMBO (police) obj%=obj%+1 : Combo1%=obj% O_Combo(obj%,0,1,2,410,0,190,"",1) font_name obj%,"arial":font_bold obj% font_names_load obj% :text obj%, item_read$(obj%,1)
' COMBO (taille de la police) obj%=obj%+1 : Combo2%=obj% O_Combo(obj%,0,1,2,605,0,40,"",1) font_name obj%,"arial":font_bold obj% :text obj%,"8" for i%=8 to 14 : item_add obj%,str$(i%):next i%
' -- Liste des variables projet --
obj%=obj%+1 O_Alpha(obj%,TB_Pan%,1,5,5,0,0,"Variables Globales Projet") font_color obj%,0,0,200 : font_bold obj%
' LIST obj%=obj%+1 : Var_list%=obj% O_List(obj%,TB_Pan%,1,20,5,100,195,"",1)
' EDIT obj%=obj%+1 : Edit_AjVar%=obj% O_Edit(obj%,TB_Pan%,1,125,5,0,170,"",0)
' BUTTON obj%=obj%+1 : B_picture1%=obj% O_Button_Picture(obj%,7001,TB_Pan%,0,1,125,180,20,20,Pict$(1),Pict$(2)) hint B_picture1%,"Ajouter la variable" ' -- Liste des Labels projet --
obj%=obj%+1 O_Alpha(obj%,TB_Pan%,1,150,5,0,0,"Labels Projet") font_color obj%,0,0,200 : font_bold obj%
' LIST obj%=obj%+1 : Lab_list%=obj% O_List(obj%,TB_Pan%,1,165,5,100,195,"",1)
' EDIT obj%=obj%+1 : Edit_AjLab%=obj% O_Edit(obj%,TB_Pan%,1,270,5,0,170,"",0)
' BUTTON obj%=obj%+1 : B_picture2%=obj% O_Button_Picture(obj%,7003,TB_Pan%,0,1,270,180,20,20,Pict$(1),Pict$(2)) hint B_picture2%,"Ajouter le label" ' -- Liste des procédures projet --
obj%=obj%+1 O_Alpha(obj%,TB_Pan%,1,295,5,0,0,"Procédures") font_color obj%,0,0,200 : font_bold obj%
' LIST obj%=obj%+1 : Proc_list%=obj% O_List(obj%,TB_Pan%,1,310,5,150,195,"",1) ' EDIT obj%=obj%+1 : Edit_AJProc%=obj% O_Edit(obj%,TB_Pan%,1,465,5,0,170,"",0) ' BUTTON obj%=obj%+1 : B_picture3%=obj% O_Button_Picture(obj%,7005,TB_Pan%,0,1,465,180,20,20,Pict$(1),Pict$(2)) hint B_picture3%,"Ajouter la procédure" ' -- Liste des mots clef --
' BUTTON ' obj%=obj%+1 : B_picture4%=obj% ' O_Button_Picture(obj%,7007,TB_Pan%,0,1,5,970,20,20,Pict$(3),Pict$(4)) ' hint B_picture4%,"Liste des mots clef Panoramic" ' LIST ' obj%=obj%+1 : List_Sub%=obj% ' O_List(obj%,TB_Pan%,1,30,970,380,210,"",1):cursor_point obj% ' font_name obj%,"arial":font_color obj%,130,0,255 ' on_double_click obj%,DClic ' -- Liste des procédures incorporées --
' BUTTON ' obj%=obj%+1 : B_picture5%=obj% ' O_Button_Picture(obj%,7009,TB_Pan%,0,1,5,995,20,20,Pict$(5),Pict$(6)) ' hint B_picture5%,"Liste des procédures" ' LIST ' obj%=obj%+1 : List_Sub2%=obj% ' O_List(obj%,TB_Pan%,0,30,970,380,210,"",1):cursor_point obj% ' font_name obj%,"arial":font_color obj%,140,105,255 ' on_double_click obj%,DClic ' -- Bouton d' ajout à la base d' un mot clef ou d' une procédure --
' BUTTON ' obj%=obj%+1 : B_picture6%=obj% ' O_Button_Picture(obj%,7011,TB_Pan%,0,1,5,1160,20,20,Pict$(7),Pict$(8)) ' hint B_picture6%,"Ajouter un item "
' -- TAB --
' TAB obj% = obj% + 1 : Tableur%=obj% if variable("TAB_table%")=0 then dim TAB_table%(200) if variable("TAB_count%")=0 then dim TAB_count% if variable("TAB_f$")=0 then dim TAB_f$ if variable("TAB_a$")=0 then dim TAB_a$ TAB_create(obj%,480,760,5,205,5,img$) TAB_count% = TAB_count% + 1 TAB_table%(TAB_count%) = Tableur% TAB_parent(obj%,TB_Pan%) TAB_label(Tableur%,1,"Main.ppe") TAB_label(Tableur%,2,"Dec_Var.ppe") TAB_label(Tableur%,3,"Dec_Lab.ppe") TAB_label(Tableur%,4,"Labels.ppe") TAB_label(Tableur%,5,"Subs.ppe") TAB_tab_color(obj%,1,235,235,235) TAB_tab_color(obj%,2,229,229,255) TAB_tab_color(obj%,3,255,229,229) TAB_tab_color(obj%,4,229,255,229) TAB_tab_color(obj%,5,255,255,200) obj%=obj%+1 ' EDIT obj%=obj%+1 : RE1_Edit%=obj% O_Edit(obj%,0,0,0,0,0,0,"",1) ' EDIT obj%=obj%+1 : RE2_Edit%=obj% O_Edit(obj%,0,0,0,0,0,0,"",1) ' EDIT obj%=obj%+1 : RE3_Edit%=obj% O_Edit(obj%,0,0,0,0,0,0,"",1) ' EDIT obj%=obj%+1 : RE4_Edit%=obj% O_Edit(obj%,0,0,0,0,0,0,"",1) ' EDIT obj%=obj%+1 : RE5_Edit%=obj% O_Edit(obj%,0,0,0,0,0,0,"",1) ' RICHEDIT (main)(Dec_Var)(Dec_Lab)(Labels)(Subs) RE%(1) = dll_call2("RichEditCreateWithEvent",handle(TB_Pan%),handle(RE1_Edit%)) ' TAB_RE_add(Tableur%,1,RE%(1)) RE%(2) = dll_call2("RichEditCreateWithEvent",handle(TB_Pan%),handle(RE2_Edit%)) ' TAB_RE_add(Tableur%,2,RE%(2)) RE%(3) = dll_call2("RichEditCreateWithEvent",handle(TB_Pan%),handle(RE3_Edit%)) ' TAB_RE_add(Tableur%,3,RE%(3)) RE%(4) = dll_call2("RichEditCreateWithEvent",handle(TB_Pan%),handle(RE4_Edit%)) ' TAB_RE_add(Tableur%,4,RE%(4)) RE%(5) = dll_call2("RichEditCreateWithEvent",handle(TB_Pan%),handle(RE5_Edit%)) ' TAB_RE_add(Tableur%,5,RE%(5)) for i%=1 to 5 res% = dll_call5("RichEditGeometry",RE%(i%),5,5,750,455) res% = dll_call3("RichEditFunction",RE%(i%),9,3) ' res% = dll_call3("RichEditFunction",RE%(i%),10,0) next i% TAB_RE_add(Tableur%,1,RE%(1)) TAB_RE_add(Tableur%,2,RE%(2)) TAB_RE_add(Tableur%,3,RE%(3)) TAB_RE_add(Tableur%,4,RE%(4)) TAB_RE_add(Tableur%,5,RE%(5))
' -- StatutBar --
obj%=obj%+1 : SB%=obj% O_Statut_Bar(obj%,0,1,1)
obj%=obj%+1 : SB_alpha%=obj% O_Alpha(obj%,0,1,top(sb%)+3,10,0,0,""):color SB_alpha%,230,230,230 font_name obj%,"arial":font_color obj%,0,0,250
End_sub
Sub Init_TB() dim_local x%,h$,ic$ TB_res% = dll_call4("CreateToolbar",handle(0),handle(TB_Edit%),0,TB_Position%) TB_res% = dll_call4("ModifyToolbar",7,TB_IcoSize%,0,0) Adapter_Container() TB_res% = dll_call4("ModifyToolbar",2,0,0,0) TB_res% = dll_call4("ModifyToolbar",5,adr(TB_Lib$),0,0) TB_icon$(1) = " " TB_icon$(2) = " " TB_icon$(3) = " " TB_icon$(4) = " " TB_icon$(5) = " " TB_icon$(6) = " " TB_icon$(7) = " " TB_icon$(8) = " " TB_icon$(9) = " " TB_icon$(10)= "USER_1" TB_icon$(11)= "USER_2" TB_icon$(12)= "USER_3" TB_icon$(13)= "USER_15" TB_icon$(14)= "USER_4" TB_icon$(15)= "USER_5" TB_icon$(16)= "USER_6" TB_icon$(17)= "USER_7" TB_icon$(18)= " " TB_icon$(19)= " " TB_icon$(20)= " " TB_icon$(21)= " " TB_icon$(22)= " " TB_icon$(23)= " " TB_icon$(24)= " " TB_icon$(25)= " " TB_icon$(26)= " " TB_icon$(27)= " " TB_icon$(28)= " " TB_icon$(29)= " " TB_icon$(30)= "USER_10" TB_icon$(31)= "USER_15" TB_icon$(32)= "USER_13" TB_icon$(33)= "USER_12" TB_icon$(34)= "USER_15" TB_icon$(35)= "USER_11" TB_icon$(36)= "USER_14" TB_icon$(37)= "USER_15" TB_icon$(38)= "USER_8" TB_icon$(39)= "USER_9"
TB_hint$(1) = "" TB_hint$(2) = "" TB_hint$(3) = "" TB_hint$(4) = "" TB_hint$(5) = "" TB_hint$(6) = "" TB_hint$(7) = "" TB_hint$(8) = "" TB_hint$(9) = "" TB_hint$(10)= "Couper" TB_hint$(11)= "Copier" TB_hint$(12)= "Coller" TB_hint$(13)= "" TB_hint$(14)= "Gras" TB_hint$(15)= "Italique" TB_hint$(16)= "Souligné" TB_hint$(17)= "Couleur de police" TB_hint$(18)= "" TB_hint$(19)= "" TB_hint$(20)= "" TB_hint$(21)= "" TB_hint$(22)= "" TB_hint$(23)= "" TB_hint$(24)= "" TB_hint$(25)= "" TB_hint$(26)= "" TB_hint$(27)= "" TB_hint$(28)= "" TB_hint$(29)= "" TB_hint$(30)= "Boite à outils" TB_hint$(31)= "" TB_hint$(32)= "Mots clef" TB_hint$(33)= "Procédures" TB_hint$(34)= "" TB_hint$(35)= "Preview" TB_hint$(36)= "Compile" TB_hint$(37)= "" TB_hint$(38)= "Aide Panoramic" TB_hint$(39)= "Aide KGF.dll"
for x%=1 to 39 h$=TB_hint$(x%) ic$=TB_icon$(x%) TB_res% = dll_call4("AddButtonToToolbar",x%,x%-1,adr(h$),adr(ic$)) if ic$="USER_15" TB_res% = dll_call4("ModifyToolbar",3,x%,0,0) end_if next x% End_sub
Sub Adapter_Container() select TB_Position% case 0 top TB_Pan%,TB_IcoSize%+10 width TB_Pan%,(width(0)-chg_hor%) height TB_Pan%,(height(0)-chg_ver%)-33 case 1 left TB_Pan%,TB_IcoSize%+12 width TB_Pan%,(width(0)-chg_hor%) height TB_Pan%,(height(0)-chg_ver%) case 2 width TB_Pan%,(width(0)-chg_hor%) height TB_Pan%,(height(0)-chg_ver%) case 3 width TB_Pan%,(width(0)-chg_hor%) height TB_Pan%,(height(0)-chg_ver%) end_select End_sub
' ---- FORM OUVERTURE D UN PROJET ----
Sub Form_open_project() dim_local a$,b$,b%,x% if Form_open_project% >0 show Form_open_project% else obj%=obj%+1 : Form_open_project%=obj% O_Form(obj%,0,1,top(0),left(0),400,300,"Liste des projets") obj%=obj%+1 : OP_liste%=obj% O_List(obj%,Form_open_project%,1,5,5,100,100,"",1) end_if clear OP_liste% dir_change user$ a$=file_find_first$ a$=file_find_next$ if left$(a$,1)<>"." b%=0 for x%=1 to len(a$):b$=mid$(a$,x%,1):if b$=".":b%=1:exit_for:end_if:next x% if b%=0 : item_add OP_liste%,a$ :end_if end_if while a$<>"_" a$=file_find_next$ if left$(a$,1)<>"." b%=0 for x%=1 to len(a$):b$=mid$(a$,x%,1):if b$=".":b%=1:exit_for:end_if:next x% if b%=0 : item_add OP_liste%,a$ :end_if end_if end_while file_find_close End_sub
' ---- FORM OUTILS ----
Sub Form_Tools() if Form_tools% >0 Show Form_tools% else obj%=obj%+1 : Form_tools%=obj% O_Form(obj%,0,1,top(0),left(0)+700,250,300,"Boite à outils")
' -- Boutons de sélection de la boite à outils --
' BUTTON (Outils string) obj%=obj%+1 : B_picture7%=obj% O_Button_Picture(obj%,7013,Form_tools%,0,1,5,5,20,20,Pict$(9),Pict$(10)) hint B_picture7%,"Outils Strings"
' BUTTON (Outils code des touches) obj%=obj%+1 : B_picture8%=obj% O_Button_Picture(obj%,7015,Form_tools%,0,1,5,30,20,20,Pict$(9),Pict$(10)) hint B_picture8%,"Outils Code des touches"
' BUTTON (Outils couleur) obj%=obj%+1 : B_picture9%=obj% O_Button_Picture(obj%,7017,Form_tools%,0,1,5,55,20,20,Pict$(11),Pict$(12)) hint B_picture9%,"Outils RVB > Couleurs - Couleurs > RVB"
' -- Boite à outils strings --
' CONTAINER obj%=obj%+1 : Cont1%=obj% O_Container(obj%,Form_tools%,1,30,5,180,275,"")
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont1%,1,20,10,0,0,"ASC") font_name obj%,"arial":font_bold obj% : font_underline obj% font_color obj%,0,0,200
' EDIT obj%=obj%+1 :ASC_edit%=obj% O_Edit(obj%,Cont1%,1,40,10,0,30,"",0)
' BUTTON obj%=obj%+1 :ASC_button%=obj% O_Button(obj%,Cont1%,1,40,50,20,20,">>",1) font_bold obj%
' ALPHA obj%=obj%+1 :ASC_result%=obj% ASC_result$="ASC("+chr$(34)+"A"+chr$(34)+")=65" O_Alpha(obj%,Cont1%,1,43,80,0,0,ASC_result$) font_name obj%,"arial" :font_bold obj% : font_size obj%,10
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont1%,1,70,10,0,0,"Chr$ (0-255)") font_name obj%,"arial":font_bold obj% : font_underline obj% font_color obj%,0,0,200
' EDIT obj%=obj%+1 :CHR_edit%=obj% O_Edit(obj%,Cont1%,1,90,10,0,30,"",0)
' BUTTON obj%=obj%+1 :CHR_button%=obj% O_Button(obj%,Cont1%,1,90,50,20,20,">>",1) font_bold obj%
' ALPHA obj%=obj%+1 :CHR_result%=obj% CHR_result$="Chr$(65)="+chr$(34)+"A"+chr$(34) O_Alpha(obj%,Cont1%,1,93,80,0,0,CHR_result$) font_name obj%,"arial" :font_bold obj% : font_size obj%,10
' -- Boite à outils code des touches --
' EDIT (caché) obj%=obj%+1 : Pict_bidon%=obj% O_Edit(obj%,Form_tools%,1,40,20,0,10,"",0)
' CONTAINER obj%=obj%+1 : Cont1%=obj% O_Container(obj%,Form_tools%,1,30,5,180,275,"")
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont1%,1,20,10,0,0,"ASC") font_name obj%,"arial":font_bold obj% : font_underline obj% font_color obj%,0,0,200
' EDIT obj%=obj%+1 :ASC_edit%=obj% O_Edit(obj%,Cont1%,1,40,10,0,30,"",0)
' BUTTON obj%=obj%+1 :ASC_button%=obj% O_Button(obj%,Cont1%,1,40,50,20,20,">>",1) font_bold obj%
' ALPHA obj%=obj%+1 :ASC_result%=obj% ASC_result$="ASC("+chr$(34)+"A"+chr$(34)+")=65" O_Alpha(obj%,Cont1%,1,43,80,0,0,ASC_result$) font_name obj%,"arial" :font_bold obj% : font_size obj%,10
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont1%,1,70,10,0,0,"Chr$ (0-255)") font_name obj%,"arial":font_bold obj% : font_underline obj% font_color obj%,0,0,200
' EDIT obj%=obj%+1 :CHR_edit%=obj% O_Edit(obj%,Cont1%,1,90,10,0,30,"",0)
' BUTTON obj%=obj%+1 :CHR_button%=obj% O_Button(obj%,Cont1%,1,90,50,20,20,">>",1) font_bold obj%
' ALPHA obj%=obj%+1 :CHR_result%=obj% CHR_result$="Chr$(65)="+chr$(34)+"A"+chr$(34) O_Alpha(obj%,Cont1%,1,93,80,0,0,CHR_result$) font_name obj%,"arial" :font_bold obj% : font_size obj%,10
' -- Boite à outils couleurs --
' CONTAINER obj%=obj%+1 : Cont3%=obj% O_Container(obj%,Form_tools%,0,30,5,180,275,"")
' PICTURE obj%=obj%+1 : Pict1%=obj% O_Picture(obj%,Cont3%,1,10,5,80,25,""):color obj%,0,0,0
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont3%,1,12,35,0,0,"R") font_name obj%,"arial" :font_bold obj% : font_size obj%,10 font_color obj%,200,0,0
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont3%,1,42,35,0,0,"G") font_name obj%,"arial" :font_bold obj% : font_size obj%,10 font_color obj%,0,200,0
' ALPHA obj%=obj%+1 O_Alpha(obj%,Cont3%,1,72,35,0,0,"B") font_name obj%,"arial" :font_bold obj% : font_size obj%,10 font_color obj%,0,0,200
' SPIN obj%=obj%+1 : spin_red%=obj% O_Spin(obj%,Cont3%,1,10,50,0,50,0,255):cursor_point obj%
' SPIN obj%=obj%+1 : spin_green%=obj% O_Spin(obj%,Cont3%,1,40,50,0,50,0,255):cursor_point obj%
' SPIN obj%=obj%+1 : spin_blue%=obj% O_Spin(obj%,Cont3%,1,70,50,0,50,0,255):cursor_point obj% end_if End_sub Et maintenant, ça marche parfaitement (j'au utilisé KGF.dll du 25/2/2014). | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 19:04 | |
| On s'est croisé. J'ai adapté aussi l'IDE pour utiliser ce TAB.bas que je viens de poster en avant-première, mais ce n'est pas encore sur le WebDav. Utilise-le - tu verras la différence lorsque tu changes d'onglet...
Prends TAB.bas et GUI.bas ci-dessus, et ce sera bon. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 25 Fév 2014 - 20:34 | |
| GENIAL Klaus !!! Tout fonctionne !!! Bref j' ai pris TAB.bas + tes modifs de GUI.bas. Le GUI.bas avait un peu évolué depuis... Bref, je suis aux anges... edit: d' ici peu je mettrai une version finie au niveau du GUI | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 20:50 | |
| Super.
Bientôt, je vais intégrer le nouveau TAB.bas dans l'IDE. Je vais aussi mettre à jour la doc de l'IDE pour expliquer les contraintes d'utilisation des objets Tab et RichEdit. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 21:26 | |
| Nouvelle version: IDE V1.0.27 du 25/02/2014
Nouveauté: correction de l'affichage d'un objet Tab généré par l'IDE
Modules modifiés: IDE.exe IDE.chm IDE.doc IDE.pdf TAB.rtf
Lors de la génération d'un projet contenant au moins un objet Tab, l'IDE génère un fichier dont le nom est le nom du projet, suivi de "_TAB.bas". Ce fichier peut être utilisé indépendemment de l'IDE, par un simple #INCLUDE, pour avoir accès aux procédures qui gèrent les objets Tab. Elles sont documentées dans TAB.rtf. Mais attention: il est conseillé de renommer alors ce fichier, en TAB.bas par exemple. | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 23:35 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mar 25 Fév 2014 - 23:59 | |
| J'ai renommé mon fichier IDE.ini et relancé l'IDE. Il passe bien dans le dialogue de recherche de l'éditeur. Je le sélectionne dans c:\Program files\Panoramic Editor\... et tout se passe bien.
Et l'IDE n'utilise pas KGF.dll pour cela. Tout se passe par des appels API directs.
Place IDE.exe dans un dossier dans lequel le programme a le droit d'écriture, vérifie que IDE.ini est absent, pis relance-le. Il devrait passer immédiatement dans le dialogue de recherche de l'éditeur, avant de faire autre chose... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Début d'un autre IDE Mer 26 Fév 2014 - 0:12 | |
| j'ai renommé en IDE.ini et ça a suffit pour que tout rentre dans l'ordre | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début d'un autre IDE Mer 26 Fév 2014 - 0:15 | |
| ??? Alors, quel était son nom, auparavant ? | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Début d'un autre IDE Mer 26 Fév 2014 - 0:39 | |
| IDE tout court Le pb est revenu au deuxième essai Mais en déplaçant IDE.ini sur le bureau ça fonctionne J'ai verifié sur plusieurs essais bonsoir et merci | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: V1.0.28 du 07/03/2014 - MIN,MAX,POSITION pour SPIN Ven 7 Mar 2014 - 12:49 | |
| Nouvelle version: IDE V1.0.28 du 07/03/2014
Nouveauté: Propriétés MIN,MAX,POSITION pour SPIN
Modules modifiés: IDE.exe
J'ai ajouté ces 3 propriétés pour l'objet SPIN. Je les avais oubliés. Pas de changement de la doc. les sources sont à jour. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 7 Mar 2014 - 13:25 | |
| Je vais mettre à jour... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Début d'un autre IDE Sam 22 Mar 2014 - 0:31 | |
| Salut une chose m' échappée dans l'IDE no% prend un valeur qui s’incrémente de 1 à chaque objet crée Ca j'ai compris Mais ( au risque de paraitre ridicule) je ne vois pas comment appeler dans un programme chacun des objets: charger une image dans le picture 3 par exemple On ne sait plus que la valeur de no% pour cet objet | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 22 Mar 2014 - 0:54 | |
| Si no% est incrémenté de +1 Chaque objet à sa variable qui prend la valeur de no%
ex : on incrémente no% et on passe la valeur de no% à la variable Edit_form0% qui représentera le numéro de l' objet Edit
no%=no%+1 : Edit_form0%=no%
on déclare l' objet ( no% n' ayant pas encore été ré-incrémenté, on utilise no% pour éviter l' usure des doigts sur le clavier avec une variable objet très longue style Edit_du _nom_de_la grand_mere_du_voisin_de_mon_beau_frere%)
Edit no%
Plus tard pour faire référence à cette Edit on mettra Edit_form0% en lieu et place du numéro de l'objet Edit... | |
| | | sergeauze
Nombre de messages : 391 Age : 72 Localisation : Hautes Alpes France Date d'inscription : 09/01/2010
| Sujet: Re: Début d'un autre IDE Sam 22 Mar 2014 - 1:12 | |
| je dois donc accomplir toutes les actions sur l'objet avant avant que no % ne soit incrément si j'ai un scroll-bar avec on change Label etc , et que je veux agir sur un objet crée avant , ça n'est pas possible Ai_je bien compris? Il y a des évidences qui ne me sautent pas forcemént aux yeux | |
| | | Contenu sponsorisé
| Sujet: Re: Début d'un autre IDE | |
| |
| | | | Début d'un autre IDE | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |