Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Сохранение кнопок на тулбаре   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-41155
Niobe
2003-11-03 11:02
2003.11.13
Списки или запросы


7-42169
Camedia
2003-08-30 22:18
2003.11.13
Нужно чтобы хук работал по всей системе....


1-41419
dream
2003-10-29 15:35
2003.11.13
Нужно чтобы сервис запускал exe под именем пользователя


3-41015
rosl
2003-10-16 03:15
2003.11.13
dll


6-41808
nikkie
2003-09-15 14:51
2003.11.13
double click в EmbeddedWB