|
25-10-2004, 01:08
|
|
|
|
חבר מתאריך: 23.11.03
הודעות: 4,041
|
|
מבוא ל- Borland Delphi 7
מבוא ל- Borland Delphi 7 - חלק א'.
שלום לכולם. ברצוני לדבר היום על השפה שלא כולם מכירים – Delphi.
מהו Delphi?
Delphi מבית Borland היא שפת תכנות ויזואלית, המבוססת על פסקל. יותר נכון, Object Pascal – תכנות פסקל בעזרת Objects (כמו VB – בייסיק בעזרת Objects). נוחות הממשק, עזרה מובנית, debugger חכם ועוד, הופכים את Delphi לאחד מכלי ה- RAD הטובים ביותר בשוק.
הכירות עם הממשק.
תמונה 1:
בואו נכיר את הממשק מעט:
1 - Component Palette (לוח רכיבים)
לוח רכיבים זהו המקום שכולל את כל הרכיבים הויזואליים, אותם ניתן לשים וליישם בתוך ה- Form. הם מחולקים בנוחות עפ"י נושאים, כגון Standard, Win32, Additional, Data Access ועוד הרבה.
2 – Object Inspector (מפקח האובייקטים)
Object Inspector הוא המקום שמשתמשים בו ב-90% מן הזמן בעת העיצוב של התוכנה. תפקידו בעיקר הוא לשנות את מאפייני הרכיבים (גודל, צורה, צבע, גופן, כיתוב וכו'), והוא גם Event Manager – אחראי לאירועי הרכיבים.
3 – Code Editor (עורך הקוד)
עורך הקוד הוא המקום שבו ניתן לכתוב את הקוד שלנו. הוא כולל השלמת קוד דינאמית חכמה (ניתן לקרוא לה עם המקשים Ctrl+Space), הדגשת קוד למילים שמורות, תהליכים, פונקציות וכד'.
4 – Form Editor (עורך ה- Form)
ה- Form הוא המקום שבו אנחנו שמים את הרכיבים שלנו, ומעצבים אותו בהתאם לצורה שבא אנו רואים את התוכנה שלנו. ניתן להוסיף רכיבים ע"י לחיצה כפולה על סמל הרכיב מתוך Component Palette, או לחיצה אחת על הסמל, ולחיצה נוספת בכל מקום על ה- Form.
5 – Object TreeView (עץ-מבנה אובייקטים)
מספק לנו את ההיררכיה שבא נוצרים הרכיבים. נוח מאוד לדעת לאיזו קבוצה שייך איזה רכיב (למשל, תיבת טקסט שנוצרה בתוך Groupbox בלתי ניתנת לגרירה מחוצה לו – אפשר לראות את זה בצורת עץ).
טוב, אחרי שהכרנו מעט את הממשק, הגיע הזמן לעשות אפליקציית Hello World פשוטה. נעשה את זה ב- 2 דרכים – תוכנה ויזואלית, ותוכנת Console.
Hello World #1 – שימוש ב- VCL.
VCL זהו ה- Visual Library של בורלנד ליצירת רכיבים, הדומה מאוד ל- MFC. ההבדל היחיד ביניהם, שבברירת מחדל, VCL מתהדר לתוך קובץ ה- EXE ואינו זקוק לשום DLL חיצוני להפעלה. יש בזה את היתרון ואת החיסרון – היתרון הוא שקובץ שניצור בעזרת VCL ירוץ על כל מערכת ההפעלה, ללא שום תלות ב- DLL חיצוני (אפילו ירוץ על לינוקס, אם במקום VCL נשתמש ב- CLX). החיסרון הוא – גודל הקובץ. פרויקט חדש ללא שורה של קוד שלנו ייקח (ב- Delphi 7) כ- 360 קילובייט.
תמונה 2:
מתחילים! ניצור פרויקט חדש ע"י File -> New -> Application. אנחנו נקבל Form ריק. נעשה תוכנת Hello World אשר מציגה הודעה בעת לחיצה על כפתור.
בתוך Object Inspector נוכל לקבוע מספר מאפיינים לתוכנה החדשה שלנו. קודם כל, בשדה Caption נוכל לרשום שם לתוכנה שלנו, לדוגמא 'Hello World v1.0'. לאחר שנרשום, נראה שהכותרת של ה- Form שלנו השתנתה בהתאם. בנוסף, נבחר תחת Border Style את האופציה bsSingle. זה יגרום לתוכנה להיווצר ללא אפשרות שינוי גודל ע"י גרירה. בנוסף, נמחק את כפתורי Maximize ו- Minimize שאין לנו צורך בהם, ע"י קביעתם כ- False תחת Border Icons. בסוף, נשנה ל- Form את השם ל- frmMain בשדה Name.
מתוך Standard ב- Component Palette נבחר את האובייקט Button ונשים אותו על ה- Form שלנו. נקבע לו את השם (Name) בתור btnOk, וב- Caption נרשום OK במקום מה שרשום (Button1). נשנה קצת את גודל ה- Form כדי שלא יהיה גדול במיוחד. עכשיו הגיע הזמן לכתוב קוד.
נלחץ פעמיים על הכפתור החדש שלנו. זה ייקח אותנו ל- Event Handler החדש שנוצר עבורנו. עכשיו נוסיף את הקוד הבא:
קוד:
MessageDlg('Hello World!', mtInformation, [mbOk], 0);
נריץ את התוכנה שלנו בעזרת F9. אם לא עשינו טעות מקודם, אנחנו נקבל את התוצאה:
תמונה 3:
שימו לב: הפקודה MessageDlg היא הפקודה של Delphi ליצירת הודעות. זהו לא ה- API של הפונקציה MessageBoxA. אם היינו רוצים להשתמש בא במקום המובנית ב- Delphi, הקוד שלנו היה אמור להיראות מעט שונה:
קוד:
MessageBoxA(0, 'Hello World!', 'My First App!', MB_OK + MB_ICONINFORMATION);
מאז גרסא 7 של Delphi ניתן להוסיף Manifest ויזואלי לתוך התוכנה. כמו שאנו רואים, התוכנה נוצרה בברירת מחדל ללא תמיכה ב- Themes של Windows XP. כדי להוסיף את התמיכה יש לשים על ה- Form את הרכיב XPManifest שנמצא ב- Win32 בתוך Component Palette שלנו. אין צורך יותר לעשות דבר – רק לשים את הרכיב, ולהדר שוב את התוכנה (F9) :
תמונה 4:
כאן אנחנו רואים איך התוכנה נראית ב- Design Time (מצד שמאל), וב- Run Time עם ה- XP Manifest (צד ימין). רואים את ההבדל בין הדוגמא הראשונה?
הערה חשובה: אם אין ברשותכם Delphi 7, ניתן להוסיף את ה- Manifest ידנית. בשביל לעשות את זה, יש ליצור קובץ טקסט חדש בספריה שבא נמצא קובץ ה- EXE של התוכנה שלכם, ולרשום בו את הדבר הבא:
קוד:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Your.Application.Name.Here"
type="win32"
/>
<description>Your Description Here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
יש לשמור את הקובץ כ- application.exe.manifest בספריה שבא נמצא הקובץ EXE. לדוגמא, אם לתוכנה שלכם קוראים HelloWorld.exe, קובץ ה- manifest צריך להיקרא HelloWorld.exe.manifest.
טיפ: כדי לגרום ל- Delphi לתמוך ב- Themes של XP, יש לשים קובץ manifest כזה בספריה של הקובץ .exe32Delphi (בברירת מחדל – C:\Program Files\Borland\Delphi 7\Bin) בצורה כזו:
קוד:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Borland.Delphi.7.Enterprise"
type="win32"
/>
<description>http://www.borland.com/delphi/</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
לשמור את הטקסט הנ"ל בשם delphi32.exe.manifest. התוצאה שנקבל היא:
לפני:
אחרי:
למרות ההוספה של תמיכה ויזואלית ל- Delphi עצמו, זה עדיין מחייב הוספת XPManifest לתוכנות שלנו, כדי שגם הן יתמכו ב- Themes של Windows XP.
Hello World #2 – אפליקציית Console
עכשיו נבנה אפליקציה דומה, אבל בתור Console. ככה זה יראה יותר כמו תכנות בפסקל. ניצור תוכנת Console חדשה ע"י File -> New -> Other -> Console Application.
מה שמאפיין תוכנת Console הוא ה- Compiler Directive בשם {APPTYPE CONSOLE$}. כל עוד אנחנו מעוניינים באפליקציית Console, עלינו להשאיר את ה- Directive הזה.
נמחק את הקוד ש- Delphi הכין עברינו, ונוסיף קוד משלנו. הקוד שלנו יראה ככה:
קוד:
program HelloWorld;
{$APPTYPE CONSOLE}
begin
WriteLn('Hello World #2!');
WriteLn('Press enter to quit');
ReadLn;
end.
ניתן לשלב Console API לתוכנה שלנו. כדי לעשות את זה, יש להוסיף uses Windows לקוד שלנו לפני begin. אם נרצה לדוגמה להחליף את צבע הטקסט, ולהוסיף כותרת, נשתמש בקוד הבא:
קוד:
program HelloWorld;
{$APPTYPE CONSOLE}
uses Windows;
begin
SetConsoleTextAttribute(GetStdHandle(
STD_OUTPUT_HANDLE),
FOREGROUND_RED OR
BACKGROUND_GREEN);
SetConsoleTitleA('Hello World Console App #2'); WriteLn('Hello World #2!');
WriteLn('Press [enter] to quit');
ReadLn;
end.
והתוצאה שנקבל:
סיכום
לצערי, אין הרבה ביקוש ל- Delphi בישראל, וחבל. Delphi היא שפה חזקה כל כך, שיכולה לעשות כל משימה שיש לעשות. אני מקווה שהמאמר היה מובן, ואם יש שאלות כלשהן, אשמח לענות עליהן פה.
אגב, ניתן להוריד גרסת ניסיון ל- 60 יום של Delphi 7 מהאתר http://www.borland.com/products/downloads/download_delphi.html תיהנו!
נערך לאחרונה ע"י fat fish בתאריך 02-11-2004 בשעה 12:18.
|
|