FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» SineCube
Codes des touches avec KEY_DOWN_CODE Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Codes des touches avec KEY_DOWN_CODE Emptypar Marc Hier à 12:22

» Philharmusique
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Codes des touches avec KEY_DOWN_CODE Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Codes des touches avec KEY_DOWN_CODE Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Codes des touches avec KEY_DOWN_CODE Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Codes des touches avec KEY_DOWN_CODE Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Codes des touches avec KEY_DOWN_CODE Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Codes des touches avec KEY_DOWN_CODE Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Codes des touches avec KEY_DOWN_CODE Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Codes des touches avec KEY_DOWN_CODE Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Codes des touches avec KEY_DOWN_CODE Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 Codes des touches avec KEY_DOWN_CODE

Aller en bas 
AuteurMessage
Invité
Invité




Codes des touches avec KEY_DOWN_CODE Empty
MessageSujet: Codes des touches avec KEY_DOWN_CODE   Codes des touches avec KEY_DOWN_CODE EmptyDim 2 Oct 2011 - 0:02

Je laisse de côté pour l'instant, j'ai peut-être une solution au problème que j'ai posé
Revenir en haut Aller en bas
Invité
Invité




Codes des touches avec KEY_DOWN_CODE Empty
MessageSujet: Re: Codes des touches avec KEY_DOWN_CODE   Codes des touches avec KEY_DOWN_CODE EmptyDim 2 Oct 2011 - 8:56

Non j'ai pas de solution!.

INKEY$, n'en parlons pas
Comment peut-on avoir quelque chose de faisable avec la fonction KEY_DOWN_CODE?
Il y a incompatibilité entre cette fonction et la lecture d'un caractère sur un edit.
Dèja qu'un EDIT, on ne peut se servir de la fonction CLIPBOARD_PASTE, et pourquoi?


J'essaie de faire un cache pour pouvoir travailler sur un memo, et y mettre des codes par derrière pour avoir une sortie qui ressemble à quelque chose, et là le html est utile. Mais on n'a pas de moyen pour suivre le curseur. J'avais trouvé une solution, et les essais je les fait au départ sur un EDIT pour voir, mais la fonction KEY_DOWN_CODE sort n'importe quoi!

Les caractères sorties sont tous en majuscules. Pour cela il y a lower$(), mais toutes les "accentualisations" deviennent des chiffres, la virgule, 2 pts, point virgule, et j'en passe, des lettres d'un autre monde, le clavier numérique, des lettres...
C'est le vrai bordel!

Et pourtant je ne vois qu'avec cette instruction pour suivre les touches de direction (et scancode)
Si on veut lire le caractère lors d'un appui sur un EDIT, celui-ci n'existe pas.

Cela fait trois ans que je programme avec ce basic, et cela fait trois ans que je ne trouve pas de solution. Chaque (bonne) idée tombe à l'eau par un blocage inattendu.

J’arrête car je vais dire des choses...
je mets le code avec lequel j'essaye d'avoir quelque chose. Je fais les essais avec on_change, et on_key_down, dans les 2 cas il y a problème.
J'ai retiré les teste avec on_change, je ne pouvais plus déplacer le curseur.
Tel qu'il est là, on peut écrire dans un edit sans accent, déplacer le curseur, effacer sous ou avant et cliquer sur un mot pour retrouver la position.

Code:

' teste pour retouver l'emplacement d'un caractère dans un memo
error_french
REM ON VA VOIR POUR 2CRIRE DANS UN EDIT en se servant de ON_KEY_DOWN
rem pour edit, il en faut 3, gauche, caractère,droite
rem peut-être un edit de récupération. aussi un picture pour positionner l'edit du milieu sur les autres.
label saisie  , set
dim j$, k$ ,k , s ,j , p$ ,ga$ ,dr$ ,x ,set , a ,c

memo 1:font_size 1,10:' pour récupérer les infos

picture 2:left 2,10:top 2,110:width 2,width(0)-50:height 2,30:2d_target_is 2:print_target_is 2:color 2,255,255,255
        2d_pen_color 0,255,0:2d_fill_color 0,255,0 :font_size 2 ,12

edit 5:left 5,10:top 5,150:width 5,width(2) :font_size 5,12  :on_click 5,set
edit 6:left 6,10:top 6,150:width 6,width(2)-200 :color 6,200,255,200 : font_size 6,12  : on_click 6,set

edit 7:left 7,10:top 7,150:width 7,20:color 7,255,255,200 :cursor_hide 7 :font_size 7,12
      ON_KEY_DOWN 7,saisie
    ' on_change 7,saisie
