صفحه 1 از 3

چند سؤال فني در مورد دلفي؟؟؟؟

ارسال شده: پنج‌شنبه ۱ شهریور ۱۳۸۶, ۹:۰۳ ق.ظ
توسط Azadi.Isatis
با سلام


من مي خواستم ببينم چگونه مي تونيم دلفي textbox , label , form ها را راست چين كنيم.

و اينكه چگونه مي تونيم با MdiForm و MdiChild فرم ها كار كنيم ( مخصوصا مخفي كردن و نمايش دادن آن ها)

ارسال شده: پنج‌شنبه ۱ شهریور ۱۳۸۶, ۱۱:۴۵ ق.ظ
توسط Frogfoot
کنترل های دلفی خصوصیتی دارند به نام BiDiMode که با تنظیم آن بر روی biRightToLeft می تونید آن کنترل را راست-به-چپ کنید.
چگونه مي تونيم با MdiForm و MdiChild فرم ها كار كنيم ( مخصوصا مخفي كردن و نمايش دادن آن ها)

دقیقا می خواید چه کار کنید؟ در صورت تنظیم یک فرم بصورت MDIForm و سایر فرم ها بصورت MDIChild، می تونید با Show و Hide یا Close (هر کدام که نیاز شما ست) کردن فرم های Child آنها را نمایش بدید.

در ضمن، الان مدت ها ست که مایکروسافت در Document های خود استفاده از MDI را توصیه نمی کنند و در برنامه های جدید خود از آن استفاده نمی کند.

