ورود

View Full Version : سوال: ADD Object



abdorreza
چهارشنبه 26 خرداد 1389, 01:59 صبح
سلام.

در Init مربوط به يك FormSet دستورات زير را براي اضافه كردن يك TextBox قرار داده ام.

ThisFormSet.Form1.AddObject("text1","TEXTBOX")
ThisFormSet.Form1.Text1.top=10
ThisFormSet.Form1.Text1.left=10
ThisFormSet.Form1.Text1.Visible= .T.
ThisFormSet.Form1.Text1.Height=25
ThisFormSet.Form1.Text1.FontName="Tornado Tahoma"
ThisFormSet.Form1.Text1.FontSize=10
ThisFormSet.Form1.Text1.Alignment= 1
ThisFormSet.Form1.Text1.RightToLeft= .T.


حال براي تعريف متدهايي مثل GotFocus و يا LostFocus چگونه بايد عمل كنم؟

ممنون.

binyaz2003
چهارشنبه 26 خرداد 1389, 09:46 صبح
شما بايد يک کلاس بر پايه text box با متد ها و مشخصات دلخواهتون بنويسيد و بعد اون رو به فرم اضافه کنيد.

abdorreza
چهارشنبه 26 خرداد 1389, 11:11 صبح
سلام.

ممنون.

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

من تا حالا با كلاس كار نكردم. ميشه بگيد كد كلاس را كجا بايد قرار بدم؟ و چطوري به برنامه اضافه كنم؟ و چطوري استفاده كنم.

البته ميخوام ساخته شدن اشيا دست خودم باشه در ابتداي ساخته شدن فرم. چون فرمم متغير است و ممكن است 1 تكست باكس داشته باشم يا 20 تا.

ممنون.

gh_khajehzade
چهارشنبه 26 خرداد 1389, 15:54 عصر
با سلام -دوست عزیز اگه بتونید کتاب فاکس3 رو پیدا کنی مراحل ابتدایی ایجاد و استفاده از کلاسها رو (البته کلی) توضیح داده.

abdorreza
چهارشنبه 26 خرداد 1389, 17:46 عصر
سلام.

تعريف كلاس را بلدم. فقط ميخواستم بدونم وقتي كلاس را تعريف ميكنم كدش را كجا بزارم ؟ و چطوري در حين اجراي برنامه بتونم اون رو به برنامه اضافه كنم و به دفعات دلخواه ازش استفاده كنم.

ممنون.

binyaz2003
چهارشنبه 26 خرداد 1389, 19:32 عصر
بهترين مثال در قسمت Solution Samples مثال Member classes هست که طريقه اضافه کردم شي از کلاس و فايل prg را بنمايش ميگزارد.
شما ميتوانيد يک کلاس رو بسازيد در طراح و يا بصورت کد در prg بنويسيد سپس توسط دستور
SET CLASSLIB TO
کلاس رو مشخص ميکنيد و توسط متد AddObject در فرمتون اضافه ميکيند.

abdorreza
پنج شنبه 27 خرداد 1389, 00:56 صبح
سلام آقاي بي نياز

ممنون از راهنمايي هاي شما .هر كاري كردم نه سر در آوردم از اون نمونه ي فاكس و نه تونستم كاري بكنم!

اگر ممكنه يه برنامه كوچك برام بزارين كه فقط با زدن يك كليد Command يك TextBox كه كلاسش رو از يك فايل PRG ميخونه ايجاد كنه و در اون كلاس TextBox هم اگه ممكنه فقط يك رويدادي مثل GotFocus بزاريد كه مثلا موقعي كه فعال ميشه رنگ زمينش عوض بشه.

شرمنده و ممنون.

abdorreza
پنج شنبه 27 خرداد 1389, 07:31 صبح
سلام.

بالاخره تونستم با دستور Set Procedure To ، كلاس خودم را در يك فايل PRG قرار بدم و از اون داخل فرمم استفاده كنم (نمونه برنامه ضميمه)

حالا فقط يك مشكل دارم. با زدن هر بار كليد شماره 1 ، يك TextBox جديد ساخته بشه.

مثلا TextBox1 , TextBox2 , TextBox3

فكر كردم يك شمارنده داشته باشم مثل Andis ، بعد كار زير را انجام بدم.

MyTextBoxName="TextBox"+alltrim(Str(andis((

بعد كنترل را درست كنم. ولي فكر كنم اين راه اصولي نباشه و راه ديگه اي هم باشه.

ممكنه كمك كنيد.

ممنون.

abdorreza
پنج شنبه 27 خرداد 1389, 22:08 عصر
سلام.

يك كلاس TextBox در فايل PRG تعريف كرده بودم.
اون كلاس را از فايل PRG در فرمم فراخواني كردم و استفاده كردم.

مشكلم روي ايجاد TextBox به هر تعدادي بود (در زمان اجراي برنامه) كه اون را هم فكري براش كردم. در نمونه برنامه اي كه ميزارم شما ميتونيد با كليك روي CommandButton هر چند تا كه بخواهيد TextBox ايجاد كنيد.
از MyTextBox 1 تا MyTexBox n ( البته من تو اين برنامه شرطي گذاشتم كه فقط 10 تا TextBox اجازه ايجاد داشته باشه ، با برداشتن شرط ، ايجاد هم نامحدود ميشه )

البته نميدونم روشي كه بكار بردم درسته يا نه. برنامه را ميزارم تا هم نظر شما را بدونم در رابطه با درستي يا نادرستي كارم و هم اينكه اگه كسي خواست استفاده كنه.

ممنون.

binyaz2003
پنج شنبه 27 خرداد 1389, 23:11 عصر
مشکلي نداره

Esikhoob
جمعه 28 خرداد 1389, 08:52 صبح
سلام آقاي بي نياز

ممنون از راهنمايي هاي شما .هر كاري كردم نه سر در آوردم از اون نمونه ي فاكس و نه تونستم كاري بكنم!



سلام
شما کمی حق دارید که نمونه فاکس را متوجه نشوید ، چون اون از کلاس استفاده کرده و شما با تیپ برنامه نویسی اون آشنا نیستید.
برای متوجه شدن این برنامه ها ، بهتر است یا کل برنامه را با debugger و در حالت TERBETWEEN ON با thorttle بالا نگاه کنید(تا در هر خط کمی مکث کند) یا . . .
در هنگام اجرای برنامه یک coveragelog بگیرید و بعد آن log را با برنامه coverage profiler که در زیر است نگاه کنید ، ترتیب متد هایی که اجرا میشود را متوجه میشوید.

http://gorila.netlab.cz/download/cvp/cvp_1.18.0001_9.zip
این بالایی در قسمت history (اگر اشتباه نکنم) ترتیب متدها را نشان میده و البته یک باگ داره که ممکن است کدها را نشان نده.
اگر اینطور شد برای دیدن کدها از profiler خود فاکس استفاده کنید.

gh_khajehzade
جمعه 28 خرداد 1389, 09:59 صبح
سلام-میشه لطفا در مورد فایل log که تشکیل میشه توضیح بدین؟با اجرای یک فایل prg ,جند خط که همشون به نام اون فایل ختم میشه تشکیل میشه. در ضمن یک فایل متنی است و چه نیازی به
coverage profiler برای خواندنش هست؟