روی 1 فرم تعداد زیادی کامپوننت Edit و Checkbox و ... دارم . در هنگام یک عمل خاص احتیاج دارم تا تعداد زیادی از این کامپوننت ها رو (پر بودن مقدار اونها) چک کنم . یعنی یک if با شرطی چند خطه .
راه دیگری وجود داره ؟
روی 1 فرم تعداد زیادی کامپوننت Edit و Checkbox و ... دارم . در هنگام یک عمل خاص احتیاج دارم تا تعداد زیادی از این کامپوننت ها رو (پر بودن مقدار اونها) چک کنم . یعنی یک if با شرطی چند خطه .
راه دیگری وجود داره ؟
با استفاده از یک For کل کامپونتهای روی صفحه را بخوان و کل Edit ها را چک کن.
For i := 0 To ComponentCount Do
IF Components[i] Is Tedit Then
Begin
End
موفق باشید
ذر تکمیل کد دوستم بگویم
For i := 0 To ComponentCount Do
IF Components[i] Is Tedit Then
Begin
if (Component[i] as Tedit).text='' then
End
یه کم کامل ترش :procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
for i:=0 to ComponentCount - 1 do
begin
if Components[i] is TEdit then
begin
if (Components[i] as TEdit).Text<>'' then
//program
end
else if Components[i] is tCheckBox then
begin
if (Components[i] as TCheckBox).Checked then
//program
end
else if Components[i] is TRadioButton then
begin
if (Components[i] as TRadioButton).Checked then
//program
end
else if Components[i] is TMemo then
begin
if (Components[i] as TMemo).Lines.Text<>'' then
//program
end;
end;
end;
این درسته
اما نیاز به چک کردن بعضی از موارد نیست . راهی هست تا گروه ایجاد کنم و اون گروه رو چک کنم ؟
میتونی از Parent ,Tag,Name یا ... استفاده کنی
You never know what you can do until you try
حتی اگه از این خصوصیات هم برای گروه بندی استفاده بشه باز هم باید کدی مثل کد بالارو نوشت . چون باید مقدار خصوصیات متفاوتی رو از عنصرهای مختلف بررسی کرد .میتونی از Parent ,Tag,Name یا ... استفاده کنی
یک آرایه به طول تعداد فیلدها و از هر نوعی که کمتر فضا بگیره.تو OnExit هر کدوم ببین اگر پر شده هیچی ولی اگر خالیه مقدار نظیر رو صفر کنه.در نهایت ببین مقدار صفر در آرایه داری یا نه.البته فقط با این روش تعداد شرطهای if رو کم میکنی ولی پروسس رو نه.
اگر این آرایه رو بتونی به عدد تبدیل کنی و بعد ببینی که از 111111111...111 ک.چکتر است یا نه بهتر از حالت بالاست و مقدار پروسس رو خیلی کم میکنه.
البته من خودم از روشهای بالا استفاده می کنم ولی این یکی تازه به ذهنم رسید
فقط اگه خیلی بده ..... ندین.فقط نظر بدین.