Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Настройки... 
:(
    Опции темы
Azzy
Дата 5.3.2003, 06:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2003

Репутация: нет
Всего: нет



Вопсрос вот в чём: можно ли, и если можно, то как, сохранить изменение свойств компонента во время выполнения программы без использования дополнительных файлов или реестра? F. e. у проги в меню есть настройки, я там настраиваю, настраивю, закрываю прогу, а когда открываю, всё настроеное мною теряется... так вот надо сохранить изменения компонентов (f. e. TRadioButton ).

Это сообщение отредактировал(а) Azzy - 5.3.2003, 06:50
PM MAIL   Вверх
Medved
Дата 5.3.2003, 06:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



В глобальные переменные и т.д.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Azzy
Дата 5.3.2003, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2003

Репутация: нет
Всего: нет



Всмысле... т.е. а по подробнее ... Я конечно не спец, но все с чего-то начинали.
PM MAIL   Вверх
dr.ZmeY
Дата 5.3.2003, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Политолог
****


Профиль
Группа: Участник Клуба
Сообщений: 3892
Регистрация: 26.3.2002
Где: ..::STALINGRAD::. .

Репутация: нет
Всего: 60



Делаешь файлик *.ini, это самое простое, обзываешь его, например config.cfg (я так обычно делаю) и туда записываются все настройки... При их изменении - автоматически... Когда прогу загружаешь, то значения из этого файла присваиваются глобальным переменным и флагам, отвечающим за настройку твоего меню... Всё очень просто...


--------------------
PM MAIL WWW ICQ Skype   Вверх
Azzy
Дата 5.3.2003, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2003

Репутация: нет
Всего: нет



Спасибо за совет, я попробую, но есл сущ. другой способ( без файлов и без реестра) то напишите о нём, плииииз
PM MAIL   Вверх
Medved
Дата 5.3.2003, 07:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата(Snick_Y2K @ 5.3.2003, 10:23)
Делаешь файлик *.ini, это самое простое, обзываешь его, например config.cfg (я так обычно делаю) и туда записываются все настройки... При их изменении - автоматически... Когда прогу загружаешь, то значения из этого файла присваиваются глобальным переменным и флагам, отвечающим за настройку твоего меню... Всё очень просто...

Но абсолютно противоречит вопросу....

Цитата
сохранить изменение свойств компонента во время выполнения программы без использования дополнительных файлов или реестра


Глобальные переменные - это переменные, которые видны в любом месте программы, т.е. в любой процедуре любого модуля. Их можно объявить в разделе Var глобального модуля.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Vit
Дата 5.3.2003, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Самый простой способ

1) Ставим библиотеку RxLib
2) Ставим на форму компонент FormStorage
3) Делаем двойной щелчёк на комоненте, в открывшемся окне выбираем те свойства которые надо запомнить

Всё - теперь программа будет "вспоминать" при загрузке те настройки, что были при её включении (физически она их будет хранить в INI или реестре, но руками делать ничего не надо будет)


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
dr.ZmeY
Дата 5.3.2003, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Политолог
****


Профиль
Группа: Участник Клуба
Сообщений: 3892
Регистрация: 26.3.2002
Где: ..::STALINGRAD::. .

Репутация: нет
Всего: 60



А, сорри, мимо ушей пропустил... Для этих целей даже удобней будет свой тип создать:
Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, Buttons,
 IniFiles, ComCtrls, ExtCtrls, Gauges;    // Чтобы работать с ини файлами!!!

///////////////////////////////////////////////////////////////////////////
type
 TVybor = class(TForm)
...
...
...
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Vybor: TVybor;

// Обьявление глобальных типов и переменных////////////////////////////////
///////////////////////////////////////////////////////////////////////////
type TСonfig = record
   Name:string;
   Id:string;  
   Menu1:Integer;
   Trebov:Integer;
   LG:Real;        
   DG:Real;        
   Radio1:Boolean;
   Radio2:Boolean;
   List:array[0..20] of Real;
   DList:array[0..20] of Real;
end; //

var
   Config:TConfig; // Изменения настроек
...
...
...




--------------------
PM MAIL WWW ICQ Skype   Вверх
Medved
Дата 5.3.2003, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата
Для этих целей даже удобней будет свой тип создать:


