EPB

Programmation d'applications complexes
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

Kwai chang caine a écrit :En voyant ce post, la première question qui m'est venue, c'est pourquoi créer un Xieme IDE pour PB ??? :roll:
La réponse pour le FUN, peut en être une, c'est vrai, mais bon :roll:
Et pourquoi ne pas être parti du code de Japbe pour encore l'améliorer ???? :roll:
heu ! t'as deja ouvert le source de Japbe ??
si tu le fait tu aura ta réponse !

en soit EPB est peut etre moins évolué que JAPBE , mais il est vachement plus clair .. :)
l'emplois de la Librairie Go_scintilla de SROD, auquel j'ai ajouté mes propres fonctions
y est pour beaucoup ....:)

La première chose qui m'a choqué c'est cette manie que tu as de ne jamais mettre de majuscules au début des mots ou des phrases
oui ben c'est pas la mort non plus , enfin en principe c'est corrigé :)
Autrement j'ai trouvé que les accès aux panneaux de propriété étaient lents, je pense qu'il doit lire noir de choses à lire ce qui le ralentisse
là aussi ça devrai allez mieux ... ;)
En tout cas bravo pour ton travail et ta réactivité, c'est sur que sur ce point précis...FRED à des leçons à prendre :mrgreen:
Merci :)



@MLD :
Ce qui serait bien c'est de voir plus de lignes que 3 sans réduire l'éditeur de code:roll:
ben je le programme pour qu'il tourne sur mon NC10 Rez 1024X600 comme la majorité des NetBook :)

ça explique la resolution de timbre post :)

mais si tu agrandi la fenetre , et que tu redispose le Spiltergadget , ça doit concerver tes réglages ....

Je rappel a chaque Version effacez le Fichier de Preferences pour éviter les conflits lié
a l'evolution du code.. :)
je sais que c'est pas tres cool , mais je suis encore en phase de dev..
Désolé, mais je viens de trouver un bug. Si tu déplace les fenêtres outils tu éfface l'interface principale :?
Ja sais je suis chiant :lol:
Pas de problemes , :)
Merci , c'est reglé dans la

V1.16.2
http://michel.dobro.free.fr/download.php?view.23


j'ai reduit la taille de la musique du Greeting ,
Mis des Majuscules ou je pouvais
corrigé le bug trouvé par MLD

Merci :)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: EPB

Message par jbernard13 »

dobro comment tu as fait pour crée un editeur ?
svp

sur quel base tu es parti?
Jbernard13
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

jbernard13 a écrit :dobro comment tu as fait pour crée un editeur ?
svp

sur quel base tu es parti?
ben sur aucune base .. :roll:

j'ai lancé Japbe, et j'ai commencé a coder ..
j'ai voulu regarder dans les sources de Japbe pour voir comment c'etait fait
j'ai rien compris , alors je suis partie de rien ... :)

en Purebasic , on a deja un langage bien complet
et en plus il existe des librairies qui allonge le langage
(PureResize,PureColor,...Etc ) ; il suffit de t'en servir ;)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: EPB

Message par jbernard13 »

merci de ta réponse si j'ai bien compris tu as utiliser le format RTF ?
Jbernard13
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: EPB

Message par Chris »

Ça s'améliore, ton affaire.

Bon. J'ai pas trouvé de bugs dans ton IDE, (faut dire que j'en ai pas cherché non plus... :mrgreen: ), mais par contre, j'ai 2 réclamations à faire sur l'outil "Table de caractères".
1 - Si t'as de bons yeux, tu peux t'en servir, sinon, t'achètes une loupe : Les caractères sont trop petits :(
2 - Franchement, c'est pas pour te vexer parce que les goûts et les couleurs... comme on dit, mais le skin de cet outil est, euh... comment dire... par politesse, je dirai Spécial. (Si j'étais pas poli, je dirais "A chier", mais bon... je suis poli, alors...!) :mrgreen:

PS : Pour la musique des greetings, je voudrais pas trop m'avancer, mais il me semble que c'est celle de MAUPITI ISLANDS. (T'as dit que c'était pour les plus vieux. Tu comprends, maintenant, pourquoi je trouve que les caractères de la table sont trop petits) :roll:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

