PDA

View Full Version : برنامه نمایش اشعار



saeed_h
پنج شنبه 30 خرداد 1387, 20:17 عصر
با سلام خدمت تمام اساتید محترم
من می خوام 1 برنامه با دلفی بنویسم که اشعار ذخیره شده در دیتابیس رو نمایش بده
این کار رو با dbGrid انجام دادم ولی ظاهر مناسبی نداره
شما چی پیشنهاد میدین؟

Hsimple11
پنج شنبه 30 خرداد 1387, 20:52 عصر
دوست عزیز منظورتان از بد نمایش داده شدن چیست؟ اشعار باید با فونتی حاص نمایش داده شوند یا طرز قرار گیری آنها بهم در DbGrid به هم میریزد؟ میخواهید فقط لیست اشعار پشت سر هم نمایش داده شود؟ در اینصورت میتوانید از هر جدولی استفاده کنید و محتویات db خود را درون آن بریزید.

موفق باشید...

dkhatibi
پنج شنبه 30 خرداد 1387, 22:25 عصر
می خواند مصراعها مرتب نشون داده بشه. مثل اشعار کتاب فارسی

babak_delphi
پنج شنبه 30 خرداد 1387, 22:38 عصر
2 تا DBLabel بگذار یا 2 تا Label بگذار و Captionش رو خودی ست کن
اگر چند بیت داری میتونی BidiMode مصراعهای اول رو RightToLeft و BidiMode مصراعهای دوم رو LeftToRight قرار بدی تا مرتب تر باشند

saeed_h
جمعه 31 خرداد 1387, 02:29 صبح
با تشکر از تمامی اساتید محترم
مشکل اینجاست که تعداد ابیات در هر شعر مشخص نیست
برنامه به این صورت هستش که لیست عنوان های اشعار در یک dbGrid نمایش داده میشه و با کلیک بر روی هر عنوان, اشعار مربوطه نمایش داده میشن.

SYNDROME
جمعه 31 خرداد 1387, 08:47 صبح
با تشکر از تمامی اساتید محترم
مشکل اینجاست که تعداد ابیات در هر شعر مشخص نیست
برنامه به این صورت هستش که لیست عنوان های اشعار در یک dbGrid نمایش داده میشه و با کلیک بر روی هر عنوان, اشعار مربوطه نمایش داده میشن.
یکی از راه ها این است که برای هر بیت 1 رکورد در نظر بگیری و هر مصرع را در یک فیلد ذخیره کنی.
حالا می توانی یا از یک محیط پرینت مثل FastReport و یا QueickReport استفاده کنی و یا در یک Scroll به تعداد ابیات Labelبسازی.
البته DBGrid هم می تواند گزینه مناسبی برای نمایش اطلاعات باشد
موفق باشید

saleh_fartash
جمعه 31 خرداد 1387, 10:23 صبح
با نظر من بهترین راه استفاده از DBCtrlGrid1 است که به تعداد رکورد تو ار 2لیبل به نمایش می گذاره اگه خواستی بگو تا آموزش کار باشو برات بذارم.

saeed_h
جمعه 31 خرداد 1387, 14:55 عصر
با نظر من بهترین راه استفاده از DBCtrlGrid1 است که به تعداد رکورد تو ار 2لیبل به نمایش می گذاره اگه خواستی بگو تا آموزش کار باشو برات بذارم.
دوست عزیز اگه ممکنه توضیحات بیشتری در مورد DBCtrlGrid1 بفرمایید.

saeed_h
جمعه 31 خرداد 1387, 15:03 عصر
یکی از راه ها این است که برای هر بیت 1 رکورد در نظر بگیری و هر مصرع را در یک فیلد ذخیره کنی.
حالا می توانی یا از یک محیط پرینت مثل FastReport و یا QueickReport استفاده کنی و یا در یک Scroll به تعداد ابیات Labelبسازی.
البته DBGrid هم می تواند گزینه مناسبی برای نمایش اطلاعات باشد
موفق باشید

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

SYNDROME
جمعه 31 خرداد 1387, 15:16 عصر
دوست عزیز دیتابیس رو تقریبا به همین شکل و شمایلی که شما فرمودید طراحی کردم.
این برنامه فقط باید اشعار رو بر روی فرم نمایش بده, نیاز به چاپ کردن چیزی نیست.
من فقط میخوام ظاهر فرمم شکیل باشه.
یه چیزی تو مایه های نرم افزار درج
من هم منظورم چاپ اطلاعات نبود.
چون اگر در Detail چاپ این رکوردها قرار گیرد خودش به تعداد رکوردها Detail ایجاد می کند.
در ضمن با قرار دادن عکس ها می توانید همین صفحه سفید چاپ را همانجوری که دوست دارید شکیل کنید.
موفق باشید

