Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-41135
Артем
2003-11-04 07:56
2003.11.13
Ошибка при переходе на другую форму


14-41902
Behemoth
2003-10-13 09:45
2003.11.13
Какой язык программирования под WEB выбрать?


8-41746
shark
2003-07-12 16:30
2003.11.13
Видео из *.bmp


1-41541
Blunder
2003-10-28 08:09
2003.11.13
О строках


1-41197
пустойчайник
2003-10-30 07:56
2003.11.13
Размеры выпадающего списка ComboBox, как?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский