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 هم میتوانی استفاده بکنی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.