dapet chat dari C# junior developer.
"Bang, kenapa cuma nambahin fungsi Limiter(INTEGER) kenapa 2 jam sih?"
Okay sebagai programmer c#, aku tahu kok ngasih limiter itu tinggal drag and drop numericupdown lalu bind dengan app data (automatic ), and youre done ( 5 menit paling lama)
Oke, tak breakdown satu persatu di golang.
Konsepnya adalah CLIENT ngerubah nilai limiter ( di program ), dan otomatis ke save dan berubah tiap program di eksekusi.
Di golang.
GUI:
di golang kamu bikin dulu gui nya, aku gunain lxn/walk, tentuin ukurannya columnspan, lalu build and test ( berkali2), karena nggak ada VISUAL DESIGNER di golang ( kecuali pake qt, tapi karena itu harus compiling sendiri dsbnya. RIBET (baca males)).
done dengan urusan GUI.
STRUCT
=================
create struct untuk nyimpan baca dan simpen valuenya
type DelayApp struct {
DelayMsg int `json:"delayMsg"`
DelayPerRun int `json:"delayPerRun"`
DelaySmart int `json:"delaySmart"`
}
lalu create function
READ delay
=================
func readDelayApp() DelayApp {
var delayapp DelayApp
filename := "delayapp.json"
//filename is the path to the json config file
file, _ := os.Open(filename)
byteValue, _ := ioutil.ReadAll(file)
defer file.Close()
//fmt.Println(byteValue)
//var result map[string]interface{}
json.Unmarshal([]byte(byteValue), &delayapp)
//fmt.Println(delayapp.delayMsg)
return delayapp
}
lalu bikin fungsi menyimpan data ( jika user mau mengubah nilai dari limiter)
func writeDelayApp(delayMsg, delayPerRun, delaySmart float64) {
appDelay := DelayApp{
DelayMsg: int(delayMsg),
DelayPerRun: int(delayPerRun),
DelaySmart: int(delaySmart),
}
file, _ := json.MarshalIndent(appDelay, "", " ")
_ = ioutil.WriteFile("delayapp.json", file, 0644)
}
udah selesai? no no
create global variable yang bisa di baca di seluruh fungsi
=========================
var delayMsg *walk.NumberEdit
var delayPerRun *walk.NumberEdit
var delaySmart *walk.NumberEdit
Then buat fungsi untuk load datanya pas user membuka gui nya
==========================
func LoadDataFirstId() {oke sekarang gabungin seluruh fungsi ke button click ( gui nya)
cookiesString := models.ReadCookies("cookies.txt")
dataCookieSafe := models.ParsingJsonfyJs(cookiesString)
models.GetUserIdFromCookiesJson(dataCookieSafe)
delaydefault := readDelayApp()
//fmt.Println(delaydefault)
boxProfile.SetEnabled(true)
boxStarting.SetEnabled(true)
timeOption.SetEnabled(true)
delayMsg.SetValue(float64(delaydefault.DelayMsg))
delayPerRun.SetValue(float64(delaydefault.DelayPerRun))
delaySmart.SetValue(float64(delaydefault.DelaySmart))
fbuserIDLineEdit.SetText(models.Fbuser_id)
}
===========================
OnClicked: func() {
go func() {
writeDelayApp(delayMsg.Value(), delayPerRun.Value(), delaySmart.Value())
dlg.Accept()
}()
},
oke DONE.
padahal cuma ngerubah ini lho:
Changing this |
NOTE:
Ini ngomong hasilnya, pass ngodingnya error bisa beratus2 kali ( sambil berkata kasar, emosi dan stress)