الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج المسبح

مغلق
بدأه حسام الملحم في 20 يناير 2005 · 10 رد · 4,938 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم،

هذا آخر إصدار من برنامج المسبح الذي يساعدك على عد تسبيحك لله. يعمل أفضل من المسباح العادي إذ أنه يحفظ لك كل ذكر على حده. مثلا بالضغط على 1 في الجوال يظهر لك أنك سبحت الله مرة، وإذا ضغطت على 2 يحسب لك حمدا لله. وهكذا.

الإصدار رقم الإصدار 1.8.1

يتفوق البرنامج على الإصدار القديم بتقديم هذه الخدمات:

1- الحفظ الذاتي لعدد الأذكار. حيث يمكنك قفل البرنامج وإعادة تشغيله لاحقا وإكمالك للذكر المراد. (الإصدار 1 لا يحفظ الأذكار فإذا أقفلت البرنامج عاد ليبدأ من جديد مبتدأ بالصفر لكل ذكر. )

2- التحكم الكامل في إضافة أذكار جديدة أو مسح بعضها ووضع حد أعلى لعدد مرات ذكرها.

3- التحكم في حجم الخط.

الإصدار الأخير مرفق. ويعمل على الجوالات المدعومة بجافا JAVA CLDC 1.0 MIDP 1.0حسام الملحم

برنامج المسبح

Tasbeeh.zip

تم تعديل هذه المشاركة بواسطة مجدي محمود في 6 فبراير 2005 في 13:39

#2

إليكم شفرة البرنامج....

//package hussam.wireless.thikr;  //MIDlets probably should not
//be countained in a package!!!
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;


public class Tasbeeh extends MIDlet implements CommandListener{

	Vector tasbeeh;
	Canvas canvas;
	Form aboutForm;
	Display display;
	Thikr thikr;
	final int BASE=49;
	Command about;
	Command exit;
	Command restart;
	Command back;
	public void startApp(){
  tasbeeh=new Vector();
  tasbeeh.addElement(new Thikr("ÊÓÈíÍ","ÓÈÍÇä Çááå", 100));
  tasbeeh.addElement(new Thikr("ÊÍãíÏ", "ÇáÍãÏááå",  100));
  tasbeeh.addElement(new Thikr( "ÊßÈíÑ", "Çááå ÃßÈÑ ",   100));
  display = Display.getDisplay(this);
  aboutForm=new Form("Íæá ÇáÈÑäÇãÌ");
  aboutForm.append("ÈÑäÇãÌ ÇáãÓÈÍ\n");
  aboutForm.append("ÇáÅÕÏÇÑ ÇáÃæá\nÊØæíÑ ÍÓÇã ÇáãáÍã");
  aboutForm.append("ÌæÇá 0504812912");
  aboutForm.append("http://faculty.kfupm.edu.sa/MISAC/Hussam/");
  aboutForm.append("ãÚ ÇáÔßÑ æÇáÊÞÏíÑ ááÝÑíÞ ÇáÚÑÈí ááÈÑãÌÉ");
  aboutForm.append("www.arabteam2000.com");
  aboutForm.append(" áÅÕÏÇÑÇÊ ÌÏíÏÉ Ãæ ÈÑÇãÌ ÌÏíÏÉ ÊæÌå Åáì ÇáÕÝÍÇÊ ÇáÓÇÈÞÉ.");
  canvas=new Canvas(){
 	 Font f=Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_LARGE);
    Thikr thikr;
 	 public void paint(Graphics g){
    g.setFont(f);
    g.setColor(0,0,0);
    g.fillRect(0,0,canvas.getWidth(),canvas.getHeight());
    g.setColor(250,250,250);
    Thikr t;
    int i;
    for(i=0;i<tasbeeh.size();i++){
   	 t=((Thikr)tasbeeh.elementAt(i));
 	 //  g.drawString((i+1)+" "+t.thikrName()+":"+t.getCount(), 0,i*20, Graphics.TOP|Graphics.RIGHT);
   	 g.drawString(""+(i+1), 0,i*20, 0);
           g.drawString(" "+t.thikrName(), 10,i*20, 0);
           g.drawString(":", 55,i*20, 0);
           g.drawString(""+t.getCount(), 100,i*20, 0);
    }
    if(thikr!=null)g.drawString(thikr.sentence(), 0,i*20, 0);

 	 }
 	 protected void keyPressed(int keyCode){
    int key=keyCode-BASE;

    try{
   	 thikr=(Thikr)tasbeeh.elementAt(key);
   	 thikr.increment();

    }catch(ArrayIndexOutOfBoundsException e){

    }
    repaint();

 	 }
  };
  //These two methods are for mobiles having MIDP2
//  canvas.setTicker(new Ticker("ÓÈÍ Çááå æÇÍÝÙ ÚÏÏ ãÇ ÓÈÍÊ ÈÇáÖÛØ Úáì ÇáÃÑÞÇã."));
//  canvas.setTitle("ÇáãÓÈÍ");

  exit=new Command("ÎÑæÌ", Command.EXIT, 1);
  restart=new Command("ÅÚÇÏÉ", Command.OK, 1);
  about=new Command("Íæá ÇáÈÑäÇãÌ", Command.HELP, 1);
  back=new Command("ÑÌæÚ", Command.BACK, 1);
  canvas.addCommand(exit);
  canvas.addCommand(restart);
  canvas.addCommand(about);
  aboutForm.addCommand(back);
  display.setCurrent(canvas);
  canvas.setCommandListener(this);
  aboutForm.setCommandListener(this);


	}

     public void pauseApp () {
   	 notifyPaused();
  }

  public void destroyApp(boolean unconditional) {


  }

  public void commandAction(Command c, Displayable s) {

 	 switch(c.getCommandType()){
     	 case Command.EXIT:notifyDestroyed(); break;
     	 case Command.HELP:
        display.setCurrent(aboutForm);
        break;
     	 case Command.OK:
        Thikr t;
        for(int i=0;i<tasbeeh.size();i++){
       	 t=(Thikr)tasbeeh.elementAt(i);
       	 t.startOver();
        }
        canvas.repaint();
        break;
     	 case Command.BACK:
        display.setCurrent(canvas);
        break;


      }


 	 }
//*/
}



class Thikr {
	String sentence;
	String thikrName;
	int size;
	int count;

	Thikr(String thikrName, String sentence, int size){
  this.thikrName=thikrName;
  this.sentence=sentence;
  this.size=size;
  count=0;
	}
	public void startOver(){
  count=0;
	}
	public String sentence(){
  return sentence;
	}
	public String thikrName(){
  return thikrName;
	}
	public int size(){
  return size;
	}
	public void increment(){
  count++;
  if(count>=size)count=size;
	}
	public boolean finished(){
  return (count==size);
	}
	public void increment(int amount){
  count+=amount;
  if(count>=size)count=size;
	}
	public void setCounter(int amount){
  count=amount;
	}
	public int getCount(){
  return count;
	}
}
#3

سوف اضع له رابط في قسم الجوالات لكي يستخدمه الاخوة البقية

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#4

جزاك الله كل خير وهذا الملف كامل مع ملف الجاد لسهولة الاستخدام وامكانية نقله على الجوال

Tasbeeh.rar

لست متواجد بشكل يومي

#5

لم أستطع قراءة ملف rar باستخدام win zip!

#6
اقتباس
لم أستطع قراءة ملف rar باستخدام win zip!

ولا يهمك يا ابو مازن وهذا البرنامج ب Tasbeeh.zip :)

Tasbeeh.zip

لست متواجد بشكل يومي

#7

هل يلزم ملف (جاد) للتحميل إلى الجوال؟ أنا أرسل ملف ال(جار) فقط وأرى أن البرنامج يعمل على الجوال!!!

#8
اقتباس
هل يلزم ملف (جاد) للتحميل إلى الجوال؟ أنا أرسل ملف ال(جار) فقط وأرى أن البرنامج يعمل على الجوال!!!

نعم ولكن ليس جميع الجوالات فانا مثلا عندي Nokia 6230 ولا احتاج الا لنقل ملف الجار لانه يحتوي على MANIFEST وهو تقريبا شبيه بالجاد

وبعضها يحتاج ذلك مثلا كان عندي سوني يدعم MIDP 1.0 وكان يحتاج الى الاثنين يعني مش كل الجوالات تحتاج الى الاثنين حسب الجوال ونوعه

اما لفحصه على Wireless Toolkit لا بد من وجود الجاد لانه اذا مش موجود ما رح يشتغل

تم تعديل هذه المشاركة بواسطة مجدي محمود في 21 يناير 2005 في 21:21

لست متواجد بشكل يومي

#9

إليكم شفرة البرنامج على شكلين: الأول مطبوع في المنتدى كما ترى، والآخر على شك ملف مرفق في الأسفل.

//package hussam.wireless.thikr;  //MIDlets probably should not
//be countained in a package!!!

/** Tasbeeh Program
 *
 *
 *@author Hussam Al-Mulhim ÍÓÇã ÇáãáÍã
 *@version 1.8
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.util.*;


public class Tasbeeh extends MIDlet implements CommandListener{
	RecordStore store;
	Vector tasbeeh;
	Canvas canvas;
	Form addForm;
	AboutForm aboutForm;
	List changeFontList;
	DeleteForm deleteForm;
	Display display;
	Thikr thikr;
	final int BASE=49;
	Command about;
	Command exit;
	Command restart;
	Command back;
	Command delete;
	Command add;
	Command restore;
	Command changeFont;
	Font font;
	static final String PROGRAM_NAME="Tasbeeh";
	static final String VERSION="1.8";
	static final String CODE="UTF-16";
	boolean loaded;

	public Tasbeeh(){
  loaded=false;
  System.out.println("Constructor()");
	}
	public void startApp(){
  if(!loaded)load();
  aboutForm=new AboutForm();
  display = Display.getDisplay(this);
  font=Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_SMALL);
  canvas=new Canvas(){
 	 Thikr thikr;
 	 public void paint(Graphics g){
    g.setFont(font);
    g.setColor(0,0,0);
    g.fillRect(0,0,canvas.getWidth(),canvas.getHeight());
    g.setColor(250,250,250);
    Thikr t;
    int i;
    final int rowHeight=font.getHeight();
    for(i=0;i<tasbeeh.size();i++){
   	 t=((Thikr)tasbeeh.elementAt(i));
 	 //  g.drawString((i+1)+" "+t.thikrName()+":"+t.getCount(), 0,i*20, Graphics.TOP|Graphics.RIGHT);
   	 g.drawString(""+(i+1), 0,i*rowHeight, 0);
           g.drawString(" "+t.thikrName(), 10,i*rowHeight, 0);
           g.drawString(":", 55,i*rowHeight, 0);
           g.drawString(""+t.getCount(), 100,i*rowHeight, 0);
    }
    if(thikr!=null)g.drawString(thikr.sentence(), 0,i*rowHeight, 0);

 	 }
 	 protected void keyPressed(int keyCode){
    int key=keyCode-BASE;

    try{
   	 thikr=(Thikr)tasbeeh.elementAt(key);
   	 thikr.increment();

    }catch(ArrayIndexOutOfBoundsException e){

    }
    repaint();

 	 }
  };
  //These two methods are for mobiles having MIDP2
//  canvas.setTicker(new Ticker("ÓÈÍ Çááå æÇÍÝÙ ÚÏÏ ãÇ ÓÈÍÊ ÈÇáÖÛØ Úáì ÇáÃÑÞÇã."));
//  canvas.setTitle("ÇáãÓÈÍ");

  exit=new Command("ÎÑæÌ", Command.EXIT, 1);
  about=new Command("ãÓÇÚÏÉ", Command.HELP, 1);
  back=new Command("ÑÌæÚ", Command.BACK, 1);
  add=new Command("ÅÖÇÝÉ ÐßÑ",Command.ITEM, 2);
  delete=new Command("ãÓÍ ÐßÑ" ,Command.ITEM, 5);
  restore=new Command("ÇÓÊÚÇÏÉ ÖÈØ ÇáÈÑäÇãÌ",Command.ITEM, 10);
  changeFont=new Command("ÊÛííÑ ÍÌã ÇáÎÙ", Command.ITEM, 1);
  restart=new Command("ÅÚÇÏÉ", Command.OK, 1);
  canvas.addCommand(exit);
  canvas.addCommand(restart);
  canvas.addCommand(about);
  canvas.addCommand(add);
  canvas.addCommand(delete);
  canvas.addCommand(restore);
  canvas.addCommand(changeFont);
  aboutForm.addCommand(back);
  display.setCurrent(canvas);
  canvas.setCommandListener(this);
  aboutForm.setCommandListener(this);

  addForm=new AddForm();
  deleteForm=new DeleteForm();
  changeFontList=new ChangeFontList();

	}
	void setFont(int value012){
  switch(value012){
    case 0:font=Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_SMALL);
    break;
    case 1:font=Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_MEDIUM);
    break;
    case 2:font=Font.getFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_LARGE);
    break;
  }
	}
    public void pauseApp () {
   	 System.out.println("Pausing..");
    save();
    notifyPaused();
	}
	public void load(){
  try{
 	 store=RecordStore.openRecordStore(PROGRAM_NAME, true);

  }catch(RecordStoreException e){
 	 e.printStackTrace();
  }
  tasbeeh=new Vector();
  try{
 	 RecordEnumeration enm=store.enumerateRecords(null,null,true);
 	 byte[]b=null;
 	 while(enm.hasNextElement()){
    b=enm.nextRecord();
    String dat=new String(b,CODE);
    System.out.println(dat);

    String sentence=dat.substring(0, dat.indexOf((int)'>'));
    dat=dat.substring(dat.indexOf((int)'>')+1,dat.length());
    System.out.println(sentence);

    String thikrName=dat.substring(0, dat.indexOf((int)'>'));
    dat=dat.substring(dat.indexOf((int)'>')+1,dat.length());
    System.out.println(thikrName);

    String s=dat.substring(0, dat.indexOf((int)'>'));
    dat=dat.substring(dat.indexOf((int)'>')+1,dat.length());
    System.out.println(s);
    int size=Integer.parseInt(s);

    String c=dat;//.substring(0, dat.indexOf((int)'>'));
    int count=Integer.parseInt(c);
    tasbeeh.addElement(new Thikr(thikrName,sentence,size, count));
 	 }
 	 store.closeRecordStore();
 	 loaded=true;
  }catch(Exception e){
 	 e.printStackTrace();
 	 loaded=false;
  }//*/
  finally{
 	 try{
    store.closeRecordStore();
 	 }catch(RecordStoreException e){
 	 //	e.printStackTrace();
 	 }
  }


  if(!loaded){
 	 loadDefault();
  }


	}
	public void loadDefault(){
  tasbeeh.removeAllElements();
  tasbeeh.addElement(new Thikr("ÊÓÈíÍ","ÓÈÍÇä Çááå", 100, 0));
  tasbeeh.addElement(new Thikr("ÊÍãíÏ", "ÇáÍãÏááå",  100, 0));
  tasbeeh.addElement(new Thikr( "ÊßÈíÑ", "Çááå ÃßÈÑ",   100, 0));
  loaded=true;
	}
	public void save(){
  try{

 	 RecordStore.deleteRecordStore(PROGRAM_NAME);
 	 store=RecordStore.openRecordStore(PROGRAM_NAME, true);
  }catch(RecordStoreException e){
 	 e.printStackTrace();
  }
  for(int i=tasbeeh.size()-1;i>=0;i--){
 	 try{
    store.addRecord(((Thikr)tasbeeh.elementAt(i)).data(),0,((Thikr)tasbeeh.elementAt(i)).data().length);

 	 }catch(RecordStoreException e){
    e.printStackTrace();
 	 }catch(java.io.UnsupportedEncodingException e){
    e.printStackTrace();
 	 }
  }
  try{
 	 store.closeRecordStore();
  }catch(RecordStoreException e){
 	 e.printStackTrace();
  }
	}
	public void destroyApp(boolean unconditional) {
  System.out.println("Distroying");
  save();
  notifyDestroyed();
	}

	public void commandAction(Command c, Displayable s) {

  switch(c.getCommandType()){
      case Command.EXIT:destroyApp(true); break;
      case Command.HELP:
     	 display.setCurrent(aboutForm);
     	 break;
      case Command.OK:
     	 Thikr t;
     	 for(int i=0;i<tasbeeh.size();i++){
        t=(Thikr)tasbeeh.elementAt(i);
        t.startOver();
     	 }
     	 canvas.repaint();
     	 break;
      case Command.BACK:
     	 display.setCurrent(canvas);
     	 break;
 	 case Command.ITEM:
    if(c==restore){
   	 loadDefault();
   	 canvas.repaint();
    }
    else if(c==add){
   	 display.setCurrent(addForm);
    }
    else if(c==delete){
   	 deleteForm.update();
   	 display.setCurrent(deleteForm);
    }else if(c==changeFont){
   	 display.setCurrent(changeFontList);
    }
    break;


     }


	}
//*/
	class AboutForm extends Form {
  AboutForm(){
 	 super("Íæá ÇáÈÑäÇãÌ");
 	 append("ÈÑäÇãÌ ÇáãÓÈÍ\n");
 	 append("ÊØæíÑ ÍÓÇã ÇáãáÍã");
 	 append("\n");
 	 append("ÇáÅÕÏÇÑ");
 	 append(VERSION);
 	 append("\n");
 	 append("ÌæÇá 0504812912");
 	 append("\n");
 	 append("http://faculty.kfupm.edu.sa/MISAC/Hussam/");
 	 append("\n");
 	 append("ãÚ ÇáÔßÑ æÇáÊÞÏíÑ ááÝÑíÞ ÇáÚÑÈí ááÈÑãÌÉ");
 	 append("\n");
 	 append("www.arabteam2000.com");
 	 append("\n");
 	 append(" áÅÕÏÇÑÇÊ ÌÏíÏÉ Ãæ ÈÑÇãÌ ÌÏíÏÉ ÊæÌå Åáì ÇáÕÝÍÇÊ ÇáÓÇÈÞÉ.");
  }
	}
	class ChangeFontList extends List implements CommandListener{
  Command ok;
  ChangeFontList(){
 	 super("ÍÌã ÇáÎØ", List.EXCLUSIVE);
 	 append("ÕÛíÑ",null);
 	 append("æÓØ",null);
 	 append("ßÈíÑ",null);
 	 ok=new Command("ãæÇÝÞ", Command.OK,1);
 	 addCommand(ok);
 	 setCommandListener(this);
  }
  public void commandAction(Command c, Displayable d){
 	 setFont(getSelectedIndex());
 	 display.setCurrent(canvas);
  }
	}
	class DeleteForm extends List implements CommandListener{
  Command back;
  Command delete;
  DeleteForm(){
 	 super("ÞÇÆãÉ ÇáÃÐßÇÑ", List.EXCLUSIVE);
 	 update();
 	 back=new Command("ÑÌæÚ", Command.BACK, 1);
 	 delete=new Command("ÍÐÝ", Command.OK, 2);
 	 setCommandListener(this);
 	 addCommand(back);
 	 addCommand(delete);

  }
  public void update(){
 	 while(size()!=0)delete(0);
 	 for(int i=0;i<tasbeeh.size();i++){
    Thikr thikr=(Thikr)tasbeeh.elementAt(i);
    append(thikr.thikrName(),null);
 	 }
  }
  public void commandAction(Command c, Displayable d){
 	 if(c==back){
    display.setCurrent(canvas);
 	 }
 	 else if(c==delete){
    tasbeeh.removeElementAt(getSelectedIndex());
    delete(getSelectedIndex());
 	 }

  }
	}
	class AddForm extends Form implements CommandListener{
  TextField sentence;
  TextField name;
  TextField length;
  Command ok;
  Command back;
  AddForm(){
 	 super("ÅÖÇÝÉ ÐßÑ");
 	 name=new TextField("ÇÓã ÇáÐßÑ", "Êåáíá",50, TextField.ANY);
 	 sentence=new TextField("ÌãáÉ ÇáÐßÑ", "áÇ Åáå ÅáÇ Çááå",50, TextField.ANY);
 	 length=new TextField("ÚÏÏ ÇáÊßÑÇÑ", ""+10,50, TextField.NUMERIC);
 	 ok=new Command("ãæÇÝÞ", Command.OK,1);
 	 back=new Command("ÑÌæÚ", Command.BACK,1);
 	 append(name);
 	 append(sentence);
 	 append(length);
 	 addCommand(ok);
 	 addCommand(back);
 	 setCommandListener(this);
  }
  public void commandAction(Command c, Displayable d){
 	 if(c==back){
    display.setCurrent(canvas);

 	 }else if(c==ok)
 	 if(name.getString().trim().length()>0)
    if(sentence.getString().trim().length()>0)
   	 if(length.getString().trim().length()>0){
      tasbeeh.addElement(new Thikr(name.getString().trim(),
            sentence.getString().trim(),
            Integer.parseInt(length.getString().trim()),
            0));
      display.setCurrent(canvas);
   	 }
  }
	}

}



class Thikr {
	String sentence;
	String thikrName;
	int size;
	int count;

	Thikr(String thikrName, String sentence, int size, int start){
  this.thikrName=thikrName;
  this.sentence=sentence;
  this.size=size;
  count=start;
	}
	public void startOver(){
  count=0;
	}
	public String sentence(){
  return sentence;
	}
	public String thikrName(){
  return thikrName;
	}
	public int size(){
  return size;
	}
	public void increment(){
  count++;
  if(count>=size)count=size;
	}
	public boolean finished(){
  return (count==size);
	}
	public void increment(int amount){
  count+=amount;
  if(count>=size)count=size;
	}
	public void setCounter(int amount){
  count=amount;
	}
	public int getCount(){
  return count;
	}
	byte[] data()throws java.io.UnsupportedEncodingException{
  int position=0;
  byte[]b=null;
  String dat=sentence+'>'+thikrName+'>'+size+'>'+getCount();
  b=dat.getBytes(Tasbeeh.CODE);

  return b;
	}
}

Tasbeeh.java

تم تعديل هذه المشاركة بواسطة أبومازن في 5 فبراير 2005 في 17:13

#10

مشكور أخي أبو مازن على هذا البرنامج واعطائنا شفرته00

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#11

مشكووووووووووووووووور

هذا الموضوع مغلق.

مواضيع مشابهة