PDA

View Full Version : فراخواني فرم



mojtaba0912433
شنبه 05 فروردین 1391, 09:54 صبح
سلام
1- چطور ميشه باداشتن نام فرم كپشن را هم به دست آورد(در يك edit به عنوان مثال نام فرم را به دست آورديم)
2-چطور ميشه با داشتن كپشن فرم اون فرم را فراخواني كرد
با تشكر

Felony
شنبه 05 فروردین 1391, 10:12 صبح
1- چطور ميشه باداشتن نام فرم كپشن را هم به دست آورد(در يك edit به عنوان مثال نام فرم را به دست آورديم)
var
FormCount: Integer;
begin
for FormCount := 0 to Application.ComponentCount - 1 do
if (Application.Components[FormCount] is TForm) and (Application.Components[FormCount].Name = Edit1.Text) then
begin
ShowMessage(TForm(Application.Components[FormCount]).Caption);
Break;
end;
end;


2-چطور ميشه با داشتن كپشن فرم اون فرم را فراخواني كرد

var
FormCount: Integer;
begin
for FormCount := 0 to Application.ComponentCount - 1 do
if (Application.Components[FormCount] is TForm) and (TForm(Application.Components[FormCount]).Caption = 'Form2') then
begin
TForm(Application.Components[FormCount]).Show;
Break;
end;
end;

mojtaba0912433
شنبه 05 فروردین 1391, 11:12 صبح
var
FormCount: Integer;
begin
for FormCount := 0 to Application.ComponentCount - 1 do
if (Application.Components[FormCount] is TForm) and (Application.Components[FormCount].Name = Edit1.Text) then
begin
ShowMessage(TForm(Application.Components[FormCount]).Caption);
Break;
end;
end;





var
FormCount: Integer;
begin
for FormCount := 0 to Application.ComponentCount - 1 do
if (Application.Components[FormCount] is TForm) and (TForm(Application.Components[FormCount]).Caption = 'Form2') then
begin
TForm(Application.Components[FormCount]).Show;
Break;
end;
end;

آقاي تاجيك ممنون از پاسخ سريعتون
مورد اول كار نميكنه
در مورد دوم معمولا كپشن فرم integer نيست و در مورد اينگونه فرمها جواب نمي ده اگر ممكنه راهنمايي كنين

Felony
شنبه 05 فروردین 1391, 12:11 عصر
کاش به خودتون فقط زحمت یک دور روخونی کد رو میداد ، یا نه زحمت کپی کردنش ...

mojtaba0912433
شنبه 05 فروردین 1391, 12:25 عصر
کاش به خودتون فقط زحمت یک دور روخونی کد رو میداد ، یا نه زحمت کپی کردنش ...
حالا اگه يكي مبتدي باشه و زحمت خوندنشم بكشه و نتونه تحليل كنه جوابشا نميدين؟

Felony
شنبه 05 فروردین 1391, 12:44 عصر
حالا اگه يكي مبتدي باشه و زحمت خوندنشم بكشه و نتونه تحليل كنه جوابشا نميدين؟
چرا اتفاقا ، جواب میدیم ولی وقتی مینویسید :


در مورد دوم معمولا كپشن فرم integer نيست و در مورد اينگونه فرمها جواب نمي ده اگر ممكنه راهنمايي كني
یعنی به کدها تسلط دارید و میدونید که کد نوشته شده اشتباه هست .

در کد اول و دوم توسط یک حلقه کلیه کامپوننت هایی که والدشون شئ Application هست در یک حلقه مورد بررسی قرار گرفتن ؛ در کد اول اگر کامپوننت جاری که در حال بررسیش داخل حلقه هستیم از کلاس TForm مشتق شده بود ( یعنی یک فرم بود ) و نامش هم با متن وارد شده در Edit1 برابر بود یعنی ما فرم مورد نظر رو پیدا کردیم و عنوانش رو با تابع ShowMessage نمایش دادیم و در آخر هم برای جلوگیری از ادامه حلقه از تابع Break استفاده کردیم و حلقه رو شکستیم ...

در کد دوم اگر کامپوننت جاری که در حال بررسیش هستیم از کلاس TForm بود و عنوانش برابر با عنوان مورد نظر ما بود ( در کدی که من نوشتم Form2 ) اون رو نمایش میدیم .

اون متغییر که از نوع Integer در کد تعریف شده برای حرکت بر روی کامپوننت ها هست ؛ در کد از Typecast برای تبدیل شئ جاری به کلاس TForm استفاده شده که از بحث این تاپیک خارجه و با یک جست و جو کوچیک تو سایت میتونید در موردش اطلاعات کسب کنید .

mojtaba0912433
شنبه 05 فروردین 1391, 15:56 عصر
چرا اتفاقا ، جواب میدیم ولی وقتی مینویسید :


یعنی به کدها تسلط دارید و میدونید که کد نوشته شده اشتباه هست .

در کد اول و دوم توسط یک حلقه کلیه کامپوننت هایی که والدشون شئ Application هست در یک حلقه مورد بررسی قرار گرفتن ؛ در کد اول اگر کامپوننت جاری که در حال بررسیش داخل حلقه هستیم از کلاس TForm مشتق شده بود ( یعنی یک فرم بود ) و نامش هم با متن وارد شده در Edit1 برابر بود یعنی ما فرم مورد نظر رو پیدا کردیم و عنوانش رو با تابع ShowMessage نمایش دادیم و در آخر هم برای جلوگیری از ادامه حلقه از تابع Break استفاده کردیم و حلقه رو شکستیم ...

در کد دوم اگر کامپوننت جاری که در حال بررسیش هستیم از کلاس TForm بود و عنوانش برابر با عنوان مورد نظر ما بود ( در کدی که من نوشتم Form2 ) اون رو نمایش میدیم .

اون متغییر که از نوع Integer در کد تعریف شده برای حرکت بر روی کامپوننت ها هست ؛ در کد از Typecast برای تبدیل شئ جاری به کلاس TForm استفاده شده که از بحث این تاپیک خارجه و با یک جست و جو کوچیک تو سایت میتونید در موردش اطلاعات کسب کنید .

آقا كلا مشكل اينكه از اديت يا هر كامپوننت ديگه نمي خونه اگه به جاي Edit1.text نام فرم را قرار بديم عمل ميكنه در كد دوم هم همينطور

mojtaba0912433
یک شنبه 06 فروردین 1391, 09:09 صبح
آقا درست شد من معذرت خواهي مي كنم مشكل از كار من بود