PDA

View Full Version : سوال: نحوه فعال کردن Tstring editor استاندارد دلفی



mehdi_moosavi
سه شنبه 25 خرداد 1395, 22:22 عصر
وقت بخیر
دوستان محترم Tstring editor استاندارد دلفی رو از طریق برنامه بوسیله چه دستوری میتونم فعال کنم؟
من یک tadoquery دارم که یک فیلد memo داره و میخوام محتوای این فیلد رو از طریق Tstring editor استاندارد دلفی ویرایش کنم.
البته با استفاده از یک فرم و یک dbmemo بر روی اون میشه ولی آیا از طریق Tstring editor استاندارد دلفی امکان پذیر هست؟
لطفا راهنمایی کنید
با تشکر

Mahmood_M
سه شنبه 25 خرداد 1395, 23:40 عصر
ابزارهایی مثل Editor ها جزو IDE دلفی به حساب میان و درون فایل نهایی برنامه قرار نمی گیرن
باید فرمی شبیه همون Editor بسازید و نمایش بدید
یا اینکه کامپوننت Dialog ای شبیه Editor مورد نظرتون پیدا کنید

یوسف زالی
پنج شنبه 27 خرداد 1395, 00:15 صبح
این کار به سادگی شدنیه!
اما باید بدونید که گاهی برای چنین شرایطی راه ساده وجود داره و برای بعضی از ادیتورها باید دست به دامن تریک و کلک بشیم.

مرحله اول یوز کردن این یونیته: StringsEdit
(ممکنه در نسخه مورد نظر شما، تغییرات کوچکی در این یونیت بوجود اومده باشه، یا توابعی اضافه شده باشه)

در این یونیت کدهایی وجود داره که در مود دیزاین کامپوننت نویسی به کار می ره، اما خب می تونید قسمت های عمومی اون رو در پروژه خودتون هم استفاده کنید.
نحوه انجام کار:



var
X: TStringsEditDlg;
begin
X := TStringsEditDlg.Create(Self);
X.CodeWndBtn.Hide;

X.Memo.Lines.Text := Memo1.Lines.Text;


if X.ShowModal = mrOk then
Memo1.Lines.Text := X.Memo.Lines.Text;


X.Destroy;
end;


به همین سادگی!

موفق باشید.

Mahmood_M
پنج شنبه 27 خرداد 1395, 03:26 صبح
این کار به سادگی شدنیه!
StringsEdit از Unit های مربوط به Tools API هستش و از ابزارهای Design-Time دلفی محسوب میشه برای ساخت کامپوننت و ابزارهای IDE
در حالت عادی این Unit شناسایی نمیشه، باید حالت Design به پروژه اضافه بشه با اضافه کردن " ULDesignIDE- " در مسیر زیر :
" Project > Options > Compiling > Additional Options "
( حداقل تا نسخه XE6 به این صورت اضافه میشه، شاید در نسخه های جدید تفاوت داشته باشه )
وقتی این حالت اضافه میشه فایل Exe ای که ساخته میشه فقط توی سیستم خودتون اجرا خواهد شد !، چون پروژه برای حالت Design کامپایل شده
باید سایر پکیج های مورد نیاز مثل rtlX.bpl و vclX.bpl و سایر پکیج های استفاده شده مربوط به سایر کامپوننتها رو همراه برنامه قرار بدید تا برنامه در سیستم کاربر اجرا بشه
از پکیج های Tools API نباید در ساخت فایلهای EXE استفاده کنید ، اونها برای حالت Design ساخته شدن
برای ساخت یک فرم ساده که یک Memo و دو Button داره، استفاده از Tools API کمی غیرمنطقی به نظر میرسه

یوسف زالی
پنج شنبه 27 خرداد 1395, 05:17 صبح
این حرف در همه حالات درست نیست.
مثلا برای ادیتور اس کیو ال کوئری ، می تونید از یونیت مربوطه به سادگی استفاده کنید.
گاهی حتی پیش میاد برای ساخت کامپوننت هم این یونیت ها ایراداتی بوجود بیارن، مثلا Proxies حتی در مورد دیزاین دلفی 7 در هنگام بیلد مشکل آفرین بود که با تغییرات جزیی رفع شد.
در خصوص یونیتی که معرفی کردم، درسته، چند وقت قبل اصلاحاتی در اون انجام داده بودم (برای استفاده در کامپوننت هام) اما در بدترین حالت می شه از کلاس هایی که در اون تعریف شدند، یا DFM فرم های درون اون، کپی گرفت و دیگه از اول اون رو نساخت، البته در خصوص این ادیتور ساده، ممکنه چندان توجیهی نداشته باشه، اما در خصوص ادیتور های پیچیده تر، کاملا می صرفه.
برای مثال این اگزه رو ران کنید، XE6 با یونیت
StringsEdit اصلاح شده. (در حقیقت همه قسمت های اضافی رو برداشتم و تنها کد خالص ازش موند)
آیا روی سیستم شما ران می شه؟
http://cdn.persiangig.com/download/I5oEZ1YO60/Project1.rar/dl