View Full Version : دنبال يه كامپونت و يا يك راه حل هستم :
bmanfy
چهارشنبه 13 مرداد 1389, 11:29 صبح
سلام .
بدون شك تا به حال نصب برنامه هايي رو ديدين كه بايد يك ليست برنامه نصب كنن. اين ليست برنامه رو تو يك گريد قرار دادن و در انتها نصب برنامه كه تمام شد كنار اونهايي كه درست نصب شده علامت تيك و كنار اونهايي كه نصب نشده علامت ضربدر قرار ميده .
من هم همچين چيزي لازم دارم . و البته نه براي نصب . براي كاري ديگه . فقط يك تفاوت داره اون هم اينكه من ليست اون كارهايي كه بايد انجام بشه پوياست . و بايد عملا بتونم در زمان اجرا مديريت كنم . و نميشه براي اون يك كد ثابت نوشت .
براي همچين كاري كامپونتي سراغ دارين كه بتونم به راحتي كنترلش كنم ؟
و يا راه حل خواصي كه همراه با خالاقيت هم باشه دارين ؟
دقت كنيد كه ميخوام اط نظر سادگي براي كاربر و ظاهرش هم مناسب باشه .
bmanfy
چهارشنبه 13 مرداد 1389, 11:40 صبح
توضيحات بيشتر :
يك سري اطلاعات قراره تو بانك اطلاعت ثبت بشه (يعني چندين ركورد) و اما نياز نيست (يعني نبايد) اين ركورد ها يك جا ثبت بشن . بايد به ترتيب ثبت بشن كه ممكنه بعضي از اين ها امكان ثبت انها باشه و بعضي هم نباشه :
پس كاربر يك سري اطلاعات رو به صورت سطر به سطر بايد به يك گريد اضافه ميكنه . حالا دكمه ثبت رو ميزنه اطلاعات از سطر يك شر.ع ميشه به ثبت شدن و هر كدوم كه ثبت بشه علامت تيك در كنارش و هر كدوم كه ثبت نشه علامت ضربدر .
خوب دنبال يه كامپوننت براي اينكار هستم .
در ضمن هر سطر شامل يك سري اطلاعات هست كه نبايد كاربر ببينه . (كليد هاي خارجي) كه حالا اين شي اگر بشه شامل ستون هاي مخي هم باشه خوب ميشه .
البته براي اين كار ميشه يك ليست جدا ساخت در حافظه كه عناصر هم ايندكس از اين ليست ها مربوط به هم باشن.
چه نو ليست ها ي ديگري مثل StringList وجود داره كه نوع اونها چيز هاي ديگه باشه . مثلا از نوع شي، داده عددي ، ركورد و ....
البته براي داده هاي عددي همين StringList قابل استفاده است .
خب اين ميشه گفت كاريه كه من ميخوام انجام بدم . و نياز به راهنمايي دارم .
ممنون از همگي .
tdkhakpur
چهارشنبه 13 مرداد 1389, 12:43 عصر
حالا دكمه ثبت رو ميزنه اطلاعات از سطر يك شر.ع ميشه به ثبت شدن و هر كدوم كه ثبت بشه علامت تيك در كنارش و هر كدوم كه ثبت نشه علامت ضربدر .
کنار هر کدام از سطرهای گرید که رکورد شما قرار میگیره یک checkbox قرار بده و تغییرات زیر را داخل DrawCell گرید ایجاد کن.
کد زیر برای جدولی هست که در روی فرم 4 سطر آن قابل مشاهده است و بقیه باید سکرول شوند.
var
ListChecked : array [0..20] of boolean;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
case (ARow mod 4) of
0 : CheckBox1.Checked := ListChecked[ARow];
1 : CheckBox2.Checked := ListChecked[ARow];
2 : CheckBox3.Checked := ListChecked[ARow];
3 : CheckBox4.Checked := ListChecked[ARow];
end;
end;
داخل برنامه محتوای آرایه ( ListChecked )را به هنگام ثبت بروز کنید مثلا وقتی رکورد اول شما به درستی ثبت شد بصورت
ListChecked [0] : = true;
فعال کنید در غیر اینصورت غیر فعال و برای سایر رکوردها هم به همین شکل.
چه نو ليست ها ي ديگري مثل StringList وجود داره كه نوع اونها چيز هاي ديگه باشه . مثلا از نوع شي، داده عددي ، ركورد و ....
فکر نکنم همچین کنترل اماده ای برای این کار وجود داشته باشه ولی میتوانید خودتان بهینه کنید.
bmanfy
چهارشنبه 13 مرداد 1389, 21:21 عصر
ممنون.
استرينگ گريد يه مقداري مديريتش سخت . مثلا حذف كردن يك سطر .
تو DBGrid نميشه اطلاعات ثبت كرد بدون اينكه به جايي وصل باشه ؟
كامپوننتي كه ساده باشه مديريت اون .البته TMS يك استرينك گريد داره كه خب پوليه و .....
SAASTN
چهارشنبه 13 مرداد 1389, 23:50 عصر
می تونی از ListView هم استفاده کنی، این امکان رو داره که یکی از ستونهاش رو هم با Icon پر کنی. اکثر برنامه ها برای گزارش Log از همین کنترل استفاده می کنند، یه مثال نزدیک به ذهن هم Nero هست.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.