PDA

View Full Version : if با تعداد شرط خیلی زیاد



delphi5
پنج شنبه 06 دی 1386, 15:19 عصر
روی 1 فرم تعداد زیادی کامپوننت Edit و Checkbox و ... دارم . در هنگام یک عمل خاص احتیاج دارم تا تعداد زیادی از این کامپوننت ها رو (پر بودن مقدار اونها) چک کنم . یعنی یک if با شرطی چند خطه .
راه دیگری وجود داره ؟

SYNDROME
پنج شنبه 06 دی 1386, 20:15 عصر
با استفاده از یک For کل کامپونتهای روی صفحه را بخوان و کل Edit ها را چک کن.


For i := 0 To ComponentCount Do
IF Components[i] Is Tedit Then
Begin
End

موفق باشید

dkhatibi
جمعه 07 دی 1386, 14:22 عصر
ذر تکمیل کد دوستم بگویم


For i := 0 To ComponentCount Do
IF Components[i] Is Tedit Then
Begin
if (Component[i] as Tedit).text='' then

End

rasool_brn
جمعه 07 دی 1386, 16:41 عصر
یه کم کامل ترش :
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;

delphi5
دوشنبه 10 دی 1386, 11:43 صبح
این درسته
اما نیاز به چک کردن بعضی از موارد نیست . راهی هست تا گروه ایجاد کنم و اون گروه رو چک کنم ؟

mzjahromi
دوشنبه 10 دی 1386, 13:14 عصر
میتونی از Parent ,Tag,Name یا ... استفاده کنی

rasool_brn
سه شنبه 11 دی 1386, 10:13 صبح
میتونی از Parent ,Tag,Name یا ... استفاده کنی حتی اگه از این خصوصیات هم برای گروه بندی استفاده بشه باز هم باید کدی مثل کد بالارو نوشت . چون باید مقدار خصوصیات متفاوتی رو از عنصرهای مختلف بررسی کرد .

zman123456
یک شنبه 14 بهمن 1386, 18:45 عصر
یک آرایه به طول تعداد فیلدها و از هر نوعی که کمتر فضا بگیره.تو OnExit هر کدوم ببین اگر پر شده هیچی ولی اگر خالیه مقدار نظیر رو صفر کنه.در نهایت ببین مقدار صفر در آرایه داری یا نه.البته فقط با این روش تعداد شرطهای if رو کم میکنی ولی پروسس رو نه.
اگر این آرایه رو بتونی به عدد تبدیل کنی و بعد ببینی که از 111111111...111 ک.چکتر است یا نه بهتر از حالت بالاست و مقدار پروسس رو خیلی کم میکنه.
البته من خودم از روشهای بالا استفاده می کنم ولی این یکی تازه به ذهنم رسید
فقط اگه خیلی بده ..... ندین.فقط نظر بدین.