Главная страница
    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.032 c
1-41451
WondeRu
2003-10-23 09:43
2003.11.13
Плагины и СОМ


7-42195
som
2003-09-04 13:11
2003.11.13
Uninstaller


7-42186
Василий
2003-08-28 14:16
2003.11.13
Как получить данные через USB порт


7-42196
AnthreX
2003-08-25 02:48
2003.11.13
Hook на клавиатуру.


14-41961
Ketmar
2003-10-16 19:22
2003.11.13
DarkEyeProxy v0.3.0





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский