آموزش دلفی :: درس ۳

با سلام .

 

نکات مفید کار در محیط دلفی
محیط دلفی برای برنامه نویسی یکی از بهترین محیطهای برنامه نویسی است گذشته از کارکرد داخلی و کمپایلر آن که بسیار قوی و سریع است، محیط آن یعنی IDE آنهم قدرت بسیار زیادی دارد که باعث شده یکی از بهترین ادیتورها باشد. در این مقاله من سعی بر این داشته ام تا با ارائه یک سری از نکات و کلیدهای میانبر که می توانند برای کار در دلفی بسیار مفید و کارا باشند، کمک کنم تا شما بتوانید با قدرت بیشتر به برنامه نویسی و کار در این محیط قدرتمند ادامه دهید.

در قسمت اول مقاله که در حال حاضر در مقابل شماست من یک سری از کلیدهای میانبر و ترکیبی مورد استفاده در IDE دلفی را بصورت لیست وار و همراه یک توضیح کوچک آورده ام. دوستان عزیز برنامه نویس ممکنه که شما مدتها با دلفی مشغول برنامه نویسی بوده باشید اما من یقین دارم که در این لیست نکات و روشهای جدیدی را خواهید آموخت.

جستجو در متن بصورت مستقیم:
برای اینکار کلیدهای Ctrl+E را بفشارید و بدنبال آن شروع به تایپ کلمه مورد نظر کنید نتیجه آن را خود ببینید. برای اینکه به کلمه بعدی بروید کافیست کلید F3 را بزنید.

ایجاد فرورفتگی در کد:
بعضی اوقات - که خیلی هم پیش می‌آید - لازم است که یک مقداری از متن را بصورت بلوک شده به جلو و یا عقب ببریم. منظور دندانه دار کردن متن است که به خوانایی برنامه کمک می کند. برای اینکار می تونید از کلید Ctrl +Shift+I برای جلو بردن و Ctrl+Shift+U برای عقب برگرداندن متن بلوک شده استفاده کنید.

پرش به قسمت تعریف یک شی (Object):
ببنید شی مورد نظرتون (از قبیل VCL, Procedure, Function,...) در کجا و چطور تعریف شده می توانید کلید Crtl رو پایین نگه داشته و روی شی مورد نظر Click کنید.

برای تغییر حالت کاراکترها:
شما می توانید یک قسمت از متن (که ممکن است با حروف بزرگ و یا کوچک تایپ شده باشد) را انتخاب کنید و با زدن کلیدهای Ctrl+O+U به ترتیب تمامی حروف کوچک آن قسمت از متن را به حروف بزرگ و تمامی حروف بزرگ آنرا به حروف کوچک تبدیل کنید. برای تعییر حالت یک کلمه نیز میتوانید روی کلمه مورد نظر رفته و کلیدهای Ctrl+K+F برای بزرگ کردن و کلیدهای Ctrl+K+E را برای کوچک کردن حروف آن کلمه بکار برد.

درست کردن ماکرو متنی:
این امکان بسیار مفید است و می تواند بسیاری از کارهای نوشتاری را کاهش دهد با اینکار شما میتوانید یک سری از کارهای تکراری که روی متون انجام می دهید را بصورت ماکرو در آورده و از آنها به راحتی استفاده کنید. برای شروع به ضبط ماکرو کلیدهای Ctrl+Shift+R را بفشارید و آن سری کارهایی را که می خواهید را انجام دهید و سپس برای اینکه به کار ضبط ماکرو پایان دهید کلیدهای Ctrl+Shift+R را دوباره بزنید. حال برای استفاده از ماکرو کافیست در هر جا که لازم بود کلیدهای Ctrl+Shift+P را بفشارید.

انتخاب متن بصورت مربعی:
اگر شما از کهنه کارهای کامپیوتر باشید حتما از زمان داس یادتون هست که برنامه ای بود به نام PE2 که یکی از امکانات بسیار جالبش این بود که یک مربع از متن رو میتوانستین انتخاب کنید و آنرا کپی یا حذف کنید. بله درست متوجه شدید در محیط دلفی هم شما اینکار را میتوانید انجام دهید اما نه به مشکلی PE2 بلکه اینکار را میتوانید فقط با گرفتن کلید Alt و کشیدن موس روی متن انجام دهید. هر چند ممکن است در نگاه اول زیاد این امکان مفید به نظر نیاید ولی بعضی وقتهای خیلی کار را راحت میکنه، که حتماً تجربه خواهید کرد.

گذاشتن علامت روی متن:
این کار که به BookMark معروف است بسیار مفید و کارا می باشد. در هنگامی که شما روی قسمتی از متن برنامه کار میکنید و می خواهید به یک قسمت دیگر بروید ممکن است برای برگشتن به مکان اول خود کمی مشکل پیدا کنید. ولی شما میتوانید با زدن چند دکمه به محل مورد نظرتون باز گردید. برای اینکار در خطی که قصد دارید علامت بگذارید کلیدهای Ctrl+Shift+0..9 را بفشارید. منظور اینست که کلیدهای Ctrl+Shift را نگه دارید و یکی از اعداد 0 تا 9 را وارد کنید تا آن خط به همان شماره علامت گذاری شود و سپس هر جا که خواستید بروید و سپس هر بار که کلید Ctrl را نگه دارید و شماره مورد نظر را وارد کنید به همان خط باز خواهید گشت. البته توجه داشته باشید که فقط می توانید 10 خط را با این روش علامت گذاری بکنید و برای برداشتن علامت ها کافیست روی همان خط دوباره کلید Ctrl+shift و شماره‌ای که برای آن خط وارد کرده اید را بفشارید با اینکار علامت آن خط برداشته می شود.

ایجاد کلاس مورد نظر:
شما هنگامی که در قسمت Private و یا Public یک type، روال یا تابع درست کردید لازم دارید که قسمتی را برای قرار دادن کدهای مربوط به آن روال یا تابع را ایجاد کنید. برای اینکار شما پس از اینکه نام تابع را تایپ کردید می توانید کلیدهای Ctrl+Shift+C را فشار دهید تا دلفی یک قسمت برای نوشتن کدهای مورد نظرتان ایجاد کند.

ظاهر کردن پنجره Code insight:
شما حتما به اهمیت و مفید بودن این قسمت دلفی واقفید که در هنگام کد نویسی تا چه حد می تواند کارها را راحت کند. بله در هنگام وارد کردن کدها بعد از وارد کردن نام یک کلاس و یا Object با زدن یک نقطه (.) پنجره Code Insight ظاهر می شود. حال در بعضی وقتها شما ممکن است که نقطه را قبلا وارد کرده باشید و یا در مواقع دیگر این پنجره ظاهر نشود. در این صورت برای اینکه پنجره را ظاهر کنید باید دوباره نقطه را وارد کنید ولی راه آسانتری هم وجود دارد و آن اینست که کلیدهای Ctrl+Speacebar را فشار دهید.

ظاهر کردن پنجره Code Parameter:
همانند بالا در هنگام ظاهر شدن Hint مربوط به راهنمای توابع که معمولاً بعد از گذاشتن پرانتز مربوط ظاهر میشود و در مورد پارامترهای لازم می باشد نیز می توانید از کلیدهای Ctrl+Shift+SpaceBar استفاده کنید.

رفتن از قسمت تعریف توابع و روالها به قسمت کد آنها:
همیشه این نیاز وجود خواهد داشت که شما در هنگامی که دارید به دنبال یک روال در قسمت type میگردید بعد از پیدا کردن نام آن می خواهید که خود آن تابع یا روال را نیز ببنید. برای اینکار خوب حتما نام آن را جستجو میکنید ولی یک راه آسانتر اینست که شما روی نام آن تابع قرار گیرید و کلیدهای Ctrl+Shift+Up/Down را بزنید. در اینحالت اگر روی کد تابع باشید به قسمت تعریف آن خواهید رفت.

 

تا بعد ... در پناه حق

آموزش اکسس :: درس ۳

با سلام و عرض پوزش برای وقفه چند روزه

صدور پیغامهای فارسی بجای پیغامهای Error اکسس
یکی از دوستان وبلاگی من پرسیده بود چطوری پیغام
Error مربوط به ورود رکورد تکراری را در اکسس فارسی کنیم . ترجیح دادم جواب کاملی برای سئوال ایشون بدم تا همه استفاده کنن. بنابراین ابتدا جواب ایشون رو میدم و بعد از اون بطور کاملتر برای همه وبلاگی های عزیز روش کنترل خطا را تشریح می کنم .

(توجه داشته باشید که در زیر کدهای نوشته شده از راست به چپ نمایش داده می شوند)

جواب دوست ما:
در رویداد
OnError مربوط به فرم ورود اطلاعات این کد را می نویسیم:


If DataErr = 3022 Then
MsgBox "
اطلاعات وارده تکراری است"
Response = acDataErrContinue
End If


جواب کلی :
اساسا ، هر خطا در اکسس یا
VB یک کد تولید می کند . برنامه نویسان باید یک بانک اطلاعات از کد خطاهایی که رخ می دهد داشته باشند تا بتوانند با چک کردن شماره خطا پیغام فارسی مناسب آن خطا را صادر کنند .

بطور کلی دو روش کنترل خطا از این قرارند:

1- اگر خطا مربوط به کل فرم باشد باید از طریق رویداد
OnError فرم کنترل شود .
معمولا خطاهایی که مربوط به کدنویسی ما نبوده و صرفا توسط اکسس و در واکنش به اشتباهات کاربر صادر می شود در این رویداد کنترل می شود . در این رویداد ، پارامتر
DataErr حاوی کد خطاست. (بعبارت واضح تر اگر می خواهید کد مربوط به هر Error را شناسایی کنید می توانید این دستور در رویداد OnError فرم بنویسید: MsgBox DataErr )

بطور کلی بعد از اینکه کد خطاها را شناسایی کردید با نوشتن قالب برنامه زیر در رویداد
OnError فرم می توانید خطاها را کنترل کنید :


Dim Str as String

Select Case DataErr
Case 3022
Str="
اطلاعات وارده تکراری است"
Case 2237


Str = "اطلاعات وارده در لیست وجود ندارد"
'خط فوق برای مواردی است که یک مقداری که در کمبو باکس وجود ندارد ، تایپ شده باشد


Case ...
Str=...
....
End Select

Msgbox Str
Response = acDataErrContinue



2- اگر خطا مربوط به کدهایی باشد که خودمان در یک
Sub نوشته ایم :
در این روش باید در ابتدای
Sub با دستور : <اسم زیر روال کنترل خطا> On Error Goto ، کنترل خطا را به یک روال کنترل خطا ارجاع دهیم.
( تمام کدهایی که ویزارد
Command Button بطور خودکار در رویداد OnClick دکمه ها ایجاد می کند نمونه خوبی برای این روش هستند. ضمنا در این روش بکمک Err.Number کد خطا شناسایی می شود )

تا بعد ... در پناه حق

نرم افزار call filter برای موبایل

با سلام .

اگر شما هم بعضی اوقات دوست ندارید به شماره خاصی جواب بدید پس این ادامه مطلب رو بخونید .

با این نرم افزار شما یک لیست سیاه و سفید ایجاد می کنید .

در واقع این نرم افزار یک جور فیلتر شماره تلفن ها است . چند قسمت و گزینه داره که در زیر شرح اون رو بخونید .

ابتدا قسمت black list :

گزینه Option : در این قسمت چند گزینه دیگر دارد که توضیح می دم :

گزینه Hide Active : با استفاده از این قسمت می تونید برنامه رو فعال و سپس از محیط برنامه خارج شوید . با انجام این کار پس از خروج برنامه به کار خود ادامه می دهد .

گزینه Add New : این قسمت خود دارای ۳ بخش زیر است :

گزینه Number : اگر شماره مورد نظر شما در دفترچه تلفن همراهتان تا به حال ثبت نشده است برای ثبت آن شماره از این بخش استفاده کنید .

گزینه Sequence : با استفاده از این بخش می تونید شماره های مورد نظر را دسته بندی کنید .

گزینه From Contacts : با توجه به معنی این بخش اگر می خواهید کسانی که در دفترچه تلفن شما هستند در لیست سیاه قرار گیرند از این بخش استفاده کنید .

گزینه های بخش Add new تمام شد . خوب بریم سراغ گزینه های بعدی .

گزینه Remove : این بخش برای پاک کردن شماره های موجود در لیست است که به زیر شاخه Focused و All دسته بندی می شود . اگر از Focused‌ استفاده کنید تنها آن شماره تلفنی از لیست حذف می شود که بر روی آن منوی برنامه باز شده باشد ولی اگر از All استفاده کنید همه شماره تلفنهای موجود در لیست سیاه کلا حذف می شود .

گزینه Reject All : با استفاده از این قسمت تمام شماره های موجود در یک لیست سیاه به یک باره قطع می شوند . برای غیر فعال کردن این بخش تنها کافی است که یک بار دیگر Option را باز کنید و این بار Cancle Reject All را انتخاب کنید .

گزینه Program نیز دارای سه بخش زیر است :

گزینه Register : در این بخش نام فرد رجیستر کننده برنامه را می بینید .

گزینه Help : اگر توضیحات بیشتری راجع به نرم افزار می خواهید پس بهتره این بخش رو مطالعه کنید .

گزینه About : در این بخش هم در مورد نسخه و سایت تولید کننده و ... نرم افزار اطلاعاتی کسب کنید .

اما همانطور که گفتم شما دو لیست می تونید تهیه کنید . لیست سیاه رو توضیح دادم و حالا لیست سفید .

در این لیست امکانات لیست سیاه به طور کامل نیست و تنها قسمتهای Remove  و Add New در لیست وجود دارد که قبلا توضیح دادم . در واقع لیست سفید همان کار دفترچه تلفن رو انجام می ده .

تا بعد ... در پناه حق

دلفی :: درس ۲

با سلام .

مدیریت حافظه در دلفی
تخصیص خودکار حافظه
وقتی شما از نوع‌های پایه (Integer ،real ،word و…) برای ایجاد متغییرهای خود استفاده می کنید، هیچ نگرانی درباره تخصیص حافظه آن وجود ندارد چون دلفی خودش آنرا تخصیص حافظه می کند و سپس آزاد میکند.



type
TDay = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
var
Name : String; {256 Bytes}
X, Y : Integer; {4 + 4 = 8 Bytes}
List : array [0..10] of Double; {8 * 11 = 88 Bytes}
Today : TDay; {1 Byte}


دراین نمونه پس از پایان برنامه، تمام حافظه تخصیص داده شده فراخوانی و آزاد می شود.


تخصیص حافظه دینامیکی
در این حالت برنامه نویس احتیاج دارد تا انباره حافظه را شخصا" تخصیص و آزاد کند.

نوع Pointer
اشاره‌گرها در دلفی می‌توانند شکل‌های مختلفی را در برگیرد. نخست، نوع اشاره‌گری که یک آدرس حافظه را برای نوع ویژه‌ای از داده، همانند صحیح، رشته و غیره نگه میدارد (Typed Pointer).



var
;Number : ^Integer
;Name : ^String


دوم، اشاره‌گرهای بدون نوع. اشاره‌گرهای بدون نوع (Untyped Pointers) خیلی به نوع معمولی خود شبیه هستند. اما محدودیت‌هایی مثل اینکه باید به نوع خاصی اشاره (Point) کند را ندارد.



var
;Something : Pointer


حال اشاره‌گر بدون نوع ما می تواند به هر نوعی از داده اشاره کند. برای تخصیص حافظه آن، از کمپلکس بیش از یک بیت استفاده میکنیم. برای مثال برنامه زیر کامپایل می شود ولی در زمان اجرا حافظه‌ای تخصیص نمیشود.



begin
New(Something);
Dispose(Something);
end;


برای تخصیص حافظه کامپایلر باید بداند که نوع داده ما برای تخصیص حافظه چیست:



type
IntPtr = ^Integer;

var
Something : Pointer;
begin
Something := New(IntPtr);
Integer(Something^) := 10;
Dispose(Something);
end;



تخصیص بلاکی از حافظه
ما می‌توانیم از اشاره به بلاک‌هایی از تخصیص حافظه در سیستم استفاده کنیم. این کار را با رویه‌های GetMem و FreeMem برای تخصیص و آزاد سازی حافظه استفاده میکنیم.



var
Something : Pointer
begin
GetMem(Something, 100);
FreeMem(Something, 100);
end;



اشاره به حافظه از قبل تخصیص داده شده
هر دو نوع اشاره‌گرها می توانند به هر جایی از حافظه اشاره بکنند. این بدان معناست که آنها می‌توانند اشاره به فضای اشغال شده با داده‌هایی که در حال حاضر موجودند داشته باشند. این نمونه اشاره‌گر احتیاجی به تخصیص حافظه ندارد.



var
Something : Pointer;
MyString : PChar; // type PChar = ^Char;

begin
GetMem(Something, 100);
MyString := Something;
StrCopy(Something, 'Hello World');
FreeMem(Something, 100);
end;



حافظه Heap
Heap شامل قسمتی از حافظه موجود در یک برنامه است که آنرا حافظه پویا می نامیم. Heap بخشی است که در آن تخصیص و تعریف حافظه به صورت تصادفی (Random) اتفاق می‌افتد. این به آن معناست که اگر شما سه بلاک از حافظه را به طور متوالی تخصیص دهید، می توانید بعد از هر دستور آنرا از بین ببرید. مدیر Heap جزئیات را برای شما نگهداری می کند. بنابراین شما به سادگی می توانید یک حافظه جدید را با GetMem و یا بوسیله صدا زدن constructor هنگام ساختن یک شی درخواست کنید و دلفی به شما یک بلاک جدید را برخواهد گرداند. Heap یکی از سه فضای موجود در برنامه کاربردی را استفاده کرده و دوتای دیگر به صورت فضای یکپارچه (Global) و پشته قرار می گیرند.


حافظه Stack
Stack شامل قسمتی از یک بخش از حافظه موجود یک برنامه است که دینامیکی است اما برای تخصیص و آزادسازی فرامین مخصوص دارد. تخصیص Stack به صورت LIFO می باشد. این بدان معناست که آخرین حافظه شیء شما تخصیص داه خواهد شد و سپس حذف می شود. حافظه پشته در روتین‌های نوعی استفاده می‌شود. وقتی شما یک روتین را صدا میزنید، پارامترهایش و روتین نوع آن در پشته ریخته می شود. همچنین پارامترهایی که در یک روتین تعریف میشوند، در پشته ذخیره میشوند و وقتی روتین خاتمه پیدا می کند تمام آنها به طور خودکار از بین می رود.

تا بعد ... در پناه حق

VB.NET :: درس ۲

با سلام .

 

امروز قسمت دوم VB.NET رو براتون میزارم .

 

آشنایی با Visual Basic.NET- متغیرها
متغیرها حاملهای دربرگیرنده مقادیری هستند که در جریان یک برنامه کاربردی می توانند تغییر کنند. برنامه نویسی بدون آنها، اگر نگوئیم غیرممکن، اما به سختی امکان پذیر است. در
ASP.NET، متغیرها در چند لایه وجود دارند.
لایه اول، لایه
Application است. در اینجا در هر صفحه برنامه کاربردی، همه متغیرها در دسترس همه کاربران قرار دارد. معمولا یک قطعه داده نسبتا کوچک که در معرض استفاده مکرر است، همانند اطلاعات مربوط به ارتباط با بانک اطلاعاتی، در این لایه ذخیره می شود.
لایه دوم، لایه
Session است. در این لایه، همه متغیرها در سرتاسر برنامه کاربردی یا تا برقرار بودن جلسه کاربر، در دسترس یک کاربر بخصوص هستند.
لایه سوم و آخر، لایه
Page است. در اینجا همه متغیرهای تعریف شده در صفحه در سرتاسر آن صفحه در دسترس هستند. متغیرهای تعریف شده در یک صفحه ASP.NET از صفحه دیگر قابل دستیابی نیستند.
به علاوه در زمان استفاده از
code-behindها در صفحات ASP.NET، در پیمانه های کلاس خود به متغیرهای سطح Procedure ،Private ،Public و Block دسترسی دارید. متغیرهای عمومی در کلاس هایی که در آنها ایجاد شده اند و نیز پیمانه های کلاس دیگر قابل دسترسی هستند. جلوی این متغیرها کلمه کلیدی Public قرار می گیرد. متغیرهای خصوصی تنها در دسترس توابع و روال های کلاس هایی هستند که در آنها تعریف شده اند.
قبل از متغیرهای خصوصی کلمه کلیدی
Private قرار می گیرد. متغیرهای سطح Block تنها در بلوک های برنامه ایجاد کننده خود در دسترس می باشند. قبل از متغیرهای سطح Procedure و Block کلمه کلیدی Dim قرار می گیرد.
نکته حائز اهمیت این است که باید به خاطر بسپاریم که همیشه باید نوع داده های متغیر خود را تعریف کنیم. در زیر لیستی از انواع داده های پشتیبانی شده در
VB.NET آورده شده است.
Boolean: درست یا نادرست
Byte: برای داده های عددی 0 تا 255
Char: برای یک کاراکتر یونیکد
Date: اطلاعات تاریخ و زمان
Decimal: اطلاعات عددی صحیح
Double: داده های عددی اعشاری
Integer, Long, Short, Single: داده های عددی صحیح
Object: متغیر حامل پیش فرض جهت نگهداری هر نوع شئ
String: رشته های حرفی
در نگارشهای قبلی ویژوال بیسیک و در
VBScript همه متغیرها بطور پیش فرض از نوع داده variant بودند. Variant در VB.NET وجود ندارد و با نوع داده Object جایگزین شده است.

  

انواع داده ای در Visual Basic.NET
برای تعریف یک متغیر در ویژوال بیسیک دات نت از عبارت
Dim استفاده می شود. برای مثال چمله زیر یک متغیر جدید به نام myVar تعریف می کند:
Dim myVar
هنگامی که یک متغیر مانند فوق بدون در نظر گرفتن نوع آن تعریف شود، آن متغیر بعنوان یک شئ (
Object) در نظر گرفته می شود. یک متغیر از نوع شئ در دات نت می تواند شامل انواع داده از قبیل رشته، عدد یا انواع پیچیده تر مانند کلاس باشد.
اغلب نیازی نیست که از متغیرهای از نوع شئ در برنامه استفاده شود چرا که این متغیرها باعث کاهش کارآیی و سرعت برنامه می شود. هنگامی که از یک متغیر از نوع شئ استفاده شود، نوع مناسب آن متغیر در زمان اجرا تشخیص داده می شود و این باعث کندی می شود. بنابراین بهتر است که نوع داده را از ابتدا مشخص کنیم.
جهت مشخص نمودن نوع داده از کلمه کلیدی
As استفاده می کنیم. بعنوان مثال یک متغیر از نوع رشته بصورت زیر تعریف می شود:
Dim myVar As String
مجموعه دات نت انواع داده ای زیر را پشتیبانی می کند:
Boolean: جهت مقادیر درست یا نادرست
Byte: جهت مقادیر صحیح صفر تا ۲۵۵ (تنها مقادیر مثبت)
Char: جهت مقادیر نویسه ها یا حروف یونیکد
Date: جهت مقادیر تاریخ و زمان بین اول ژانویه ۰۰۰۱ و ۳۱ دسامبر ۹۹۹۹
Decimal: جهت مقادیر صحیح بین صفر و مثبت و منفی ۷۹,۲۲۸,۱۶۲,۵۱۴,۲۶۴,۳۳۷,۵۹۳,۵۴۳,۹۵۰,۳۳۵ (۱۶ بایت)
Double: جهت مقادیر اعشاری با دقت مضاعف
Integre: جهت مقادیر صحیح بین +۲,۱۴۷,۴۸۳,۶۴۷ و -۲,۱۴۷,۴۸۳,۶۴۸ (۴ بایت)
Long: جهت مقادیر صحیح بین -۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۸ و +۹,۲۲۳,۳۷۲,۰۳۶,۸۵۴,۷۷۵,۸۰۷ (۸ بایت)
Short: جهت مقادیر صحیح بین -۳۲,۷۶۸ و +۳۲,۷۶۷ (۲ بایت)
Single: جهت مقادیر اعشاری با دقت واحد
String: جهت مقادیر رشته ای با تعداد حروف صفر تا دو میلیارد حرف
پر کاربردترین انواع داده ای عبارتند از
Integer، Decimal، Date، Boolean و String.
دقت کنید که نوع داده ای
Currency یا Money برای مقادیر پولی در نظر گرفته نشده است و شما می توانید برای مقادیر پولی از نوع Decimal استفاده کنید.

 

ساختارهای شرطی در Visual Basic.NET
این گفتار برآنیم تا ساختارهای شرطی در ویژوال بیسیک دات نت را بررسی کنیم. این ساختارها
If..Then و Select..Case می باشند.
ساختار
If..Then
ابتدائی ترین ساختار شرطی در ویژوال بیسیک دات نت ساختار
If..Then می باشد. با استفاده از این ساختار هنگامی که شرط مورد نظر برقرار باشد، می توان دستور یا دستورات متعددی را اجرا نمود.
بعنوان مثال در برنامه زیر اگر زمان سیستم بعد از ظهر را نشان دهد، جمله "
Good Evening IranASP.NET" بر روی صفحه نمایش داده می شود.

همچنین ساختار
If..Then عبارت Else را هم پشتیبانی می کند. اگر شرط مربوط به If برقرار نباشد، دستورات موجود در قسمت Else اجرا می شوند. به مثال زیر توجه فرمائید.

ساختار
Select..Case
در ساختار
Select..Case می توان مقداری را با مقادیر مختلفی مقایسه کرده و دستورات مربوط به مقدار یافت شده را اجرا نمود. بعنوان مثال قطعه برنامه زیر پیامهای مختلفی را برحسب نوع مرورگر نمایش می دهد.

دقت داشته باشید که ساختار
Select..Case در برنامه فوق دارای یک قسمت Case Else می باشد. هرگاه هیچ یک از حالات مقایسه ای برقرار نبود، دستورات موجود در قسمت Case Else اجرا می گردند. استفاده از Case Else اختیاری است.

 

متغیرهای ایستا در ASP.NET
ر
ASP همواره از شئ Application برای ذخیره متغیرهای سراسری استفاده می شد. این عمل از لحاظ اختصاص فضای حافظه چندان مناسب نبود. در دات نت می توانیم با سود بردن از خواص متغیرهای ایستا در اکثر موارد نتیجه بهتری بدست آوریم. این روش در اکثر موارد سریعتر از استفاده از شئ Application خواهد بود.
در دات نت اکثر اشیاء به صورت کلاس در نظر گرفته می شوند که فایل
global.asax نیز از این قائده پیروی می کند. برای استفاده از این روش در ابتدا باید به این فایل نام یک کلا س را اختصاص دهیم. دقت کنید که همیشه سعی می کنیم در نامگذاری از اسامی که راهنمای ما باشند استفاده کنیم. برای مثال در اینجا از نام myglobal استفاده می کنیم. به منظور انجام این کار از کد زیر استفاده می شود.
< %@
Application Classname="MyGlobals" %>
سپس با استفاده از تگ
Script متغیرهای خود را تعریف می نماییم. دقت کنید که باید از کلمات کلیدی Public و Shared هم استفاده نمایید.


< Script language="vb" runat="server ">
Public Shared sAli as String = "This is just a test"
< /Script>



با کد بالا ما متغیر خود را به نام
sAli تعریف نمودیم. حال با استفاده از نام کلاس و این نام می توا نیم آن را در تمام صفحات خود به صورت مستقیم صدا کنیم.


x = MyGlobals.sAli
کدهای نمونه را می توانید مشاهده کنید.
< %@ Application Classname="MyGlobals" %>

< Script language="vb" runat="server" >

Public Shared sGreeting as String = " This is just a test"

< /Script >
< % @Page Language="VB" % >

< HEAD >
< script Language='vb' runat=server >
Private Sub Page_Load( ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load
Label1.Text = MyGlobals.sGreeting
End Sub
< /script >
< /HEAD >

< asp:label runat=server id=Label1 >< /asp:label >
< / body>
< /HTML >

تا بعد ... در پناه حق

اکسس ( بخش دوم )

با سلام .

 

در این یادداشت روش غیرفعال کردن دکمه Shift به هنگام باز شدن فایلهای اکسس را توضیح خواهم داد . در ابتدا باید مقدمه ای را عنوان کنم.

مقدمه
مطلب زیر در زمینه افزایش امنیت سیستم ها است. نکته ای که در زمینه امنیت هر نوع سیستمی باید به آن توجه داشت اینست که بطور کلی امنیت یک امر نسبی است .
بعبارت دیگر یک راه حل امنیتی ، قطعا جلوی بسیاری از حملات علیه سیستم را خواهد گرفت ولی هیچگاه بطور کامل حملات را خنثی نخواهد کرد و همیشه حفره های امنیتی وجود خواهند داشت .
در یادداشت قبل گفتیم که به هنگام باز شدن فایلهای اکسس،
Startup اجراء می شود . به کمک گزینه های Startup می توانیم از دسترسی کاربران به محیط طراحی برنامه جلوگیری کنیم . ولی همانطور که قبلا گفته شد میکرو سافت با انگیزه ایجاد سیستم امنیتی چند مرحله ای یک روش ضد امنیتی برای آن ایجاد کرده است و کاربران برنامه ما می توانند با پایین نگه داشتن دکمه Shift از اجراء Startup جلوگیری کنند و وارد محیط طراحی شوند . حال اگر بخواهیم دکمه شیفت را غیر فعال کنیم تا کسی نتواند وارد محیط طراحی شود باید به این طریق عمل کرد :

استفاده از خاصیت
AllowByPassKey
خاصیت
AllowByPassKey یکی از خواص شیء Database است که:
اگر مقدار آن
True باشد دکمه شیفت فعال است .
و اگر مقدار آن
False باشد دکمه شیفت غیر فعال است .

این خاصیت عملا در لیست خواص یک
Database نیست و باید آنرا فقط برای اولین بار ایجاد (Create) کرد . بعد از ایجاد آن می توان مقدار آنرا False یا True کرد .

تذکر : حتما یک کپی از فایل خودتان قبل از اجراء این برنامه بردارید چون ممکن است دیگر نتوانید وارد محیط برنامه خودتان شوید . من هم با عرض معذرت وقت پاسخگویی به ایمیل های دوستان را ندارم و دچار مشکل خواهید شد.

سه دکمه روی یک فرم مطابق شکل بالا ایجاد کنید و کدهای زیر را در آن بنویسد.
(نمایش کدهای نوشته شده مناسب نیست ولی اگر آنرا در حافظه کپی کنید و در ماجول فرمتان کپی کند بدرستی تمایش داده می شود .)



'
برای اولین دفعه :
Private Sub Create_Click()
On Error GoTo Er

Dim db As Database
Dim prp As Property
Set db = CurrentDb
Set prp = db.CreateProperty("allowbypasskey", dbBoolean, False)
db.Properties.Append prp
db.Close

Ex:
Exit Sub
Er:
If Err.Number = 3367 Then
MsgBox "
این خاصیت ایجاد شده و لازم نیست مجددا ایجاد شود"
End If
Resume Ex

End Sub

'
جهت غیر فعال کردن شیفت
Private Sub ShiftNo_Click()
Dim db As Database
Set db = CurrentDb
db.Properties("allowbypasskey") = False
db.Close
End Sub

'
جهت فعال کردن شیفت
Private Sub ShiftOk_Click()
Dim db As Database
Set db = CurrentDb
db.Properties("allowbypasskey") = True
db.Close
End Sub

تا بعد ... در پناه حق

نرم افزار برای موبایل

با سلام .

امروز هم درباره نرم افزارهایی برای موبایل صحبت می کنم .

۱- ابتدا یک آنتی ویروس آپدیت شده به نام SimWorks Antivirus 1.22 رو به شما معرفی می کنم . این نرم افزار فعلا برای سری های ۶۰ است . این نرم افزار قابلیت شناسایی Cabir.a,b,c,g,m - Mabir.a,- Mosquitos-Skulls.a,b,c,d,l,f,m,q-MetalGear.a-Sexxxy.a-Velasco.a,aT,a8-Cabir.drop-Locknut.a,b,c,d,e,f-CommWarrior.a,a8,LH-Drever.b,c,d-Botton.a-Cardtrap.a,b,c-Fontal.a,bc,e,f-Doomboot.a,c-Skudoo.b-Cadomesk.a را دارد . حجم این فایل ۴۳ کیلوبایت است که می تونید از اینجا دانلود کنید .

۲- یک پلاگینی که بچه های گروه تک دانلود زحمت کشیدند و درست کردند مربوط به فایلهای wma , ogg است . پخش این فایلها رو هم با همان Sound Recorder گوشی انجام می دهد ( با کیفیت عالی ) و هیچگونه نرم افزار جانبی هم نیاز نداره . حالا اگر بخواهید که همین فایلها رو برای زنگ گوشی استفاده کنید کافی اونها رو توی پوشه SoundsDigital بگذارید و باقی قضایا . حجم این فایل هم ۱۵۰ کیلوبایت است . از اینجا دانلود کنید .

۳- اگر یک دستگاه بلوتوث USB دارید با این نرم افزار می تونید تمام کنترل کامپیوترتون رو از طریق گوشیتون انجام بدید . می تونید با نوشتن و تعریف اسکریپت و کی مپ برای نرم افزار های دلخواهتان یا با اسکریپتهای آماده خود نرم افزا از راه دور کامپیوتر راکنترل کنید . اینجوری بگم که کنترل موس و کیبورد و مانیتور در گوشی شما خلاصه میشه . حجم این نرم افزار ۱.۴۳ مگابایت است و از اینجا دانلود کنید .

درباره بخش موبایل هم نظر بدید تا یک ارزیابی داشته باشم از این بخش . سعی می کنم تعداد مطالب درباره موبایل رو در هفته زیاد کنم .

تا بعد ... در پناه حق

یک ضد فیلتر توپ!!!!

با سلام .

 

امروز برای شما درباره ضد فیلتری توضیح می دم که فعلا به صورت Beta هست و رایگان . یک کمی دردسر داره ولی می ارزه . سرعتش هم بالاست . بنابراین بجنبید تا از کار نیفتاده . ابتدا برای شروع در اینجا ثبت نام کنید . سپس حداکثر حدود 8 ساعت بعد برای شما ایمیلی میاد که حاوی لینک دانلود با حجم 2.56 مگابایت است . بعد از اینکه این برنامه رو نصب کردید و اجرا کردید آیکون اون در گوشه سمت راست کنار ساعت ظاهر میشه . حالا با 2 بار کلیک کردن روی آیکون وارد پنجره اصلی برنامه می شید . حالا باید از قسمت Account همون یوزر و پسوردی که موقع ثبت نام دادید رو وارد کنید . سپس به قسمت General برگردید و بعد از وصل شدن به اینترنت کلید Start را بزنید . حالا هر جا می خوای برو . حتی اورکات!!!!!

یک نکته اینکه اگر با Firefox یا Opera کار می کنید باید در قسمت Setting حتما پروکسی رو 8090 تنظیم کنید .

 

فکر کنم این مطلب زیاد گفته نشده باشه . چون من 2 یا 3 جا رو دیدم که اینو گذاشتند . در مورد این مطلب هم نظر بدید تا بدونم مورد توجهتون قرار گرفته (انشاا...) یا نه .

 

تا بعد ... در پناه حق