بسم الله الرحمن الرحيم
هذه فكرة جيدة لكن اذا كان هذا المشروع جماعي فأقترح على الاخ الشمري ان يجد طريقة لادارة المشروع
بسم الله الرحمن الرحيم
هذه فكرة جيدة لكن اذا كان هذا المشروع جماعي فأقترح على الاخ الشمري ان يجد طريقة لادارة المشروع
الله المستعان .. الايام تروح والعمر يروح ويبقى العمل .
تتوقعون بعد كل هالمدة ماهو الجديد .
هل تطور البرنامج وصار مثل word ؟
على العموم .. هذه نسخة جديدة ..
الان بامكانك اختيار الخط الذي تريد عن طريق القائمة تنسيق بالاضافة للاضافات الاخرى . يعني البرنامج الان
notepad الا شوي .
التغييرات الرئيسية في الملف font.h و menu.h .
تم تعديل هذه المشاركة بواسطة الشمري في 30 يوليو 2006 في 06:45
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
بسم الله ما شاء الله برنامج رائع يا أخ شمرى ولله أنا معجب بيه جدا كمبتدئ فى برمجة الويندوز, و لكن لى إستفسار لماذا لم تستخدم البرمجة الشيئية حيث أنها سوف تتيح الفرصة للتوسع بحرية أكبر بكثييير و كمان سيكون التصميم سهل, ما رأيك؟
كمان ليا ملاحظة, لماذا تضع ال implementation فى الملفات الرأسية؟ من الأفضل وضعه فى ملفات مصدرية منفصلة, سيؤدى إلى تقليل وقت الترجمة كثيرا عندما يكبر المشروع إن شاء الله.
فى ملاحظة بقا على الكود نفسه, إنتا بتقرا محتويات الفايل كله مرة واحدة فى مصفوفة و لكن ماذ سيكون الحال عند قراءة ملفات عملاقة ! من رأيى أن تحدد مساحة ثابتة تقرأ فيها محتويات الفايل و لما المستخدم يطلب يشوف نص مش موجود فى الذاكرة تروح و تجيبه و تستبدل الذاكرة بتاعتك, رأيك إيه؟
أنا ولله متحمس للمشروع دا و نفسى أشارك فيه فعلا و إن شاء الله نطلع منتج بجد فى الأخر زى الوورد و emacs مثلا :).
أه فى حاجة تانية معلش :), لماذا إجبار المستخدم على حفظ الملف بإمتداد txt ؟ إفرض أنه يريد حفظه بإستخدام srt, sub, log, class, cpp, h ......؟ أرى أنه من الأكثر فاعلية عدم وضع إمتداد معين كفرض على اليوزر.
المشكلة الحقيقية مع البرنامج انه يعتمد على text box بالتالي انا سأكون محدود بعشرين دالة ورسالة .. لا اقل ولا اكثر ... ولو استخدمت rich text ,, ايضا سأبقى محصورا بعدد من الدوال ..
لو استطعنا انشاء text box .. من الصفر .. عندها بالامكان تطويره حتى الوورد :) .
طبعا يسعدني اشتراكك لكن انا سأتوقف فقط اذا صار البرنامج مثل المفكرة تماما .. ولن اكمل .
اقتباسأه فى حاجة تانية معلش , لماذا إجبار المستخدم على حفظ الملف بإمتداد txt ؟ إفرض أنه يريد حفظه بإستخدام srt, sub, log, class, cpp, h ......؟ أرى أنه من الأكثر فاعلية عدم وضع إمتداد معين كفرض على اليوزر
همممم .. طبعا يمكن استخدام all file وبالتالي انت تكتب الامتداد الذي تريد .. لكن تنفيذ الاقتراح سهل .. فقط باضافة امتدادات جديدة .
=========
كثير من الافكار يمكن تطبيقها .. لكن المشكلة بأن text box محدود ..
مثلا ترقيم الاسطر .. حاولت تطبيقها لكن بسبب عدم تحكمي الكامل بالصندوق النصي كنسلت الفكرة ..
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
السلام عليكم
حياك الله أخو الشمري على هذا المجهود
فكرة جميلة جدا
في الوقت الحالي مربع النص العادي جيد لنا كمبتدئين
ولكن في المستقبل ان شاءالله يتم بناء اداة متطورة قليلا ويكون لها تنسيقها الخاص على لأقل مثل RichEdit
ويسعدني ان اشارك معك بالقليل
أخي الكريم هذه كلاس TextBox اظن انها ستسهل التعامل مع النص
طبعا لم أضع جميع الميثود فقط القليل منها
نستطيع اضافي ميثود جديده لتسهل العمل
#include "windows.h";
//#include "string.h";
//EM_EXGETSEL
class TextBox
{
public:
TextBox(HWND hwndParent)
{
_hwnd = CreateWindowEx(WS_EX_CLIENTEDGE|WS_EX_RTLREADING|WS_EX_RIGHT|WS_EX_LEFTSCROLLBAR ,
"EDIT",
"",
WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_MULTILINE ,
0, 0, 160, 80,
hwndParent, NULL, NULL, NULL);
}
HWND getHwnd(){return _hwnd;}
bool getVisible()
{
return IsWindowVisible(_hwnd)==1?true:false;
}
void setVisible(bool visibility)
{
ShowWindow(_hwnd, (visibility?1:0));
}
bool getEnabled()
{
return IsWindowEnabled(_hwnd)==1?true:false;
}
void setEnabled(bool Enable)
{
EnableWindow(_hwnd, (BOOL)Enable);
}
//set the parent window for the text
void setParent(HWND hwndParent)
{
SetParent(_hwnd,hwndParent);
}
//get the parent window that contian the textbox
HWND getParent()
{
return GetParent(_hwnd);
}
//get text lenght
int lenght()
{
return GetWindowTextLength(_hwnd);
}
LPSTR getText()
{ int len=lenght();
if(len==0)return "";
LPSTR lpText=new char[len];
GetWindowText(_hwnd,lpText,len+1);
//SendMessage(_hwnd,WM_GETTEXT ,len+1 , (LPARAM)lpText);
return lpText;
}
void setText(LPSTR lpText)
{
SetWindowText(_hwnd,lpText);
}
//set the selection text to the new text
void setSelText(LPSTR lpText)
{
SendMessage(_hwnd,EM_REPLACESEL,0,(LPARAM)lpText);
}
void clear()
{
SetWindowText(_hwnd,"");
}
/**
* select range of text
* parameter :
* start : the selection text start from charecter
* lenght : lenght of selected text
*/
void Select(int start , int lenght)
{SendMessage(_hwnd,EM_SETSEL,(WPARAM)start,(LPARAM)(start+lenght));}
void SelectAll(){Select(0,-1);}
/**
* return text location
*/
RECT getPlacment()
{
WINDOWPLACEMENT plc;
GetWindowPlacement(_hwnd,&plc);
return plc.rcNormalPosition;
}
int getLeft()
{
return getPlacment().left;
}
int getTop()
{
return getPlacment().top;
}
int getWidth()
{ WINDOWPLACEMENT plc;
GetWindowPlacement(_hwnd,&plc);
return plc.rcNormalPosition.right-plc.rcNormalPosition.left;
}
int getHeight()
{ WINDOWPLACEMENT plc;
GetWindowPlacement(_hwnd,&plc);
return plc.rcNormalPosition.bottom-plc.rcNormalPosition.top;
}
void move(int x ,int y)
{ MoveWindow(_hwnd,x,y, getWidth() , getHeight() ,true);}
void move(int x ,int y,int nWidth,int nHirght)
{ MoveWindow(_hwnd,x,y, nWidth , nHirght ,true);}
private:
HWND _hwnd;
};طبعا طريقة عملها بسيطة جدا
in the menu.h
static TextBox *txt;
in the WinMain
txt=new TextBox(hwnd);
then you can use it
txt->setText("hi");
txt->move(0,0)
txt->move(0,0,100,100)
txt->getText();
....we can add method
void loadFromFile(LPSTR filename){}
and
bool saveToFile(LPSTR filename){}
and moreوالرجاء الاضافة والتعديل اذا في نواقص
تم تعديل هذه المشاركة بواسطة Mo7eb_Alrasool في 31 يوليو 2006 في 08:14
سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت
أستغفرك وأتوب اليك
الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد
Mo7eb_Alrasool كتب:السلام عليكمحياك الله أخو الشمري على هذا المجهود
فكرة جميلة جدا
في الوقت الحالي مربع النص العادي جيد لنا كمبتدئين
ولكن في المستقبل ان شاءالله يتم بناء اداة متطورة قليلا ويكون لها تنسيقها الخاص على لأقل مثل RichEdit
ويسعدني ان اشارك معك بالقليل
أخي الكريم هذه كلاس TextBox اظن انها ستسهل التعامل مع النص
طبعا لم أضع جميع الميثود فقط القليل منها
نستطيع اضافي ميثود جديده لتسهل العمل
#include "windows.h"; //#include "string.h"; //EM_EXGETSEL class TextBox { public: TextBox(HWND hwndParent) { _hwnd = CreateWindowEx(WS_EX_CLIENTEDGE|WS_EX_RTLREADING|WS_EX_RIGHT|WS_EX_LEFTSCROLLBAR , "EDIT", "", WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_MULTILINE , 0, 0, 160, 80, hwndParent, NULL, NULL, NULL); } HWND getHwnd(){return _hwnd;} bool getVisible() { return IsWindowVisible(_hwnd)==1?true:false; } void setVisible(bool visibility) { ShowWindow(_hwnd, (visibility?1:0)); } bool getEnabled() { return IsWindowEnabled(_hwnd)==1?true:false; } void setEnabled(bool Enable) { EnableWindow(_hwnd, (BOOL)Enable); } //set the parent window for the text void setParent(HWND hwndParent) { SetParent(_hwnd,hwndParent); } //get the parent window that contian the textbox HWND getParent() { return GetParent(_hwnd); } //get text lenght int lenght() { return GetWindowTextLength(_hwnd); } LPSTR getText() { int len=lenght(); if(len==0)return ""; LPSTR lpText=new char[len]; GetWindowText(_hwnd,lpText,len+1); //SendMessage(_hwnd,WM_GETTEXT ,len+1 , (LPARAM)lpText); return lpText; } void setText(LPSTR lpText) { SetWindowText(_hwnd,lpText); } //set the selection text to the new text void setSelText(LPSTR lpText) { SendMessage(_hwnd,EM_REPLACESEL,0,(LPARAM)lpText); } void clear() { SetWindowText(_hwnd,""); } /** * select range of text * parameter : * start : the selection text start from charecter * lenght : lenght of selected text */ void Select(int start , int lenght) {SendMessage(_hwnd,EM_SETSEL,(WPARAM)start,(LPARAM)(start+lenght));} void SelectAll(){Select(0,-1);} /** * return text location */ RECT getPlacment() { WINDOWPLACEMENT plc; GetWindowPlacement(_hwnd,&plc); return plc.rcNormalPosition; } int getLeft() { return getPlacment().left; } int getTop() { return getPlacment().top; } int getWidth() { WINDOWPLACEMENT plc; GetWindowPlacement(_hwnd,&plc); return plc.rcNormalPosition.right-plc.rcNormalPosition.left; } int getHeight() { WINDOWPLACEMENT plc; GetWindowPlacement(_hwnd,&plc); return plc.rcNormalPosition.bottom-plc.rcNormalPosition.top; } void move(int x ,int y) { MoveWindow(_hwnd,x,y, getWidth() , getHeight() ,true);} void move(int x ,int y,int nWidth,int nHirght) { MoveWindow(_hwnd,x,y, nWidth , nHirght ,true);} private: HWND _hwnd; };طبعا طريقة عملها بسيطة جدا
in the menu.h static TextBox *txt; in the WinMain txt=new TextBox(hwnd); then you can use it txt->setText("hi"); txt->move(0,0) txt->move(0,0,100,100) txt->getText(); ....we can add method void loadFromFile(LPSTR filename){} and bool saveToFile(LPSTR filename){} and moreوالرجاء الاضافة والتعديل اذا في نواقص
بارك الله فيك أخي محب الرسول
يا رجل كل هذا وتقول أنك مبتدئ :)
من تواضع لله رفعه وأنا رأيت مشاركاتك ومساعداتك للأعضاء بسم الله ما شاء الله ;)
تم تعديل هذه المشاركة بواسطة الشمري في 1 أغسطس 2006 في 09:45
Alex Dabe : انا حررت مشاركتك لانك دمجت ردين مع بعض بالخطأ .. هذا فقط اللي حررته .
يا محب الرسول .. ساستخدم هذا الكلاس حالا :) .
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
عمل رائع ...
والله سعيد جدًّا برؤيته...
وآسف لأني كنت غائب في البدايات...
قمت بإنزال الملفات، وتشغيلها كان شيء ممتاز جدّاً أحسدك عليه يا شمّري...
لنا عودة :)
هلا اسماعيل .. ترا الكود بسيط مجرد برنامج شبيه بالمفكرة . !
عموما هذه نسخة جديدة وقمت فيها باعداة هيكلة للبرنامج من ناحية الواجهة .. حيث حذفت كثير من القوائم اللي مالها داعي .
ومن ناحية الكود قمت باصلاح بعض المشاكل في القائمة file ..
والتعديل الاساسي في الكود كان باضافة كلاس TextBox .. الذي أضافه الاخ " محب الرسول " .. جزاه الله خير ,
طبعا الكلاس باسمه وقد بينت ذلك في داخل الكود ... ستجد ذلك في ملف اسمه textbox.h .
لكن انا حاولت أني اطبق ميزة " التفاف النص " الموجودة في المفكرة وما قدرت .
الميزة هي بالغاء شريط التمرير .. الافقي عندما أريد التفاف النص .. او اضيف شريط تمرير أفقي عنما الغي ميزة التفاف النص ..
حاولت استخدم خاصية WS_HORIZONTAL ان كتبتها صح .. من خلال
SetWindowLong .. (على مااذكر ) ..
ولكن بدون نتيجة ..
من اراد المساعدة بامكانه اضافة الكود اللازم .. في الملف menu.h ... في اخر الملف .. ستجد المكان المناسب ..وعليه تعليقات ,
تطبيق طمأنينة ، نسخة بيتا على أندرويد
عبدالله الشمّري - Al-Shammari
twitter @abshammeri
abshammeri AT gmail.com
github : abshammeri
السلام عليكم
مشكور كثير اخوي الشمري على هذه الدروس القيمه والمجهود الكبير
الله يعطيك الف عافية ان شاه الله
بالنسبه لل word wrap هاذا الكود والله اعلم واذا فيه عند الشباب طريقة ثانيه يا ريت يحطوها
ملاحضة انا اضفت متغير
//in the void Create(HWND hwndParent,HINSTANCE hInstance) _hInstance=hInstance; // inthe private declaration HINSTANCE _hInstance;
bool GetWordWrap()
{return (GetStyle() & ES_AUTOHSCROLL)==0;}
void SetWordWrap(bool value)
{ if(value==GetWordWrap())return;
LONG lStyle=WS_CHILD|WS_VSCROLL|ES_MULTILINE;
if(!value)lStyle|=ES_AUTOHSCROLL | WS_HSCROLL;
RECT rect;
rect=getPlacment();
HWND tmpHwnd;
tmpHwnd= CreateWindowEx(WS_EX_CLIENTEDGE|WS_EX_RTLREADING|WS_EX_RIGHT|WS_EX_LEFTSCROLLBAR ,
"EDIT",
GetText(),
lStyle,
rect.left, rect.top, rect.right, rect.bottom,
getParent(), (HMENU)ID_, _hInstance, NULL);
SendMessage (_hwnd, WM_GETFONT, (WPARAM) hFont, 0);
SendMessage (tmpHwnd, WM_SETFONT, (WPARAM) hFont, 0);
DestroyWindow(_hwnd);
_hwnd=tmpHwnd;
setVisible(true);
}وهي كمان خاصية القراءة من اليمين لليسار
void Update()
{InvalidateRect(_hwnd, &getPlacment() , true);}
/*
* set the reading from right to left
* @param rtl
* true set reading from the right
* false set reading from the left
*/
void setRightToLeft(bool rtl)
{
LONG lng=GetWindowLong(_hwnd,GWL_EXSTYLE)&WS_EX_RTLREADING&WS_EX_LTRREADING;//?0:1;
LONG dir=rtl?WS_EX_RTLREADING:WS_EX_LTRREADING;
SetWindowLong(_hwnd,GWL_EXSTYLE, lng|dir);
Update();
}
/*
*return truen if th current reading direction is right
*/
bool getRightToLeft()
{return GetWindowLong(_hwnd,GWL_EXSTYLE)&WS_EX_RTLREADING;}سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت
أستغفرك وأتوب اليك
الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد
كبداية شئ رائع لكن هناك الكثير من الاشياء تحتاج لتطوير مثلاً وهي أهم نقطة :
اقتباسطلب :لمن يملك ملفات بلغات مختلفة مثل الفرنسية الروسية اليابانية
ياحبذا لو يجرب يفتحها بالبرنامج ... لاتأكد من دعم البرنامج لـ Unicode
لا يدعم اليونيكود لأن المكون الذي إستخدم هو Edit عادي وكما تعلم فهي لا تدعم اليونيكود ...
لا نذهب بعيداً فأنا لا أستطيع الكتابة بالعربية فيه .. فقط استطيع الكتابة بالانجليزية والصينية لأن النظام صيني ...
لاحظ أن Notepad يستخدم نفس المكون لكن مطور أكثر ...ستحتاج لعمل subclassing للمكون وتجعله يدعم اليونيكود ...
"First they ignore you, then they laugh at you, then they attack you, then you win"
===
اقتباسحُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا
هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا
الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا
القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ
لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ
البردوني "أبو تمام وعروبة اليوم" 1971
===
اقتباسعبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــمو تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم
ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم
أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟
ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا
البردوني "نحن و الحاكمون "
السلام عليكم
تعديل غقط على الكود
وهي أضافه lExStyle لكي يتم الاحتفاظ بالستايل السابق مثلا القراءة من اليمين لي اليسار
void SetWordWrap(bool value)
{ if(value==GetWordWrap())return;
LONG lStyle=(GetStyle()&ES_AUTOHSCROLL&WS_HSCROLL)
|WS_CHILD|WS_VSCROLL|ES_MULTILINE;
if(!value)lStyle|=ES_AUTOHSCROLL | WS_HSCROLL;
LONG lExStyle=(GetWindowLong(_hwnd,GWL_EXSTYLE));
RECT rect;
rect=getPlacment();
HWND tmpHwnd;
tmpHwnd= CreateWindowEx(lExStyle/*WS_EX_CLIENTEDGE|WS_EX_RTLREADING|WS_EX_RIGHT|WS_EX_LEFTSCROLLBAR */,
"EDIT",
GetText(),
lStyle,
rect.left, rect.top, rect.right, rect.bottom,
getParent(), (HMENU)ID_, _hInstance, NULL);
SendMessage (_hwnd, WM_GETFONT, (WPARAM) hFont, 0);
SendMessage (tmpHwnd, WM_SETFONT, (WPARAM) hFont, 0);
DestroyWindow(_hwnd);
_hwnd=tmpHwnd;
setVisible(true);
}تم تعديل هذه المشاركة بواسطة Mo7eb_Alrasool في 4 أغسطس 2006 في 13:06
سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت
أستغفرك وأتوب اليك
الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد
تصحيح للنقطة التي أشرت إليها في مشكلة الـ Unicode ..
ليدعم المحرر الكتابة بجميع اللغات (دعم اليونيكود ) ينبغي عمل ما يلي :
من القائمة Project/ settings
نختر "C/C++" وهنا في Preprocessor definitons بدلاً من استخدام MSDB نقوم باضافة UNICODE,_UNICODE ..
في الكود نستبدل جميع المتغيرات التي تم تعريفها كــ char بـ TCHAR . طبعاً سنحتاج لإضافة TEXT في عدة أماكن ... وبذا يصبح بامكاننا كتابة نص بأكثر من لغة .. ركز على أني وضعت كلمة "الكتابة" بلون مختلف لأن القراءة شئ آخر وستعتمد على الـ encoding التي تم حفظ النص به ..
بالإمكان مراجعة هذا المقال فقد يفيد ...
بالنسبة لحفظ الملف فسنحتاج لتحديد نوعية الـ encoding التي سيتم حفظ النص بها UTF8/UTF16/UTF32 ...
المقال المشار إليه يشرح شئ عن هذه النقطة ..
هذا مقال قد يفيد أيضاً
Some files come up strange in Notepad
وبمناسبة ذكر الـ notepad سأذكر ما علمته قبل سويعات أثناء تتبع الـ notepad بواسطة IDA
حين يتم إختيار ملف ما بواسطة Open File Dialog فان notepad يقوم بقراءة الملف حين النقر مرة واحدة على إسم الملف (بإعتبار أن نقرة واحدة لاختيار الملف ونقرتين لفتح الملف في إعدادات الـ mouse )... وإن تم إختيار ملف آخر فستتم نفس العملية وإن رجعنا وإخترنا الملف الأول فستتم عملية القراءة مرة آخرى ..
شئ آخر هو أن notepad يستخدم mapping file وهذا شئ ضروري في تطوير محرر النصوص ...
---
بقيت نقطة أخرى هو لمن يريد الإستمرار بالتطوير بحيث تدعم واجهه المحرر أكثر من لغة سواء في القوائم أو رسائل الخطأ وغيرها يفضل وضع النصوص في الـ resource ليتم قراءتها بشكل سليم . يمكن أيضاً وضعها في ملفات خارجية ويتم قرائتها من الملف وهذا ما تعمله الكثير من البرامج التي توفر تغيير لغة الواجهه لبرامجها ...
"First they ignore you, then they laugh at you, then they attack you, then you win"
===
اقتباسحُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا
هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا
الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا
القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ
لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ
البردوني "أبو تمام وعروبة اليوم" 1971
===
اقتباسعبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــمو تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم
ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم
أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟
ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا
البردوني "نحن و الحاكمون "
السلام عليكم
بصراحة
جئت لأشد على أيديكم
بارك الله فيكم
هذه بداية جيدة
ولكن أريد أن أسأل
ألا تحتاجون لكي تعلموا بعض الخوارزميات وما إلى ذلك؟
تم تعديل هذه المشاركة بواسطة برق في 5 أغسطس 2006 في 03:37
System Engineer
Red Hat Certified Engineer
Red Hat Certificate Number
805010381752078
هذا الموضوع مغلق.