Chris a écrit :.
1 - Si t'as de bons yeux, tu peux t'en servir, sinon, t'achètes une loupe : Les caractères sont trop petits :(
ha ! ok je ferai plus gros, mais je vais mettre au chomage quelques vendeur de loupe :)
2 - Franchement, c'est pas pour te vexer parce que les goûts et les couleurs... comme on dit, mais le skin de cet outil est, euh... comment dire... par politesse, je dirai Spécial. (Si j'étais pas poli, je dirais "A chier", mais bon... je suis poli, alors...!) :mrgreen:
moi j'aime bien ... :)
mais je tiens compte de ta remarque :)
PS : Pour la musique des greetings, je voudrais pas trop m'avancer, mais il me semble que c'est celle de MAUPITI ISLANDS. (T'as dit que c'était pour les plus vieux. Tu comprends, maintenant, pourquoi je trouve que les caractères de la table sont trop petits) :roll:
YEEES ! tu as gagner le Quizz , dont le gain, etait ma considération immense :D

:lol: avec ça.. t'es content non ? :lol:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: EPB

Message par Chris »

Dobro a écrit :
PS : Pour la musique des greetings, je voudrais pas trop m'avancer, mais il me semble que c'est celle de MAUPITI ISLANDS. (T'as dit que c'était pour les plus vieux. Tu comprends, maintenant, pourquoi je trouve que les caractères de la table sont trop petits) :roll:
YEEES ! tu as gagner le Quizz , dont le gain, etait ma considération immense :D

:lol: avec ça.. t'es content non ? :lol:
Ben merde alors!
Ça rapporte que dalle chez toi, les quizz! 8O

