[Linux-programlama] Re: global sorunu

---------

[Linux-programlama] Re: global sorunu

From: Aydın ŞEN <adigeaydin_at_gmail.com>
Date: Mon, 28 Jul 2008 00:19:19 +0300
Message-ID: <2196d7e0807271419u2863589bvcd8500250d5f92db@mail.gmail.com>

Değişkeni ilk kullanımda global olarak belirtmiyorsunuz, daha sonra tekrar
kullanırken global ibaresiyle birlikte kullanıyorsunuz.

2008/7/27 Serdar KARAÇAY <karacay.serdar_at_gmail.com>

> Merhabalar,
> s60 da n80 de ufak sözlük denemesinde global tanımlaması sorununu nasıl
> aşabilirim.
>
> import audio ,appuifw ,camera , key_codes, graphics,os
> PATH = "E:\\sozluk\\"
>
> def load_translations():
> >>>global trans, dict_file , ##
> if not os.path.isdir(PATH):
> os.makedirs(PATH)
> dict_file = file(PATH + "trans.txt", "rw")
> trans = []
> for line in dict_file:
> line = line.decode("utf-8")
> native, foreign = line.strip().split(":")
> trans.append((native, foreign))
>
> def add_entry():
> global text, photo, fname
> text = photo = None
> native = appuifw.query(u"Native word:", "text")
> if not native:
> return
> foreign = appuifw.query(u"Foreign word:", "text")
> if not foreign:
> return
> fname = PATH + native
> trans.append((native, foreign))
> line = "%s:%s" % (native, foreign)
> print >> dict_file, line.encode("utf-8")
> if appuifw.query(u"Record sound", "query"):
> record_sound()
> if appuifw.query(u"Take photo", "query"):
> camera.start_finder(viewfinder)
> canvas.bind(key_codes.EKeySelect, take_photo)
> else:
> appuifw.note(u"Entry added!", "info")
>
> def record_sound():
> snd = audio.Sound.open(fname + ".wav")
> snd.record()
> appuifw.query(u"Press OK to stop recording", "query")
> snd.close()
>
> def viewfinder(img):
> canvas.blit(img)
>
> def take_photo():
> global photo
> canvas.bind(key_codes.EKeySelect, None)
> camera.stop_finder()
> photo = camera.take_photo(size = (640,480))
> handle_redraw(None)
> photo.save(fname + ".jpg")
>
> def show_native():
> lst = []
> for native, foreign in trans:
> lst.append(native)
> idx = appuifw.selection_list(choices = lst, search_field = 1)
> if idx != None:
> foreign = trans[idx][1]
> fname = PATH + lst[idx]
> show(fname, foreign)
>
> def show_foreign():
> lst = []
> for native, foreign in trans:
> lst.append(foreign)
> idx = appuifw.selection_list(choices = lst, search_field = 1)
> if idx != None:
> native = trans[idx][0]
> fname = PATH + native
> show(fname, native)
>
> def show(fname, translation):
> global photo, text, snd
> photo = None
> text = translation
> try:
> photo = graphics.Image.open(fname + ".jpg")
> except: pass
> handle_redraw(None)
> try:
> snd = audio.Sound.open(fname + ".wav")
> snd.play()
> except: pass
>
> def handle_redraw(rect):
> canvas.clear((255, 255, 255))
> w, h = canvas.size
> if photo:
> canvas.blit(photo, target = (0, 0, w, int(0.75 * h)), scale = 1)
> if text:
> canvas.text((20, h / 2), text, fill = (0, 0, 255), font = "title")
>
> def quit():
> dict_file.close()
> app_lock.signal()
> photo = None
> text = u"<vocabulector>"
> appuifw.app.title = u"Personal vocabulary trainer"
> appuifw.app.exit_key_handler = quit
> appuifw.app.screen = "large"
> canvas = appuifw.Canvas(redraw_callback = handle_redraw)
> appuifw.app.body = canvas
> appuifw.app.menu = [(u"Add entry", add_entry),
> (u"Show native entries", show_native),
> (u"Show foreign entries", show_foreign)
> load_translations()
> app_lock = e32.Ao_lock()
> app_lock.wait()
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>

_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Sun 27 Jul 2008 - 23:47:18 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.