ورود

View Full Version : ماسک ادیتهای پشت سر هم



parhizkar2000
سه شنبه 17 آبان 1384, 15:45 عصر
با سلام
من روی یک فرم تعداد زیادی ماسک ادیت دارم . حالا می خواهم متن انها رامثلا از ادیت شماره 12 تا 22 با یک متن خاص پر کنم البته شماره های ادیتها متغیر می باشند . نام گذاری ماسک ادیتها همان پیش فرض دلفی است.از MaskEdit1 شروع شده وتا MaskEdit40 ادامه دارد.

m-khorsandi
سه شنبه 17 آبان 1384, 16:32 عصر
این کد رو میتونید نسبت به نیازتون تغییر بدید:



procedure TForm1.Button1Click(Sender: TObject);
var
iCounter: integer;
begin
for iCounter := 0 to ComponentCount - 1 do
if (Components[iCounter] is TEdit) then
begin
TEdit(Components[iCounter]).Text := '00';
end;
end;

oghab
سه شنبه 17 آبان 1384, 16:43 عصر
سلام
هر کنترلی که رو فرم میذاری یک کامپیوننت است و یک ایندکس داره!
با این روش می تونی یکی یکی کاپوننت ها را چک کنی و بهشون دسترسی پیدا کنی و مقدار دهی کنی! حالا هر مقداری که دوست داری. به جای tamskedit می تونه هر کامپوننت دیگه ای که باشه!



for i:= 0 to ComponentCount- 1 do
begin
if Components[i] is tmaskEdit then
(Components[i] as tmaskEdit).Text:= 'Component no : '+ IntToStr(i);
end;


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



j:=maskedit12.ComponentIndex;
k:=maskedit22.ComponentIndex;
for i:=j to k do
(Components[i] as tmaskEdit).Text:= '11:01';


موفق باشی!

سید مسعود موحد
چهارشنبه 18 آبان 1384, 09:59 صبح
از تابع FindComponent هم میتوانی استفاده بکنی