Gambas France BETA


Pas de compte ? Incription

ButtonBox

À propos de ce code

de chez nos voisins : https://gambas--buch-de.translate.goog/dwen/doku.php?id=k16:k16.8:start&_x_tr_sl=auto&_x_tr_tl=fr&_x_tr_hl=fr
Traduction en italien et en français
Démonstration de l'utilisation de ButtonBox

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
' Gambas class file

PUBLIC SUB Form_Open()

FMain.Center
FMain.Resizable = TRUE
ButtonBoxProject.Picture = Picture["icon:/16/open"]
ButtonBoxProject.ReadOnly = TRUE
btnList.Enabled = FALSE
btnMakeArchive.Enabled = FALSE

END ' Form_Open()

PUBLIC SUB ButtonBoxProject_Click()

IF Dialog.SelectDirectory() THEN RETURN
ButtonBoxProject.Text = Dialog.Path
btnList.Enabled = TRUE

END ' ButtonBoxProject_Click()

PUBLIC SUB btnList_Click()

DIM aProject AS String[]
DIM sLine AS STRING

TRY aProject = Split(File.Load(ButtonBoxProject.Text &/ ".project"), "\n")
IF ERROR THEN
Message.Error(("Das Verzeichnis enthält kein Gambas3-Projekt!")
WAIT 0.5
ButtonBoxProject.Clear
btnList.Enabled = FALSE
RETURN
ENDIF ' ERROR ?
FOR EACH sLine IN aProject
IF sLine NOT BEGINS "Component=" THEN CONTINUE
sLine = Mid$(sLine, Len("Component=") + 1)
trvFiles.Add(sLine, ("Komponente: ") & sLine)
AddAllFiles(sLine)
NEXT ' sLine
btnMakeArchive.Enabled = TRUE

END ' btnList_Click()

PUBLIC SUB btnClose_Click()

FMain.Close()

END ' btnClose_Click()

'****************************************************************************************
'
PRIVATE SUB AddAllFiles(sComp AS STRING)

DIM sFile AS STRING

FOR EACH sFile IN Dir("/usr/lib/gambas3/", sComp & ".{so,gambas,la,component,info}*")
trvFiles.Add(sFile, sFile,, sComp)
NEXT ' sFile

END ' AddAllFiles(sComp As String)

PUBLIC SUB btnMakeArchive_Click()

DIM sList AS STRING

IF NOT trvFiles.MoveFirst() THEN
DO
IF trvFiles.MoveChild() THEN CONTINUE
DO
sList &= trvFiles.Item.Key & " "
LOOP UNTIL trvFiles.MoveNext()
trvFiles.MoveBack()
trvFiles.MoveParent()
LOOP UNTIL trvFiles.MoveNext()
ENDIF ' Not trvFiles.MoveFirst() ?

Dialog.Filter = [".tar.gz", ("Tar/GZip files")]
IF Dialog.SaveFile() THEN RETURN
IF Dialog.Path NOT ENDS ".tar.gz" THEN Dialog.Path &= ".tar.gz"
sList = Trim$(sList)
SHELL Subst$("cd /usr/lib/gambas3; tar -zcf &1 &2", Dialog.Path, sList)
IF Process.LastValue THEN
Message.Error(("Das ging in die Hose ..."))
ELSE
Message.Info(("Das Archiv wurde erfolgreich angelegt."))
btnList.Enabled = FALSE
btnMakeArchive.Enabled = FALSE
ButtonBoxProject.Clear
trvFiles.Clear
ENDIF ' Process.LastValue ?

END ' btnMakeArchive_Click()

Commentaires