C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
DBGrid, Параметр DBGrid->Columns->Alignment
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



у меня чё-то не ругается smile.gif
Gedeon
Отправлено: 20.07.2005, 14:00


Ветеран

Группа: Модератор
Сообщений: 1742



using namespace std;
Om
Отправлено: 20.07.2005, 14:11


Не зарегистрирован







Да! Да! Да! Забыл об using namespace std; вот и ругалься.
Теперь все работает спасибо друзья!

Вернуться в Работа с базами данных в C++Builder