ارسال شده: پنج‌شنبه ۱ شهریور ۱۳۸۶, ۱۲:۳۱ ب.ظ
توسط Azadi.Isatis
براي مخفي كردن و نمايش دادن mdichild متد hide و show استفاده كرده ام اما وقتي كه دكمه hide را مي زنم پيغام مي دهد كه اين متد را نمي توان بر روي mdichild اعمال نمود. :-( :-(


در ضمن چرا مايكروسافت استفاده از mdi را توصيه نمي كند ؟؟؟ :-( :-(

ارسال شده: پنج‌شنبه ۱ شهریور ۱۳۸۶, ۱:۰۷ ب.ظ
توسط Frogfoot
اما وقتي كه دكمه hide را مي زنم پيغام مي دهد كه اين متد را نمي توان بر روي mdichild اعمال نمود.

درست است. از Close استفاده کنید. تا زمانی که CloseAction = caFree نباشه، فرم با Close شدن Free نمیشه و همون کار Hide را انجام میده.
چرا مايكروسافت استفاده از mdi را توصيه نمي كند ؟

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

موفق باشید

ارسال شده: پنج‌شنبه ۱ شهریور ۱۳۸۶, ۶:۴۳ ب.ظ
توسط Azadi.Isatis
Frogfoot, جان
با تشكر از راهنمايي هاي شما

اما يك مطلب ديگر

من يك بانك اطلاعاتي با اكسس درست كرده ام اما نمي دونم چگونه مي تونم به دلفي ربطش بدم و از اون استفاده كنم

واضح تر بگم
من ميخواهم اطلاعاتي را كه دريك textbox وارد ميكنم در فيلدهاي جدول اكسس من ذخيره بشه

حالا اگر ميشه به من بگوييد اولا چطور ارتباط دلفي با اكسس را برقرار كنم و ثانيا چگونه اطلاعات را ذخيره كنم (كدي ر كه بايد داخل كليد ذخيره بنويسم چيه ) :) :)

ارسال شده: جمعه ۲ شهریور ۱۳۸۶, ۲:۱۶ ق.ظ
توسط Frogfoot
معمولا برای ارتباط با اکسس از ADO استفاده میشه. من هم اینجا کار با ADO را توضیح می دهم:
از تب ADO در Component Palette دلفی یک کامپوننت AdoConnection بر روی فرم بندازید.
بر روی AdoConnection دابل کلیک کنید تا پنجره Connection Manager باز شود. دکمه Build را کلیک کنید تا لیستی از Provider ها نمایش داده شود.
از لیست Provider ها گزینه Microsoft Jet 4.0 OLE DB Provider را انتخاب کنید و Next را کلیک کنید.
در صفحه Connection آدرس فایل Access مورد نظر خود را وارد کنید و دکمه Test Connection را کلیک کنید تا از صحت ارتباط مطمون شوید.
پنجره مربوطه را با کلیک دکمه OK ببنید تا به محیط دلفی برگردید.
با توجه به اینکه در بانک اکسس خود چه تعداد جدول دارید و به کدامیک از آنها در برنامه خود نیاز دارید، برای هر جدول خود یک AdoDataSet بر روی فرم قرار دهید. البته ممکن است در صورت استفاده از SQL Query نیازی به ایجاد یک DataSet برای هر جدول نداشته باشید.
خاصیت Connection از AdoDataSet را بر روی AdoConnection ایی که ساختید تنظیم کنید.
خصوصیت CommandType از AdoDataSet را بر روی ctTable تنظیم کنید و نام جدول مربوطه در بانک اکسس را در خصوصیت CommandText مشخص کنید.
به ازاء هر DataSet ایی که ساختید، یک DataSource از تب Data Access به فرم اضافه کنید.
خاصیت DataSet هر یک از DataSource ها را بر روی یکی از DataSet های موجود تنظیم کنید تا هر DataSource به یک DataSet متصل شود.
در تب Data Controls کنترل DBEdit و یک کنترل DBNavigator را بر روی فرم بیاندازید و خصوصیت DataSource آنها را تنظیم کنید.
خصوصیت DataField از DBEdit را بروی نام فیلدی که قصد نمایش آن را دارید، تنظیم کنید.
خصوصیت Active از AdoDataSet را True کنید.
برنامه را کامپایل و اجرا کنید.
با انجام مراحل فوق می توانید با استفاده از کلیدهای DBNavigator در بین رکوردهای جدول حرکت کنید. DBEdit هم محتوی فیلد انتخاب شده را به شما نمایش می دهد. با استفاده از دکمه هایDBNavigator می توانید یک رکورد جدید ایجاد کنید، یا رکور جاری را در DBEdit ویرایش کنید و توسط دکمه های DBNavigator تغییرات را ثبت کنید.

در تب Data Control کنترلها مختلفی برای نمایش انواع فیلدها وجود دارد که می توانید آنها را امتحان کنید. پر کاربردترین کنترل این تب DBGrid است که کل محتوی یک DataSet را بصورت یک جدول نمایش می دهد و امکان ویرایش و درج رکورد را نیز به شما می دهد.

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

ارسال شده: دوشنبه ۳۰ مهر ۱۳۸۶, ۵:۰۱ ب.ظ
توسط eelham
سلام.
مي خوام اطلاعات دو فيلد از جدول 1 رو(كه هر 2 با هم كليدن) به طور همزمان بوسيله يك dbcombobox نمايش داده بشن و بعد از انتخاب اطلاعات از dbcombobox درون 2 فيلد متناظرشون در جدول 2 قرار بگيرند.
آيا امكانش هست؟؟؟؟؟

ارسال شده: دوشنبه ۳۰ مهر ۱۳۸۶, ۱۱:۲۴ ب.ظ
توسط Frogfoot
برای نمایش اطلاعات دو فیلد بطور همزمان در یک کنترل، باید از DBLookupComboBox استفاده کنید. در خصوصیت ListFields مربوط به این کنترل، نام فیلدها را با کاما از هم جدا کنید.
برای کپی مقادیر از یک جدول به جدول دیگه هم باید کد بنویسید، مثلا:

DataSet2.FieldByName('MyField').AsInteger := DataSet1.FieldByName('MyField').AsInteger

ارسال شده: چهارشنبه ۲ آبان ۱۳۸۶, ۱۲:۴۲ ق.ظ
توسط eelham
سلام.
ممنوون از راهنمايي تون.خيلي مفيد بود.

ارسال شده: پنج‌شنبه ۳ آبان ۱۳۸۶, ۱۲:۳۹ ب.ظ
توسط eelham
سلام .
يك query به شكل زير نوشتم.
..... Select
From table1
Where datefield between "datestart" and "dateend"
حالا مي خوام تاريخ شروع و پايان رو بصورت پارامتر به query ارسال كنم.چه طور مي تونم؟؟؟
(در ضمن وقتي روي خاصيت params مربوط به query رايت كليك مي كنم گزينه add در ويراستار editing query params غير فعاله؟؟؟؟ )
مرسي.

ارسال شده: پنج‌شنبه ۳ آبان ۱۳۸۶, ۱:۰۵ ب.ظ
توسط Frogfoot
Please Login or Register to see this code

بجای MtSrartDate و MyEndDate باید تاریخ های مورد نظر خودتون رو بزارید.

ارسال شده: چهارشنبه ۹ آبان ۱۳۸۶, ۲:۰۶ ق.ظ
توسط eelham
سلام.
مرسي از راهنمايي تون.
يه فرم ورود اطلاعات دارم كه فيلد ها رو با dbedit وارد جدول مي كنه.(اولين فيلد كه با dbedit1 پر مي شه كليده ) مي خوام وقتي دكمه save رو مي زنم اگه كليد به صورت تكراري وارد شد برنامه پيغام بده و cancel كنه.
وقتي از locate استفاده مي كنم چون dbedit مستقيم اطلاعات رو مي ريزه به جدول اين دستور فيلد جاري رو پيدا مي كنه و بر نامه هنگ مي كنه و پيام key violation مي ده.
چيكار كنم؟؟
ممنون.