set_focus 7
end
saisie:
  s=KEY_DOWN_SPECIAL
  k=KEY_DOWN_CODE
  if s=1
      off_key_down 7
      repeat:until scancode =0
      on_key_down 7,saisie
      k$=chr$(k) :s=0
  else
      k$=lower$(chr$(k))
  end_if
  item_add 1,"k="+str$(k)
  if k<32 then k$=text$(7)
  item_add 1,k$+"  - " +str$(k)+"  s="+str$(s)

  rem ici on regarde pour les deux EDITs, celui de gauche et selon le curseur ....
  ' d'abord l'EDIT 5 de gauche
 
  ga$=text$(5):dr$=text$(6)
  if k=37
      if len(ga$)>1
        dr$=right$(ga$,1)+dr$
        ga$=left$(ga$,len(ga$)-1)
        text 5,ga$
        text 6,dr$
        p$=ga$
      else
        dr$=ga$+dr$ : text 6,dr$
        ga$=""      : text 5,""
        p$=""
      end_if
  end_if
 
 
 
  ' l'edit de droite
  if k=39
      dr$=text$(6)
      if dr$<>""
        ga$=text$(5)+left$(dr$,1): text 5,ga$
        dr$=mid$(dr$,2,len(dr$)) : text 6,dr$
        p$=ga$
      end_if
  end_if
 
  ' efface arrière code 8
  if k=8 and ga$<>""
      ga$= left$(ga$,len(ga$)-1)
      text 5,ga$
      p$=ga$
  end_if
 
  ' efface sous caractère code 46
  if k=46 and dr$<>""
      dr$=mid$(dr$,2,len(dr$))
      text 6,dr$
      p$=ga$
  end_if

  if instr(" 37 39 8 46 "," "+str$(k)+" ")=0 then p$=p$+k$: text 5,p$

  color 2,255,255,255 :  print_locate 0,0 :print p$
  for j=0 to width(5)
      if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
  next j
  item_add 1,"position:"+str$(j)
  left 7,j+5 +10
  text 7,""
  width 7,1

  left 6,left(7)
  item_add 1,"width:"+str$(j)
  set_focus 7

return

set:
  set=NUMBER_click
  x=MOUSE_X_POSITION(set)
  color 2,255,255,255
  p$= text$(set)
  for a=1 to len(p$)
      print_locate 0,0 :print left$(p$,a)
      for j=0 to width(set)
        if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
      next j
      if j >x or scancode = 27 then exit_for
  next a
  item_add 1, "trouvé:"+left$(p$,a)
  item_add 1,"ga$="+ga$
  item_add 1,"dr$="+dr$

  if set=5
      dr$= mid$(ga$,a,len(ga$))+dr$ :text 6,dr$
      ga$=left$(ga$,a-1) :text 5,ga$

      p$= ga$
      color 2,255,255,255
      print_locate 0,0 :print p$
      for j=0 to width(5)
        if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
      next j

      left 7,j+5+10
      left 6,left(7)
  end_if
 
  if set=6
      ga$=ga$+left$(p$,a) :text 5,ga$
      dr$= mid$(dr$,a+1,len(dr$)) :text 6,dr$

      p$= ga$
      color 2,255,255,255
      print_locate 0,0 :print p$
      for j=0 to width(5)
        if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
      next j

      left 7,j+5+10
      left 6,left(7)
  end_if
 
  set_focus 7
return
Revenir en haut Aller en bas
659_minifly




Nombre de messages : 590
Age : 75
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

Codes des touches avec KEY_DOWN_CODE Empty
MessageSujet: Re: Codes des touches avec KEY_DOWN_CODE   Codes des touches avec KEY_DOWN_CODE EmptyDim 2 Oct 2011 - 10:05

Impossible de faire tourner ton prog

erreur(52)expression string incorrect:"appel interdit d'une fonction avec valeur negative ou nulle ligne : 115
dés que je clique sur une fenetre edit j'ai cette erreur
Revenir en haut Aller en bas
Invité
Invité




Codes des touches avec KEY_DOWN_CODE Empty
MessageSujet: Re: Codes des touches avec KEY_DOWN_CODE   Codes des touches avec KEY_DOWN_CODE EmptyDim 2 Oct 2011 - 10:16

Bonjour,
ça ne fonctionne pas car tu cliques sur un edit vide.
En faite, il faut écrire directement pour remplir les edits. C'est un programme pour essayer, et tout n'est pas contrôlé.
Pour ramener le curseur , il faut cliquer sur du texte, soit à gauche, soit à droite, et non sur la partie vide.

Mais je crois que j'ai la solution! Et c'est tant mieux.
Revenir en haut Aller en bas
Invité
Invité




Codes des touches avec KEY_DOWN_CODE Empty
MessageSujet: Re: Codes des touches avec KEY_DOWN_CODE   Codes des touches avec KEY_DOWN_CODE EmptyDim 2 Oct 2011 - 12:00

Enfin j'ai réussi
J'ai enfin pu connaitre les position du curseur dans un memo


En cliquant n'importe où dans un memo, je peux connaitre la position du curseur.
En me déplaçant en tout sens également.
Je vais enfin pouvoir envisager certaines choses concrètes, et avoir le contrôle sur ce que je veux faire. Enfin du bonheur!

Code:


left 0,800 :height 0,height(0)+100
label set  , trouver  , teste
dim p$,x,y,a,j,ga$,dr$,set ,a$ ,pos ,k ,lig

memo    1:height 1,200
picture 2:top 2,230:width 2,width(0)-50:height 2,30:2d_target_is 2:print_target_is 2
        color 2,255,255,255:2d_pen_color 0,255,0:2d_fill_color 0,255,0 :font_size 2 ,12

memo    4:top 4,300:width 4,width(0)-50:height 4,220:font_size 4,12 : cursor_cross 4
        on_click 4,trouver
        item_add 4,"color 2,255,255,255"
        item_add 4,"print_locate 0,0 :print p$"
        item_add 4,"for j=0 to width(5)"
        item_add 4,"  if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for" +chr$(0)
       
set_focus 4
ON_KEY_DOWN 4,teste

end
' --------------------------------------------------
set:
  set=NUMBER_click
  x=MOUSE_X_POSITION(set)
  color 2,255,255,255
  p$= text$(set)
  for a=1 to len(p$)
      print_locate 0,0 :print left$(p$,a)
      for j=0 to width(set)
        if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
      next j
      if j >x or scancode = 27 then exit_for
  next a
  item_add 1, "trouvé:"+left$(p$,a)
  item_add 1,"ga$="+ga$
  item_add 1,"dr$="+dr$

  if set=5
      dr$= mid$(ga$,a,len(ga$))+dr$
      ga$=left$(ga$,a-1)
      p$= ga$
      color 2,255,255,255
      print_locate 0,0 :print p$
      for j=0 to width(5)
        if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
      next j
  end_if

  if set=6
      ga$=ga$+left$(p$,a)
      dr$= mid$(dr$,a+1,len(dr$))
      p$= ga$
      color 2,255,255,255
      print_locate 0,0 :print p$
      for j=0 to width(5)
        if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
      next j
  end_if
  set_focus 4

return

trouver:
  set=NUMBER_click
  x=MOUSE_X_POSITION(set)
  y=MOUSE_Y_POSITION(set) - 3
  clear 1
  if count(4)>0
      a= int(y /20 )+1
      a$= item_read$(4,a) :item_add 1,a$
      for a=1 to len(a$)
        p$=left$(a$,a)
        color 2,255,255,255
        print_locate 0,0 :print p$
        for j=0 to width(4)
            if COLOR_PIXEL_BLUE(2,j,5)=255 then exit_for
        next j
        if j >x then exit_for
      next a
  end_if
     
  item_add 1,"x:"+str$(x)+"  y:"+str$(y)
  item_add 1,"ligne:"+str$( int( (y-0)/20 )+1 )
  item_add 1,"colonne:"+str$(a)+" len(p$)="+str$(len(p$))
 
return
teste:
  clear 1 :pos=0
  k=KEY_DOWN_CODE
  item_add 1,"KEY_DOWN_CODE="+str$(K)
  clipboard_string_copy "©️"
  clipboard_paste 4
  if count(4)>0
      for a=1 to count(4)
        a$=item_read$(4,a) :lig=a
        x=instr( a$,"©️")
        if x>0
            p$=left$(a$,x-1)+mid$(a$,x+1,len(a$))
            item_delete 4,a
            if a<=count(4) then item_insert 4,a,p$:else:item_insert 4,a,p$+chr$(0)
            rem maintenant, il faut positionner le curseur! caret_position n,p
            ' il faut rectifier la ligne selon le code du curseur
            if k=38 and a>1 then lig=lig-1
            if k=40 and a<count(4) then lig=lig+1
            item_add 1,"ligne:"+str$(lig)
            item_add 1,"colonne:"+str$(x)
            item_add 1,left$(a$,x-1)
            exit_for
        end_if
        pos=pos+len(a$)+2
      next a
      pos=pos+x-1
      caret_position 4,pos
  end_if
return

Bonne appétit!

D'ailleurs je vais également mettre ce code dans les trucs à partager pour le retrouver.
Je vais la faire modeste: un petit code, un grand pas dans l'humanité! Very Happy

Il y a encore quelques petites erreurs dans le déplacement en bout de ligne sur les colonnes, mais facile à corriger. Je verrais plus tard.
Revenir en haut Aller en bas
Contenu sponsorisé





Codes des touches avec KEY_DOWN_CODE Empty
MessageSujet: Re: Codes des touches avec KEY_DOWN_CODE   Codes des touches avec KEY_DOWN_CODE Empty

Revenir en haut Aller en bas
 
Codes des touches avec KEY_DOWN_CODE
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Codes touches
» Problème d'envoi de touches à une application.
» Touches de raccourcis
» Piano à 88 touches
» Combinaison de touches

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: