PDA

View Full Version : تغییر Alignment یک ستون DBgrid در زمان اجرا



mojtaba_z
پنج شنبه 11 مرداد 1386, 11:05 صبح
سلام
در زمان اجرای برنامه میخوام مثلا با زدن یه کلید ، از توی یه فایل Txt یه مقدار که میتونه مثلا taCenter باشه رو بخونه و در متغیر S1 از نوع String بریزه و با توجه به اون مقدار Alignment مربوط به یک ستون از DBGrid تغییر کنه.
کد زیر رو میزنم :


DBGrid1.Columns[0].Alignment := S1


ولی پیغام میده :
Incompatible Types : String and TAlignment

SYNDROME
پنج شنبه 11 مرداد 1386, 11:35 صبح
با سلام
یک متغیر از نوع TAlignment تعریف کن.


S : TAlignment;

بعد با توجه به نیاز مقدار آن را پر کن.


S := taCenter;

البته برای قرار دادن مقدار در Sمی توانی در یک ComboBoxمقدارهای Stringآن را بنویسی و سپس بر اساس ComboBox.ItemIndex مقدار مورد نظر را در Sبریزی
سپس مقدار را در ستون مربوطه به DBGridقرار بده.


DBGrid1.Columns[0].Alignment := S;

موفق باشید

mojtaba_z
پنج شنبه 11 مرداد 1386, 12:03 عصر
البته برای قرار دادن مقدار در Sمی توانی در یک ComboBoxمقدارهای Stringآن را بنویسی و سپس بر اساس ComboBox.ItemIndex مقدار مورد نظر را در Sبریزی

مشکل اینه که وقتی مقدار حاصل از ComboBox رو که از نوع String هستش میخواهیم توی متغیر S که از نوع TAlignment هستش بریزیم پیغام Incompatible Types : String and TAlignment رو میده .
باید یه طوری String رو به TAlignment تبدیل کرد ؟؟

Batman
پنج شنبه 11 مرداد 1386, 12:29 عصر
میتونی از دستور case به صورت زیر استفاده کنی
case combobox1.itemindex of
0:DBGrid1.Columns[0].Alignment := tacenter;
1:DBGrid1.Columns[0].Alignment := taLeftJustify;
2:DBGrid1.Columns[0].Alignment := taRightJustify;
end;
موفق باشید

SYNDROME
پنج شنبه 11 مرداد 1386, 14:53 عصر
با سلام


مشکل اینه که وقتی مقدار حاصل از ComboBox رو که از نوع String هستش میخواهیم توی متغیر S که از نوع TAlignment هستش بریزیم پیغام Incompatible Types : String and TAlignment رو میده .

انگاری به نوشته من دقت نکردید.


البته برای قرار دادن مقدار در Sمی توانی در یک ComboBoxمقدارهای Stringآن را بنویسی و سپس بر اساس ComboBox.ItemIndex مقدار مورد نظر را در Sبریزی
موفق باشید
دقیقا مثلا حالتی که دوست عزیز Batmanانجام داد ولی با این تفاوت که مقدارها را در متغییر(S)قرار بده.
موفق باشی

mojtaba_z
شنبه 13 مرداد 1386, 15:59 عصر
سلام
از روشی که Batman کفته بود به نتیجه میرسیم .
آیا دستور یا روشی هست که یک رشته مثلا 'taLeftJustify' رو بشه به TAlignment تبدیل کرد ؟
(این چیزی که من نوشتم فقط یه مثال بود و منظورم پیدا کردن راه حل برای اون نبود)
با تشکر از جوابهاتون