saeed_h
جمعه 31 خرداد 1387, 16:03 عصر
در ضمن با قرار دادن عکس ها می توانید همین صفحه سفید چاپ را همانجوری که دوست دارید شکیل کنید.
موفق باشید
اما همانطور که قبلا عرض کردم تعداد ابیات ثابت نیست و باید از دیتابیس بخونه.
میشه منظورتون رو واضح تر بفرمایید که باید از چه کنترلی و به چه شکلی استفاده کنم؟

SYNDROME
جمعه 31 خرداد 1387, 21:43 عصر
اما همانطور که قبلا عرض کردم تعداد ابیات ثابت نیست و باید از دیتابیس بخونه.
میشه منظورتون رو واضح تر بفرمایید که باید از چه کنترلی و به چه شکلی استفاده کنم؟
دوست عزیز زمانی که شما با یکی از ابزارهای گزارش گیری کار می کنید حتماً یک باند به عنوان Detail دارد که زمانی که شما DataSet خود را به آن وصل می کنید به تعداد رکوردها سطر ایجاد می کند.
مانند چاپ لیست کالاها و . . . گزارشات دیگر.
حالا در باند Detail را شما می توانید 2 تا Box قرار دهید و هر کدام را به یکی از فیلدها وصل کنید.
موفق باشید

saleh_fartash
جمعه 31 خرداد 1387, 22:46 عصر
بسیار ساده است
فقط کافیه از تب data control کامپوننتDBCtrlGrid1 رو انتخاب کنی و DataSource اون رو DataSource مورد نظر انتخاب کنی و روی اون 2 تا DBText بذاری سپس datafield رو به فیلد مورد نظر تغییر بدی و کار تمومه!

saeed_h
شنبه 01 تیر 1387, 02:29 صبح
دوست عزیز زمانی که شما با یکی از ابزارهای گزارش گیری کار می کنید حتماً یک باند به عنوان Detail دارد که زمانی که شما DataSet خود را به آن وصل می کنید به تعداد رکوردها سطر ایجاد می کند.
مانند چاپ لیست کالاها و . . . گزارشات دیگر.
حالا در باند Detail را شما می توانید 2 تا Box قرار دهید و هر کدام را به یکی از فیلدها وصل کنید.
موفق باشید

منظورتون نمایش Preview از گزارش طراحی شده است!! :متعجب:
منظورتون اینه که فرم نمایش اشعار رو توی یکی از ابزار گزارش گیری مثل کویک ریپورت طراحی کنم و برای نمایش اشعار Preview گزارش طراحی شده رو نمایش بدم؟

SYNDROME
شنبه 01 تیر 1387, 06:47 صبح
منظورتون نمایش Preview از گزارش طراحی شده است!! :متعجب:
منظورتون اینه که فرم نمایش اشعار رو توی یکی از ابزار گزارش گیری مثل کویک ریپورت طراحی کنم و برای نمایش اشعار Preview گزارش طراحی شده رو نمایش بدم؟
دقیقاً منظورم این است.
گفتم که یگی از راه حلهایی که می توانید استفاده کنید این است.
چون باعث می شود بتوانید مصرع ها را به صورت پله ای بچینید که این قابلیت را Grid هم به شما نمی دهد.
البته می توانید با ایجاد Object روی فرمتان هم چنین کاری را انجام دهید ولی کار چندان راحتی نیست.
در ضمن اگر از fastReport استفاده کنید می توانید فایل نمایشی را به PDF و. . . هم تبدیل کنید و یا عمل جستجو را روی شعر انجام دهید.
موفق باشید

saleh_fartash
شنبه 01 تیر 1387, 08:10 صبح
سیندورم این راه شما به نظر من اشتباه.چون شاید کاربر بخواد ابیات رو در فرم نشون بده -به دلایلی-که برای این راه حل رو دادم .آگر انجام بدید می بینید که جالب میشه.
باتشکر.

saleh_fartash
شنبه 01 تیر 1387, 10:26 صبح
راستی اگه بانک اشعار حافظ و خیام رو می خوای من با هزار دو دردسر خودم پیدا کردم!
اگه می خوای بگو برای چی اشعار رو می خوای من هم اشعار آن بزرگواران رو برات تکثیر غیر مجاز می کنم!

SYNDROME
شنبه 01 تیر 1387, 20:02 عصر
سیندورم این راه شما به نظر من اشتباه.چون شاید کاربر بخواد ابیات رو در فرم نشون بده -به دلایلی-که برای این راه حل رو دادم .آگر انجام بدید می بینید که جالب میشه.
باتشکر.
دوست عزیز قرار نیست راه حلی که من می دهم تنها راه حل دنیا باشد.
این فقط یک راه حل بود تا اگر می خواهید فرمتان را به شکل های زیبا در بیاورید و کارتان راحتر باشد و اگر خواستید بتوانید برای هر صفحه طراحی زیبا انجام دهید راحت باشید.
فقط یک پیشنهاد است و هیچ اجباری در آن نیست.
موفق باشید

