Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизСохранение кнопок на тулбаре Найти похожие ветки
← →
Islander (2003-10-24 18:33) [0]Допустим, юзер во время работы переместил кнопки на тулбаре, парочку удалил, парочку добавил. Есть ли удобные способы созранения положения, а также состояний присутсвия/отсутсвия кнопок на тулбраре?
← →
Islander (2003-10-24 18:35) [1]Да, и еще: приложение все построено на архитектуре Actions, но ActionToolbar я не использую - не красивый он какой-то, а использую тулбар обычный, но кнопки привязаны к действиям (actions)
← →
хз (2003-10-25 02:57) [2]Просто так ничего не получится. Нужно для начала решить для себя, в чем удобнее хранить настройки этих самых тулбаров и в соответствии с этим уже и выбирать нужное. Можно сохранять в XML (ищи компоненты на torry.net), или можешь придумать свой собственный формат. И вопрос: кнопки на тулбаре постоянны или создаются динамически?
← →
Islander (2003-10-25 09:21) [3]Ну, допустим, постоянны. Но некоторые могут быть невидимыми, т.е. , фактически, их нет. Некоторые могут быть перемещены.
← →
хз (2003-10-25 14:50) [4]Ну и в чем проблема? Проходишься по всем кнопкам, сохраняешь параметры каждой, потом загружаешь. Все просто.
← →
Islander (2003-10-25 21:14) [5]Да, нет, в этом-то нет ничего страшного, просто вот, если кнопка имеет состояние enabled:=false, то у нее почему-то и visible:=false...
← →
хз (2003-10-26 02:35) [6]2 Islander
Чего? Ты сам то понял, что сказал? Просто так ничего не бывает, поверь мне. Значит ты где-то не правильно работаешь с кнопками. Проверь код или выложи сюда - посмотрим.
← →
Islander (2003-10-26 07:16) [7]procedure TfrmMain.SaveToolBarState;
var
i: Integer;
IniFile : TIniFile;
begin
IniFile := TIniFile.Create(GetUserSettingsFileName);
for i:=0 to tbrMain.ButtonCount-1 do
begin
IniFile.WriteBool("ToolBar Buttons - visible status",
tbrMain.Buttons [i].Name, tbrMain.Buttons [i].Enabled);
IniFile.WriteInteger("ToolBar Buttons - position",
tbrMain.Buttons [i].Name, tbrMain.Buttons [i].Left);
end;
IniFile.Free;
end;
В итоге ini получается таким:
[ToolBar Buttons - visible status]
ToolButton1=0
ToolButton2=1
ToolButton3=1
ToolButton4=1
ToolButton5=1
ToolButton6=1
ToolButton7=0
[ToolBar Buttons - position]
ToolButton1=0
ToolButton2=79
ToolButton3=158
ToolButton4=237
ToolButton5=316
ToolButton6=395
ToolButton7=474
А у меня рельно на тулбаре все кнопки показаны! Просто первая и пследняя enabled:=false!
← →
Islander (2003-10-26 07:17) [8]Сори, и огромный респект. Посмотрел на свой код и понял что я лоханулся :(
← →
raize (2003-10-26 08:52) [9]вот только не пойму почему всегда INI-файлы или реестр?? что, так сложно сохранять в нетипизированный файл, чтобы "умным" юзверям отбить охоту что-то редактировать и предотвратить возможные ошибки.
надо всего-то немножко напрячься с TMemoryStream (например). здесь и крипт применить можно.
TActionData = Record
здесь все сведения, сохранямые для TAction
end;
TToolBarData = Record
здесь все сведения сохранямые для ToolBar
end;
вар ЭкшинДата: TActionData;
ТулБарДата: TToolbBarData;
Стрём: ТМемориСтрёмж
фор и := 0 ту количества тулбаров ду
бегин
Стрем := ТМемориСтрём.Креэйт;
ТулБарДата.Свойство := Параметр;
... и т.д. для ТулБарДата
Стрем.ВрайтБуф(ТулБарДата, СайзОф(TToolBarData));
фор и := 0 ту количества экшинов на тулбаре ду
бегин
... тоже самое как и с тулбаром
энд;
Стрём.Фри;
энд
vse ochen" prosto.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c