PDA

View Full Version : تنظیم مکان یک کامپونت با توجه به محل کرسر



Delphi7_love
دوشنبه 08 شهریور 1389, 20:53 عصر
میخوام داخل برنامه ام هر جا که نیاز به وارد کردن مبلغ توسط کاربره یه EDIT یا یک کامپونت دیگه داشته باشم که بالای اون ادیت که کاربر داره مبلغ وارد می کنه قرار بگیره و مبلغ رو به صورت سه رقم سه رقم نشون بده
یه راهش اینه که در رویداد OnKeyDown محل قرارگیری اون ادیت رو مشخص کنم ولی اگه تنظیم ادیت ها رو عوض کنم باید دوباره همرو تنظیم کنم

برای این کار چه راه حلی پیشنهاد می کنید ؟

Felony
دوشنبه 08 شهریور 1389, 21:31 عصر
توسط تابع GetCaretPos میتونید مختصات مکان نما رو به دست بیارید و محل کامپوننت مورد نظرتون رو به وسیله مختصات به دست اومده مقدار دهی کنید .

Delphi7_love
دوشنبه 08 شهریور 1389, 21:34 عصر
میشه روش کارشو بگید چون نمیتونم از help خود دلفی استفاده کنم
اگه یه مثال کوچولو بزنید عالیه
با تشکر

SAASTN
دوشنبه 08 شهریور 1389, 22:12 عصر
به نظر من در مورد همچین مسائلی تنها راه اصولی استفاده از کامپوننت هاست. حالا یا باید یه کامپوننت آماده پیدا کنیم که همچین رفتاری رو داشته باشه یا خودمون یه کامپوننت بنویسیم. یه چیز خیلی ابتدایی نوشتم که بتونه ایده بده، تابع TextChanged رو به شکلی که مدنظرتون هست تغییر بدین.

Delphi7_love
دوشنبه 08 شهریور 1389, 22:50 عصر
ممنون
نتونستم نصبش کنم ، چطور نصب میشه ؟
پیغام خطا :
unable find project

Felony
سه شنبه 09 شهریور 1389, 00:10 صبح
تو رویداد onChnage کنترل Edit1 کد زیر رو بنویسید و یک کنترل با نام Edit2 هم روی فرم قرار بدید :

var
Pos: TPoint;
begin
GetCaretPos(Pos);
Edit2.Top:= Pos.Y + Edit1.Top;
Edit2.Left:= Pos.X + Edit1.Left;
end;

SAASTN
سه شنبه 09 شهریور 1389, 02:28 صبح
ممنون
نتونستم نصبش کنم ، چطور نصب میشه ؟
پیغام خطا :
unable find project
موقع نصبش این خطا رو میده یا اجرای برنامه؟
برا نصبش که مثل همه کامپوننتا، فایل .dpk رو باز کنید، توی ProjectManager روش r-Click و بعدشم Install.
اگه موقع اجرا خطا داد، احتمالا از اینه که فایل رو پیدا نکرده باید تو Tools\Options\Library-Win32\LibraryPath آدرس فولدر Source رو اضافه کنید.
البته راستش اون متن خطا به نظر نمیاد به هیچ کدوم از این مسائل مربوط باشه!