Om |
Отправлено: 20.07.2005, 10:16 |
|
Не зарегистрирован
|
Как можно в "ран тайме" записать в свойство DBGrid->Columns->Alignment значение из переменной типа AnsiString? |
|
olegenty |
Отправлено: 20.07.2005, 10:23 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
а что у тебя хранится в AnsiString?
в любом случае, попахивает связкой if, либо switch (но тогда AnsiString не катит).
другой вариант (именно так я бы и сделал) — map< AnsiString, TAlignment>, а по нему определить чё и как — труда не составляет. для однозначной корреляции — идеальный вариант.
|
|
Om |
Отправлено: 20.07.2005, 11:35 |
|
Не зарегистрирован
|
В переменной AnsiString как раз и лежит вариант Alignment (из файла параметров сетки "taLeftJustify","taRightJustify" и т.д.). |
|
Guest |
Отправлено: 20.07.2005, 11:56 |
|
Не зарегистрирован
|
AnsiString s = "taLeftJustify";
if( s == "taLeftJustify") DBGrid->Columns->Alignment = taLeftJustify;
if( s == "taRightJustify") DBGrid->Columns->Alignment = taRightJustify;
... |
|
olegenty |
Отправлено: 20.07.2005, 12:52 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
2 Guest — я это и написал. но map (второй вариант) — проще для восприятия.
CODE |
map < AnsiString, TAlignment > mapAlign;
// инициализация
mapAlign["taLeftJustify"] = taLeftJustify;
mapAlign["taRightJustify"] = taRightJustify;
...
// использование
// AnsiString asAlign = "taLeftJustify";
...
DBGrid->Columns->Items[0]->Alignment = mapAlign[s];
|
|
|
olegenty |
Отправлено: 20.07.2005, 12:53 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
пардон, в последней строке не
mapAlign[s];
а
mapAlign[asAlign];
|
|
Om |
Отправлено: 20.07.2005, 13:28 |
|
Не зарегистрирован
|
А map надо писать как в STL :
[typedef std::map Align_Type;
Align_Type MapAlign;
...]
а то компилер ругается если писать как говорит olegenty? |
|
olegenty |
Отправлено: 20.07.2005, 13:32 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
у меня чё-то не ругается
|
|
Gedeon |
Отправлено: 20.07.2005, 14:00 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
using namespace std;
|
|
Om |
Отправлено: 20.07.2005, 14:11 |
|
Не зарегистрирован
|
Да! Да! Да! Забыл об using namespace std; вот и ругалься.
Теперь все работает спасибо друзья! |
|