Même pas un filet garni avec une boite de sardines et deux paquets de farine? :(
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: EPB

Message par Chris »

BUG!!!!!!!!!!!!!!!!!!!!!

Quand on veut coller un texte dans l'éditeur alors qu'il y a déjà un code qui est chargé, le code est remplacé par le texte qu'on a collé.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: EPB

Message par Chris »

J'ai mis mon CharMap à la version 4.51. Elle fonctionne avec ton programme.


En voilà une table de caractères qu'elle est visible! :mrgreen:

Code : Tout sélectionner

; CharMap.
; OS = Windows. (A cause des Z'APIS!)
; Auteur :Chris
; -------------------------------------------------------------
;{- Constantes
Enumeration
  #Win_Main
EndEnumeration

Enumeration
  #Cmb_Fonts
  #Img_Preview
  #Txt_Result
  #TxtCopie
  #Chk_Japbe
  #Chk_InsertChr
  #Chk_Sticky
  #Frame3D_Copy
  
  #Btn_CopyAsString
  #Btn_CopyAsChar
  #Btn_CopyAsHex
  #Btn_CopyAsBin
  #Btn_CopyAsDec
  #Btn_CopyAsCar
  #Btn_Erase
EndEnumeration

#STN_CLICKED     = 0
#WMCD_InsertText = 2
;}

;{- Variables, Listes tableaux
Global NewList Fontes.s()
Global NewList Texts.l()
Global CurPos.POINT
Global Dim CommanChars.s(32)

;}

;{- Déclarations
Declare Create_Image(Lettre.s)
Declare EnumFontProc(*lpelf.ENUMLOGFONT, *lpntm.NEWTEXTMETRIC, FontType, lParam)
Declare GetFont_Info()
Declare Hi_Word(Long)
Declare Open_Window_0()
Declare WinCallback(Hwn, Msge, wParam, lParam)
Declare UpdateTexts()
;}

;{- Image vide
CreateImage(10, 255, 250)
StartDrawing(ImageOutput(10))
  Box(0, 0, 255, 250, $FFFFFF)
StopDrawing()
;}

;{- Procédures
Procedure Open_Window_0()
  x_Text = 270 : y_Text = 5 : IdTxt = 1000
  
  If OpenWindow(#Win_Main, 5, 5, 675, 445, "Table des caractères",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar )
    ImageGadget(#Img_Preview, 5, 30, 255, 250, ImageID(10), #PB_Image_Border)
    ComboBoxGadget(#Cmb_Fonts, 5, 5, 260, 20)
    TextGadget(#Txt_Result, 5, 420, 665, 20, "", #PB_Text_Center | #PB_Text_Border | #SS_NOPREFIX)
    SetGadgetFont(#Txt_Result, FontID(2))
    
    TextGadget(#TxtCopie, 5, 290, 170, 20, "", #PB_Text_Center | #PB_Text_Border | #SS_NOPREFIX)
    SetGadgetFont(#TxtCopie, FontID(2))
    
    CheckBoxGadget(#Chk_Sticky, 10, 390, 100, 25, "Toujours devant")
    CheckBoxGadget(#Chk_InsertChr, 130, 390, 100, 25, "Ajouter le ''Chr()''")
    
    Frame3DGadget(#Frame3D_Copy, 5, 320, 260, 65, "Mode de copie")
    
    ButtonGadget(#Btn_CopyAsDec, 10, 340, 80, 20, "Décimal")
    ButtonGadget(#Btn_CopyAsChar, 95, 340, 80, 20, "Char")
    ButtonGadget(#Btn_CopyAsBin, 180, 340, 80, 20, "Binaire")
    ButtonGadget(#Btn_CopyAsHex, 10, 360, 80, 20, "Hexadécimal")
    ButtonGadget(#Btn_CopyAsString, 95, 360, 80, 20, "Chaine")
    ButtonGadget(#Btn_CopyAsCar, 180, 360, 80, 20, "Caractère")
    ButtonGadget(#Btn_Erase, 180, 290, 80, 20, "Effacer")
    
    Sz_L = 25 : Sz_W = Sz_L
    
    For i = 0 To 255
      AddElement(Texts())
      TextGadget(IdTxt, x_Text, y_Text, Sz_L, Sz_W, "", #PB_Text_Center | #PB_Text_Border | #SS_NOTIFY | #SS_NOPREFIX)
      
      Texts() = IdTxt : IdTxt + 1
      x_Text + Sz_L : If x_Text > 660 : x_Text = 270 : y_Text + Sz_W : EndIf
      SetGadgetFont(Texts(), FontID(0))
    Next
    
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

Procedure EnumFontProc(*lpelf.ENUMLOGFONT, *lpntm.NEWTEXTMETRIC, FontType, lParam)
  FnN$ = PeekS(@*lpelf\elfLogFont\lfFaceName[0])
  
  AddElement(Fontes())
  Fontes() = FnN$
  ProcedureReturn #True
EndProcedure

Procedure GetFont_Info()
  hdc = GetDC_(GetDesktopWindow_())
  EnumFontFamilies_(hdc, 0, @EnumFontProc(),0)
  ReleaseDC_ (GetDesktopWindow_(), hdc)
EndProcedure

Procedure UpdateTexts()
  ForEach Texts()
    i = ListIndex(Texts())
    
    SetGadgetFont(Texts(), FontID(0))
    SetGadgetText(Texts(), Chr(i))
  Next
EndProcedure

Procedure Hi_Word(Long)
  ProcedureReturn (Long >>16) & $FFFF
EndProcedure

Procedure WinCallback(Hwn, Msge, wParam, lParam)
  Result = #PB_ProcessPureBasicEvents
  Select Msge
    Case #WM_COMMAND
      If Hi_Word(wParam) = #STN_CLICKED
        ForEach Texts()
          If GadgetID(Texts()) = lParam
            SetGadgetText(#TxtCopie, GetGadgetText(Texts()))
            
            If Texts() >= 1000 And Texts() <= 1031
              DisableGadget(#Btn_CopyAsChar, 1)
            Else
              DisableGadget(#Btn_CopyAsChar, 0)
            EndIf
            
          EndIf
        Next
      EndIf
  EndSelect
  
  ProcedureReturn Result
EndProcedure

Procedure Create_Image(Lettre.s)
  If CreateImage(0, 255, 250)
    StartDrawing(ImageOutput(0))
      DrawingMode(#PB_2DDrawing_XOr ) : DrawingFont(FontID(1))
      W_Lettre = TextWidth(Lettre) : H_Lettre = TextHeight(Lettre)
      Box(0, 0, 255, 250, $FFFFFF)
      DrawText(128 - W_Lettre/2, 128 - H_Lettre / 2, Lettre)
    StopDrawing()
    
    SetGadgetState(#Img_Preview, ImageID(0))
  EndIf
  
EndProcedure
;}

;{- Initialisation
GetFont_Info() : SortList(Fontes(), 2)

If OpenPreferences("CharMap.pref")
  CmbState = ReadPreferenceLong("IdFont", 19)
  StickyState = ReadPreferenceLong("OnTop", 1)
  ChrState = ReadPreferenceLong("AddChr", 0)
  ClosePreferences()
EndIf

SelectElement(Fontes(), CmbState) : LoadFont(0, Fontes(), 12) : LoadFont(1, Fontes(), 140) : LoadFont(2, "Courier New", 11, #PB_Font_Bold)

Restore CommandChar
For i = 0 To 32
  Read.s CommanChars(i)
Next

If Open_Window_0()
  ForEach Fontes()
    AddGadgetItem(#Cmb_Fonts, -1, Fontes())
  Next
  
  SetGadgetState(#Cmb_Fonts, CmbState)
  SetGadgetState(#Chk_Sticky, StickyState)
  SetGadgetState(#Chk_InsertChr, ChrState)
  
  StickyWindow(#Win_Main, GetGadgetState(#Chk_Sticky))
  
  SetWindowCallback(@WinCallback())
Else
  End
EndIf

UpdateTexts()
;}

;{- Boucle
Repeat;{
  GetCursorPos_(@CurPos)
  
  HObjet = WindowFromPoint_(CurPos\x|CurPos\y <<32) : IDWindow = GetWindowLong_(HObjet, #GWL_ID);: Debug IDWindow -1000
  
  If IDWindow >= 1000
    If IDWindow >= 1000 And IDWindow <=1032
      c = IDWindow - 1000
      Ms1$ = CommanChars(IDWindow - 1000) + "     "
      Ms2$ = "Ascii = " + RSet(Str(c), 3, "0") + "     "
      Ms3$ = "Hex = $" + RSet(Hex(c), 2, "0") + "     "
      Ms4$ = "Bin = %" + RSet(Bin(c), 8, "0")
      SetGadgetText(#Txt_Result, Ms1$ + Ms2$ + Ms3$ + Ms4$)
      SetGadgetState(#Img_Preview, ImageID(10))
    Else
      If IDWindow >=1033 And IDWindow <= 1255
        SelectElement(Texts(), IDWindow - 1000)
        C$ = GetGadgetText(Texts()) : c = Asc(C$)
        Ms1$ = "Car. = " + RSet(C$, 1, " ") + "     "
        Ms2$ = "Ascii = " + RSet(Str(c), 3, "0") + "     "
        Ms3$ = "Hex = $" + RSet(Hex(c), 2, "0") + "     "
        Ms4$ = "Bin = %" + RSet(Bin(c), 8, "0")
        SetGadgetText(#Txt_Result, Ms1$ + Ms2$ + Ms3$ + Ms4$)
        Create_Image(GetGadgetText(Texts()))
      EndIf
    EndIf
  EndIf
  
  Select WaitWindowEvent();{
    Case #PB_Event_Gadget
      
      Select EventGadget();{
          
        Case #Cmb_Fonts;{
          If EventType() = #CBN_SELCHANGE
            SelectElement(Fontes(), GetGadgetState(#Cmb_Fonts))
            LoadFont(0, Fontes(), 12) : LoadFont(1, Fontes(), 140)
            UpdateTexts()
            SetGadgetState(#Img_Preview, ImageID(10))
          EndIf;}
          
        Case #Btn_CopyAsBin;{
          c = Asc(GetGadgetText(#TxtCopie))
          
          If GetGadgetState(#Chk_InsertChr) = 1
            Res$ = "chr(%" + Bin(c) + ")"
          Else
            Res$ = "%" + Bin(c)
          EndIf
          SetClipboardText(Res$) ;}
          
        Case #Btn_CopyAsChar;{
          If GetGadgetState(#Chk_InsertChr) = 1
            Res$ = "Chr('"+ GetGadgetText(#TxtCopie) + "')"
          Else
            Res$ = "'"+GetGadgetText(#TxtCopie)+"'"
          EndIf
          SetClipboardText(Res$);}
          
        Case #Btn_CopyAsDec;{
          c = Asc(GetGadgetText(#TxtCopie))
          
          If GetGadgetState(#Chk_InsertChr) = 1
            Res$ = "chr("+Str(c)+")"
          Else
            Res$ =Str(c)
          EndIf
          SetClipboardText(Res$) ;}
          
        Case #Btn_CopyAsHex;{
          c = Asc(GetGadgetText(#TxtCopie))
          
          If GetGadgetState(#Chk_InsertChr) = 1
            Res$ = "chr($"+Hex(c)+")"
          Else
            Res$ = "$"+Hex(c)
          EndIf
          SetClipboardText(Res$) ;}
          
        Case #Btn_CopyAsString;{
          Res$ = Chr(34) + GetGadgetText(#TxtCopie) + Chr(34)
          SetClipboardText(Res$) ;}
          
        Case #Btn_CopyAsCar;{
          Res$ = GetGadgetText(#TxtCopie)
          SetClipboardText(Res$) ;}
          
        Case #Btn_Erase;{
          SetGadgetText(#TxtCopie, "");}
          
        Case #Chk_Sticky;{
          StickyWindow(#Win_Main, GetGadgetState(#Chk_Sticky));}
          
      EndSelect;}
      
    Case #PB_Event_CloseWindow;{
      CreatePreferences("CharMap.pref")
      WritePreferenceLong("IdFont", GetGadgetState(#Cmb_Fonts))
      WritePreferenceLong("OnTop", GetGadgetState(#Chk_Sticky))
      WritePreferenceLong("AddChr", GetGadgetState(#Chk_InsertChr))
      ClosePreferences()
      
      Quit =#True;}
      
  EndSelect;}
Until Quit;}

End;}

;{- Datas

DataSection
  CommandChar:
  Data.s "NUL - Null","SOH - Start Of Header", "STX - Start Of Text", "ETX - End Of Text", "EOT - End Of Transmission", "ENQ - Enquiry", "ACK - Acknowledge", "BEL - Bell"
  Data.s "BS - BackSpace", "HT - Horizontal Tab", "LF - Line Feed", "VT - Vertical Tab", "FF - Form Feed", "CR - Carriage Return", "SO - Shift Out", "SI - Shift In", "DLE - Data Link Escape"
  Data.s "DC1 - (XON) Device Control 1", "DC2 - Device Control 2", "DC3 - (XOFF) Device Control 3", "DC4 - Device Control 4", "NAK - Negative Acknowledge", "SYN - Synchronous IDLE"
  Data.s "ETB - End of Trans. Block", "CAN - Cancel", "EM - End of Medium", "SUB - Substitute", "ESC - Escape", "FS - File Separator", "GS - Group Separator"
  Data.s "RS - Request to Send", "US - Unit Separator", "SP - Space"
EndDataSection;}
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

pas de probleme, je l'integrerai dans l'archive ;)

je venais justement te dire que j'avais modifié mon outils Ascii
en tenant compte de tes remarques... sauf pour l'image, parceque tu ne m'a pas donné
d'image pour remplacer ... :roll: :lol:

meme liens


ps: ton prg sera integré dans la prochaine version :)

je sens que je vais devoir faire une page sur mon site juste pour EPB :)
en mettant a part l'editeur , et les outils :)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: EPB

Message par jbernard13 »

Super ton code Chris , j'apprend un peu plus PB
Jbernard13
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: EPB

Message par Kwai chang caine »

@Chris
Tres joli, merci du partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: EPB

Message par Backup »

Chris a écrit :BUG!!!!!!!!!!!!!!!!!!!!!

Quand on veut coller un texte dans l'éditeur alors qu'il y a déjà un code qui est chargé, le code est remplacé par le texte qu'on a collé.
Corrigé dans la Version 1.16.3 :) Merci


V1.16.3
http://michel.dobro.free.fr/download.php?view.23


dans cette version : Ajout de 2 outils de Chris

CharMap pour choisir un code Ascii
(ps j'ai laissé "EPB_ASCII" comme ça vous avez le choix)

Message_requester_Maker
pour fabriquer en quelques clique un message requester avec icone :)

j'ai aussi retiré le "By Dobro" qui pouvait énerver :lol:

ps: remplacez tout les prg par ceux de cette archive ..bien sur :)
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: EPB

Message par jbernard13 »

merci pour cette version

Message_requester_Maker c'est toi qu'il est code?
Jbernard13
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: EPB

Message par falsam »

Hello Dobro :)
Sous environnement Windows 7, greeting.exe (Menu à propos d'EPB) et son fond musical reste chargé en mémoire, même aprés avoir quitter l'application EPB.

Toujours à propos de greeting.exe, le pointeur de la souris disparaît au lancement.

A part ça bravo pour ce travail.

PS : L'ergonomie n'est pas ce que je préfère, mais ce n'est qu'une question de gout.
Dernière modification par falsam le mar. 26/avr./2011 10:21, modifié 1 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Verrouillé