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

تغير الكتابة و نمظ التاريخ

مغلق
بدأه Desigen في 9 أبريل 2005 · 8 رد · 769 مشاهدة · في أرشيف قسم Windows APIs
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

يعطيكم العافية

شلون الصحة

عندي عدة أسئلة ان شالله لاقي الجواب الشافي عندكم

بدي اجعل اللغة الافتراضية في برنامج هي اللغة العربية .

كيف ممكن أعرف نمط التاريخ الإفتراضي في وندوز . dd/mm/yyyy

كيف ممكن شغل برنامج run .

كيف ممكن أعمل مثل Hyper Link عن النقر عليه يرسل إيميل

أنا أعمل على بورلاند بلدر

شكرا لكم

#2

ما في أي اقتراح

#3

إذا أردت تشغيل برنامج أو حل ملف بالتطبيق المرافق له أو فتح مسار في Explorer فلديك دالة تقوم بكل هذا ShellExecute:

HINSTANCE ShellExecute(

    HWND hwnd,	// handle to parent window
    LPCTSTR lpOperation,	// pointer to string that specifies operation to perform
    LPCTSTR lpFile,	// pointer to filename or folder name string
    LPCTSTR lpParameters,	// pointer to string that specifies executable-file parameters 
    LPCTSTR lpDirectory,	// pointer to string that specifies default directory
    INT nShowCmd  // whether file is shown when opened
   );

***مثال لكيفية تشغيل برنامج آخر من تطبيقك:

ShellExecute(Handle, "open", "Notepad.exe", 0, 0, SW_SHOWNORMAL);

و لإذا كان موجود في مسار غير معرف داخل باراميترات النظام Envoronement Parameters في ".."= path فعليك تحديد المسار كاملا كأن تكتب مثلا c:\windows\notepad.exe.

***فتح مسار في explorer:

ShellExecute(Handle, "open", "path\..\diroctory\", 0, 0, SW_SHOWNORMAL);

***فتح ملف بالبرنامج الموافق له ( كملف myfile.rar سيفتح مباشرة ب Winrar)

ShellExecute(Handle, "open", "c:\...\MyText.txt", 0, 0, SW_SHOWNORMAL);

***لفتح صفحة ويب:

ShellExecute(Handle, "open", "/", 0, 0, SW_SHOWNORMAL);

و الأمثلة كثيرة .

أنظر الملف المرفق: به مشروع بالبويلدر سي++’ يحتوي على مثال لفتح مسار الذي ثبثت به ويندوز وكذلك كيف ترسل Email بالنقر فقط على Label.

B)

shellexecute.rar

تم تعديل هذه المشاركة بواسطة ikossan في 11 أبريل 2005 في 15:51

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#4

إيه يسلموا هل ديات

عرفتك إنت انسان مميز جدا

استخدت التابع يلي عطينا ياه في الديلفي

LoadKeyboardLayOutA ( NULL , NULL )

في عندي سؤال صغير

حالت اقرأ التابع التالي

GetDateFormat ( ... )

لكن واجهة صعوبة جدا في التطبق

بس في النهاية طبقه ولكن لم أحصل على أي نتيجة

كيف ممكن اقرأ هذا التابع و أعرف استخدمه و هل يوجة مثال عليه عندك

شكرا لك

و أنا ممتن كثييير

#5

:D مشكور يا أخي Desigen.

بالنسبة لمعرفة المنهج المتبع في تعريف التاريخ Style of Date في ويندوز:

في الدول الفرونكوفونية التي تعتمد اللغة الفرنسية, كفرنسا والدول شمال إفريقيا مثلا يعتمدون كتابة التريخ على هذا النمط dd/mm/yyyy لكن في الدول الالأخرى التي تعتمد اللغة الإنجليزية فيقلبون ترتيب أرقام الأيام مع الشهور.

هذه الخصائص تبقى مميزة لمستعمل ويندوز حيث يمكنه تغييرها حسب رغبته.

يقوم ويندوز تبعا لهذه المميزات بتسجيلها داخل السجل للنظام Registry, في المسار:

HKEY_USERS\.DEFAULT\Control Panel\International

ستجد مجموعة من المتغيرات تحت هذا الفرع:

////////////////////////////////////////
HKEY_USERS\.DEFAULT\Control Panel\International\iDate	
"0" = MM/DD/YY
"1" = DD/MM/YY
"2" = YY/MM/DD


////////////////////////////////////////////
HKEY_USERS\.DEFAULT\Control Panel\International\sLongDate
 set to appropriate format exemple: MM dd yy ordddd, dd MMMM, yyyy


////////////////////////////////////////////
HKEY_USERS\.DEFAULT\Control Panel\International\sShortDate
MM/dd/yy or dd-MM-yyyy


///////////////////////////////////////////////
HKEY_USERS\.DEFAULT\Control Panel\International\sDate
- or / or .

