home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Freeware 31 / FreelogHS31.iso / ArgentCompta / Bankperfect / bp.exe / Scripts / Notes / notes.py < prev   
Encoding:
Text File  |  2005-10-02  |  3.1 KB  |  90 lines

  1. import BP, cPickle
  2.  
  3. def LoadNote(Sender):
  4.   i = List.ItemIndex
  5.   if i > -1:
  6.     key = List.Items[i]
  7.     Title.Text = key
  8.     Display.Checked, Memo.Lines.Text = Notes[key]
  9.  
  10. def AddNote(Sender):
  11.   global Notes
  12.   s = Title.Text
  13.   if s == "":
  14.     BP.MsgBox("Vous devez saisir le titre de la note α crΘer", 64)
  15.   else:
  16.     if not Notes.has_key(s) or BP.MsgBox("Mettre α jour la note ½ %s ╗ ?" %s, MB_YESNO+64) == IDYES:
  17.       Notes[s] = (Display.Checked, Memo.Lines.Text)
  18.       Refresh()
  19.  
  20. def DelNote(Sender):
  21.   global Notes
  22.   i = List.ItemIndex
  23.   if i > -1:
  24.     key = List.Items[i]
  25.     if BP.MsgBox("Supprimer la note ½ %s ╗ ?" %key, MB_YESNO+64) == IDYES:
  26.       del Notes[key]
  27.       Refresh()
  28.  
  29. def Refresh():
  30.   i = List.ItemIndex
  31.   k = Notes.keys()
  32.   k.sort()
  33.   List.Items.Text = "\n".join(k)
  34.   if len(k) > 0:
  35.     if i == -1: i = 0
  36.     elif i >= len(k): i = len(k) - 1
  37.     List.ItemIndex = i
  38.     LoadNote(None)
  39.  
  40. f = CreateComponent("TForm", None)
  41. f.SetProps(Width=620, Height=400, Position="poMainFormCenter", Caption="Notes")
  42. f.Font.Name = "Tahoma"
  43. f.Constraints.MinWidth=620
  44. f.Constraints.MinHeight=400
  45.  
  46. g1 = CreateComponent("TGroupBox", f)
  47. g1.SetProps(Parent=f, Caption="Notes", Left=30, Top=30, Width=200, Height=300, Anchors=["akLeft", "akTop", "akBottom"])
  48. List = CreateComponent("TListBox", f)
  49. List.SetProps(Parent=g1, Left=20, Top=20, Width=160, Height=265, Anchors=["akLeft", "akTop", "akBottom"], OnClick=LoadNote)
  50.  
  51. g2 = CreateComponent("TGroupBox", f)
  52. g2.SetProps(Parent=f, Caption="Note sΘlectionnΘe", Left=290, Top=30, Width=300, Height=300, Anchors=["akLeft", "akTop", "akRight", "akBottom"])
  53. L1 = CreateComponent("TLabel", f)
  54. L1.SetProps(Parent=g2, Left=20, Top=35, Caption="Titre :")
  55. Title = CreateComponent("TEdit", f)
  56. Title.SetProps(Parent=g2, Left=80, Top=30, Width=190, Text="", Anchors=["akLeft", "akTop", "akRight"])
  57. Display = CreateComponent("TCheckBox", f)
  58. Display.SetProps(Parent=g2, Left=20, Top=60, Width=230, Caption="Afficher au chargement d'un fichier")
  59. Memo = CreateComponent("TMemo", f)
  60. Memo.SetProps(Parent=g2, Left=20, Top=90, Width=250, Height=190, Anchors=["akLeft", "akTop", "akRight", "akBottom"])
  61.  
  62. BAdd = CreateComponent("TButton", f)
  63. BAdd.SetProps(Parent=f, Caption="½", Left=245, Top=120, Width=30, Height=30, Anchors=["akLeft"], OnClick=AddNote)
  64. BAdd.Font.Size=12
  65.  
  66. BDel = CreateComponent("TButton", f)
  67. BDel.SetProps(Parent=f, Caption="╗", Left=245, Top=160, Width=30, Height=30, Anchors=["akLeft"], OnClick=DelNote)
  68. BDel.Font.Size=12
  69.  
  70. BCnl = CreateComponent("TButton", f)
  71. BCnl.SetProps(Parent=f, Caption="Annuler", Left=400, Top=350, Width=90, Height=25, Anchors=["akRight", "akBottom"], ModalResult=2, Cancel=1)
  72.  
  73. BOK = CreateComponent("TButton", f)
  74. BOK.SetProps(Parent=f, Caption="OK", Left=500, Top=350, Width=90, Height=25, Anchors=["akRight", "akBottom"], ModalResult=1, Default=1)
  75.  
  76. path = "%sScripts\\Notes\\notes.dat" %BP.BankPerfectExePath()
  77. try:
  78.   fl = open(path, "r")
  79.   Notes = cPickle.load(fl)
  80.   fl.close()
  81. except:
  82.   Notes = {}
  83.  
  84. Refresh()
  85. f.ShowModal()
  86.  
  87. if f.ModalResult == 1:
  88.   f = open(path, "w")
  89.   cPickle.dump(Notes, f)
  90.   f.close()