saleh_fartash
شنبه 01 تیر 1387, 20:22 عصر
دوست عزیز قرار نیست راه حلی که من می دهم تنها راه حل دنیا باشد.
د.ست عزیزترم من این رو می دونستم که گفتم

سیندورم این راه شما به نظر من اشتباه
من این رو گفتم که اگر راه من درسته که شما یاد بگیرین و اکه غلط من. خوب برای همین که امدیم اینجا.
امیدوارم بتونیم نظرم رو طوری بدم که کسی ناراحت نشه.

Golzar7
یک شنبه 02 تیر 1387, 15:33 عصر
ببين بهترين كار نوشتن يه كامپوننت براي اين كار ميباشد.
و بهترين كلاسي كه ميتوني براي كامپوننتت از اون استفاده كني TLabel هستش من اين كارو قبلا كردم خيلي زيبا ميتوني اشعارت رو توش Out بكوني و حتي ميتوني اونو Transparent كني و زير اشعار هر عكسي قرار بدي.
نمونه برنامه هايي كه من از اين روش استفاده كردم:
ديوان فرزانگان1و2و3 و فال نامه حافظ است و مشاعره محصول شركت سليم رايانه(1383).
يا تقويم "من" قسمت فالنامه محصول شركت اهورا(1386-1387).
اگه در مورد نوشتن كامپوننت سوال داشتي تو همين تاپيك بپورس, تا جواب بدم.

موفق باشيد.

saeed_h
یک شنبه 02 تیر 1387, 20:57 عصر
ببين بهترين كار نوشتن يه كامپوننت براي اين كار ميباشد.
و بهترين كلاسي كه ميتوني براي كامپوننتت از اون استفاده كني TLabel هستش من اين كارو قبلا كردم خيلي زيبا ميتوني اشعارت رو توش Out بكوني و حتي ميتوني اونو Transparent كني و زير اشعار هر عكسي قرار بدي.
نمونه برنامه هايي كه من از اين روش استفاده كردم:
ديوان فرزانگان1و2و3 و فال نامه حافظ است و مشاعره محصول شركت سليم رايانه(1383).
يا تقويم "من" قسمت فالنامه محصول شركت اهورا(1386-1387).
اگه در مورد نوشتن كامپوننت سوال داشتي تو همين تاپيك بپورس, تا جواب بدم.

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

Golzar7
دوشنبه 03 تیر 1387, 08:39 صبح
ببين من Component اي كه برات ارسال ميكنم خودم براي همين كار نوشتم.
يك Property به نام Items (TStringList)داره كه هر مصرع شعرت را به اون Append ميكنيد.
با اين كار اشعار رو زير هم نشون ميده.
دو Property به نام هاي LeftFard, LeftZoj داره كه فاصله از چپ مصرع هاي زوج و فرد رو برش تعيين ميكنيد(پيشنهاد من LeftFard=0 و LeftZoj=نصف طول ابزار) به اين صورت اشعار زير هم و به زيبايي نمايش داده ميشوند.
(اميدوارم به دردت بخوره).

saeed_h
سه شنبه 04 تیر 1387, 00:48 صبح
با عرض تشکر مججد از جناب گلزار
1 سوال در مورد کامپوننتی که ارایه دادین دارم: آیا این امکان وجود داره که یک مصرع خاص رو با یک رنگ دیگه نمایش بدیم؟

Golzar7
سه شنبه 04 تیر 1387, 10:15 صبح
با عرض تشکر مججد از جناب گلزار
1 سوال در مورد کامپوننتی که ارایه دادین دارم: آیا این امکان وجود داره که یک مصرع خاص رو با یک رنگ دیگه نمایش بدیم؟
سلام
بله اين امكان وجود داره و كاره سختي نيست فقط من وقت ندارم كه اين كارو انجام بدم ولي چون ابزارو با Source بهتون دادم خودتون براحتي ميتونيد اين كار رو انجام بديد.
در متود DoDrawText ميتوني اين كار رو براهتي پياده سازي كني.

saleh_fartash
شنبه 08 تیر 1387, 15:40 عصر
وقتی خود دلفی کامپوننت داره شما ه جای جستجو در خود دلفی کامپوننت نوشتین؟
اگر راهی که من بهتون داده بودن رو امتحان کرده بودین و اگر اشکال داشت به من می گفتین نیاز به این کارها نبود.