يعني يمكنك استفسار Registry لمعرفة القيمة الإفتراضية التي تريدها.

أظن أن هذا ما كنت تريده.

بما أنك تستعمل سي++ بويلدر جرب هذا المثال:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Canvas->TextOutA(10,10,FormatDateTime("dd/mm/yyyy", Now()));
Form1->Canvas->TextOutA(10,30,FormatDateTime("dddd dd mmm yyyy", Now()));
Form1->Canvas->TextOutA(10,50,FormatDateTime("dddd dd-mm-yy", Now()));
Form1->Canvas->TextOutA(10,70,FormatDateTime("dddd dd of mmmm yyyy", Now()));
}

هذا الكود أستعملت فيه دالة من مكتبة بورلاند FormatDateTime, فهي أفضل من استعمال دالة GetDateFormat فهي جد معقدة:

_SYSTEMTIME STime;
Char sFormat[256];
Char sDate[256];

STime.wYear= 2004;
STime.wMonth = 11;
STime.wDay = 12;

StrCopy(sFormat,"dddd dd MMMM yyyy");
GetDateFormatA(
                LOCALE_USER_DEFAULT, // or  LOCALE_SYSTEM_DEFAULT
                0,
                &STime,
                sFormat,
                sDate,
                256);
Form1->Canvas->TextOutA(10,10,sDate);

تم تعديل هذه المشاركة بواسطة ikossan في 12 أبريل 2005 في 00:36

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#6

يسلموا دياتك

كتير استفددت من الميثال يلي أرفتلي ياه في البلدر

لكن ممكن اسئل سؤال

من وين بتعرفوا كل هذه التعليمات

شكرا لك

#7

هذا جيد أتمنى لك التوفيق :lol: .

عليك بمساعد Win32API Help فهو يأتي مرفقا مع بويلدر, أو عليك ب Msdn. ناهيك عن الممارسة والبحث.

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#8

يسلموا دياتك

اتصور تذكرت سؤال جدا مهم ما حدا جاوبني عليه

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

شكرا لك

#9

كيفك

عندي مشكلة بهذا الكود لو تعمله كمبايلر

و تعمل w هيطبعلك -1

هذه تدل على أن مؤشر put pointer

في البايت -1

جنيت و ما عرفت له ما عم يتحرك للبايت 0

شو رأيك

#include <iostream>
#include <fstream>
#include <string>

class TPerson 
{
	char * Name; 
	int Age; 

public :

	TPerson () { Name = new char; Age = 0; }
	TPerson ( char * N , int A ) { Name = new char; strcpy ( Name , N ); Age = A; }

	void Read_Person_Data (); 
	void Print_Person_Data () { cout << GetName () << '\t' << GetAge () << endl; }

	void SetName ( char * N ) { strcpy ( Name , N ); }
	void SetAge ( int A ) { Age = A; }

	char * GetName () { return Name; }
	int GetAge () { return Age; } 
};

void TPerson :: Read_Person_Data ()
{
	char * N = new char; int A; 

	cout << "Enter Name : ";
	cin >> N; 
	cout << "Enter Age : "; 
	cin >> A; 

	SetName ( N ); 
	SetAge ( A ); 
}

class TFile
{
	fstream File; 

public : 

	TFile () {}; 
	TFile ( char * N ) { File.open ( N , ios::in | ios::out | ios::binary ); }

	void Write_Data_To_File (); 
	void Read_All_Data_From_File (); 
};

void TFile :: Write_Data_To_File ()
{
	cout << File.tellg (); 

	TPerson * Person = new TPerson; 
	Person->Read_Person_Data (); 

	File.write ( ( char * ) Person , sizeof ( * Person ) ); 

	delete [] Person; 
}

void TFile :: Read_All_Data_From_File ()
{
	TPerson * Person = new TPerson; 

	File.seekg ( 0 , ios_base::beg ); 

	while ( File.eof () == 0 ) 
	{
  File.read ( ( char * ) Person , sizeof ( * Person ) ); 

  Person->Print_Person_Data (); 
	}

	delete [] Person; 

	File.clear (); 
}

int _tmain(int argc, _TCHAR* argv[])
{
	TFile F ( "C:\\BinaryFile2.dat" ); 

	bool Exit = false; char ch; 

	while ( !Exit ) 
	{
  cout << "Enter w To Write Data \n"; 
  cout << "Enter r To Read All Data From File \n"; 
  cout << "Enter x To Exit \n";
  cout << "Your Chose : "; 
  cin >> ch; 

  switch ( ch ) 
  {
  case 'w' : 
 	 F.Write_Data_To_File (); 
  break;
  case 'r' : 
 	 F.Read_All_Data_From_File ();
  break; 
  case 'e' : 
 	 Exit = true; 
  break; 
  }
	}

	return 0;
}

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

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