Согласен...


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Azzy
Дата 5.3.2003, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.3.2003

Репутация: нет
Всего: нет



Ещё раз феньнкс.
PM MAIL   Вверх
Vit
Дата 5.3.2003, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(Pegas @ 4.3.2003, 23:09)
Цитата
Для этих целей даже удобней будет свой тип создать:


Согласен...

Сомнительно... Скорее процедуру, да не перечислять настройки, а через RTTI - в общем строк 40 кода, но это если умеешь это всё делать, а если нет, то тогда готовый компонент самое оно.


А по поводу того где хранить есть несколько вариантов:

1) INI файл или ещё какой-нибудь файл. Достоинства: легко найти, стереть, редактировать, перенести. Недостатки: не обеспечивает разделение глобальных настроек и настроек каждого пользователя (или это надо специально организовывать), стандартные INI файлы имеют большие ограничесния на сохраняемые типы и объём инфы, самопальные - довольно долго писать интерфейс...

2) Реестр. Достоинства: стандарт хранения такой инфы в среде виндов, поддержка глобальных и локальных для пользователя установок, готовая древовидная структура. Недостатки - ограничение по объёму инфы, трудность удаления и редактирования, при большом объеме - замедление работы винды, замусоривание системы.

3) Базы данных - очень удобный и быстрый способ хранения инфы, но к сожалению обычно необходимо тащить кучу драйверов. Я использую VolgaDB для этих целей - очень удобно и быстро, драйверов не требуется, поддержка очень многих типов, но интерфейс прийдётся писать самому - я писал целую библиотеку классов (около 30 классов) для автоматического хранения свойств, языковых настроек и т.п. но это для серьёзной работы, для простых проектов это не надо, достаточно простых вещей

4) Хранение в оперативной памяти - например в атомах - будет хранится до перезагрузки системы

5) Хранение на физическом диске и в с собственном exe - хаккерские методы, реализовать можно, но не рекомендуется....


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
December
Дата 5.3.2003, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

Репутация: 8
Всего: 57



Цитата(Vit @ 4.3.2003, 23:38)

1) INI файл или ещё какой-нибудь файл... ...самопальные - довольно долго писать интерфейс...

Позволю себе не согласиться.
Класс TStrings упрощает написание интерфейса до 20 минут максимум. К тому же это самый быстрый и легковесный способ.


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Vit
Дата 5.3.2003, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(December @ 5.3.2003, 01:23)
Цитата(Vit @ 4.3.2003, 23:38)

1) INI файл или ещё какой-нибудь файл... ...самопальные - довольно долго писать интерфейс...

Позволю себе не согласиться.
Класс TStrings упрощает написание интерфейса до 20 минут максимум. К тому же это самый быстрый и легковесный способ.

Если ты имеешь ввиду только лишь запись в файл то да, а реализация записи всех типов через RTTI займёт немного больше времени - для меня часа 2-3, для того кто с RTTI не работал, возможно разбираться надо будет несколько дней...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
serious
Дата 8.3.2003, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 15.2.2003
Где: Пенза

Репутация: нет
Всего: 1



Цитата(Vit @ 5.3.2003, 00:38)
Хранение на физическом диске и в с собственном exe - хаккерские методы, реализовать можно, но не рекомендуется....

А поподробнее вот про exe можно? Все мы в душе хацкеры.... wink.gif

Это сообщение отредактировал(а) serious - 8.3.2003, 23:32


--------------------
Я знаю то, что ничего не знаю, а некоторые не знают и этого.
PM MAIL   Вверх
Vit
Дата 11.3.2003, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Цитата(serious @ 8.3.2003, 14:29)
А поподробнее вот про exe можно? Все мы в душе хацкеры.... wink.gif

1) Например мы знаем что размер EXE 300Kb
2) Создаём файл с настройками
3) Вычленяем из EXE файла первые 300Kb в отдельный файл
3) Создаём BAT файл который пытается слить EXE и файл настроек в один файл
4) Запускаем BAT
5) Закрываем программу
6) Как только программа закроется то BAT файл изменит EXE на новый файл с настройками.


У этого способа есть недостаток - чтобы изменить свойства и запомнить их необходима перезагрузка программы.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.