Renvoyer le nombre de caractères sélectionné dans un éditor

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Shadow
Messages : 1428
Inscription : mer. 04/nov./2015 17:39

Renvoyer le nombre de caractères sélectionné dans un éditor

Message par Shadow »

Salut,

J'ai pas trouver comment Renvoyer le nombre de caractères sélectionné dans un editor gadget, dans les tutos, ni dans mes affaires.
Une cht'ite idée svp ?
AMD Ryzen 5 3600 (6 cœurs / 12 threads, Socket AM4)
Gainward GeForce RTX 3070 (8 GB GDDR6)
ASUS PRIME A320M-K (chipset AMD A320)
64 GB DDR4-3200
Asus 24 Pouces: 1920 x 1080.
Système: Windows 10 64 Bits.

PureBasic: 6.30 beta 4 x64 Bits.
Avatar de l’utilisateur
falsam
Messages : 7341
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Renvoyer le nombre de caractères sélectionné dans un édi

Message par falsam »

Avec API Windows

Code : Tout sélectionner

EnableExplicit 

Enumeration window
  #mf
EndEnumeration

Enumeration gadget
  #editor
EndEnumeration

Enumeration shortcut
  #ctrlC
EndEnumeration

Procedure GetSelectString()
  Protected Range.CHARRANGE, Size

  SendMessage_(GadgetID(#editor), #EM_EXGETSEL, 0, Range)
  Size = (Range\cpMax - Range\cpMin)
  Debug Size
EndProcedure

If OpenWindow(#mf, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  EditorGadget(#editor, 8, 8, 306, 133)
  
  ; Interception de la touche Ctrl-C
  AddKeyboardShortcut(#mf, #PB_Shortcut_Control | #PB_Shortcut_C, #ctrlC)
  
  ; Evenement Ctrl-C
  BindEvent(#PB_Event_Menu, @GetSelectString(), #mf, #ctrlC)
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
@Olivier : Oui Size n'est pas signé !!! Et alors hein ? :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.23 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Shadow
Messages : 1428
Inscription : mer. 04/nov./2015 17:39

Re: Renvoyer le nombre de caractères sélectionné dans un édi

Message par Shadow »

Merci Falsam :)
AMD Ryzen 5 3600 (6 cœurs / 12 threads, Socket AM4)
Gainward GeForce RTX 3070 (8 GB GDDR6)
ASUS PRIME A320M-K (chipset AMD A320)
64 GB DDR4-3200
Asus 24 Pouces: 1920 x 1080.
Système: Windows 10 64 Bits.

PureBasic: 6.30 beta 4 x64 Bits.
Répondre