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
» Logiciel de planétarium.
Codes des touches avec KEY_DOWN_CODE Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Codes des touches avec KEY_DOWN_CODE Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Codes des touches avec KEY_DOWN_CODE Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Codes des touches avec KEY_DOWN_CODE Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Codes des touches avec KEY_DOWN_CODE Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Codes des touches avec KEY_DOWN_CODE Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Codes des touches avec KEY_DOWN_CODE Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Codes des touches avec KEY_DOWN_CODE Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Codes des touches avec KEY_DOWN_CODE Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Codes des touches avec KEY_DOWN_CODE Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Codes des touches avec KEY_DOWN_CODE Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Codes des touches avec KEY_DOWN_CODE Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Codes des touches avec KEY_DOWN_CODE Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Smartphone Xiaomi 14 – 512 Go- 6,36″ 5G ...
Voir le deal
599 €

 

 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 : 76
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
» Envoi de touches à une application.
» Combinaison de touches
» Problème d'envoi de touches à une application.
» Piano à 88 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: