Текущий архив: 2004.05.16;
Скачать: CL | DM;
ВнизКак сохранить параметры формы и компонентов в нем? Найти похожие ветки
← →
Kliiip (2004-04-30 08:18) [0]Допустим я запустил программу. Изменил ее размеры. И изменил размеры колонок TListVeiw и вышел из программы. Мне нужно что бы все параметры сохранились.
← →
Ozone © (2004-04-30 08:25) [1]TIniFile + F1
← →
Kliiip (2004-04-30 09:01) [2]А есть программка для примера? По готовой программе разобраться легче, чем по англоязычному хелпу
← →
SSN © (2004-04-30 09:37) [3]Есть отличный компонент в библотеке RXLib. Называется TFormStorage. А если хочешь сделать сам, используй класс TRegister (см. help)
← →
Dimedrol © (2004-04-30 09:49) [4]Да да! RxLib - рулИт! :-)
← →
GrayPilgrim © (2004-04-30 09:53) [5]Через ini файл однозначно проще и удобнее,
сохраняешь подряд размеры всех компонентов
например
[ControlName]
width = ...
height = ...
Соответственно потом читаешь из ini файла
readinteger(...)
имена компонентов берешь прямо из формы
← →
opoloxai © (2004-04-30 09:59) [6]А по-моему через реестр удобнее. Называешь нужную ветку реестра по имени родитедя+компонента
OpenRegKey(TComponent().Parent.Name+TComponent().Name, true);
и пользуешься.
← →
Евкисий © (2004-04-30 10:01) [7]Я лично сохранял в реестре, ниже кусок кода, сохраняющего позиции контролов и размеры колумнов DBGrid"ов... может пригодится :))
procedure WriteKey(ParentName : string; PC : TWinControl);
var
s : string;
i : integer;
begin
Reg.RootKey := HKEY_CURRENT_USER;
s:=ParentName+"\"+PC.Name;
Reg.OpenKey(s, true);
Reg.WriteString("Left", IntToStr(PC.Left));
Reg.WriteString("Top", IntToStr(PC.Top));
Reg.WriteString("Width", IntToStr(PC.Width));
Reg.WriteString("Height", IntToStr(PC.Height));
if TControl(PC).ClassName = "TDBGrid" then
begin
for i:=0 to TDBGrid(PC).Columns.Count-1 do
Reg.WriteString("ColumnWidth"+IntToStr(i), IntToStr(TDBgrid(PC).Columns[i].Width));
end else Reg.WriteString("ClassName", TControl(PC).ClassName);
if PC.ControlCount<>0 then
for i:=0 to PC.ControlCount-1 do WriteKey(s, TWinControl(PC.Controls[i]));
end;
function SavePositionsToRegistry(ProjectName : PChar; PF: PChar; var PC : TWinControl) : boolean; stdcall; export
var
s:string;
P :TWinControl;
begin
P:=PC;
s := P.Name;
ShowMessage(s);
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey("\Software\"+ProjectName, true);
Reg.OpenKey("\Software\"+ProjectName+"\"+s, true);
finally
Reg.CloseKey;
Reg.Destroy;
end;
end;
← →
Pul (2004-04-30 12:09) [8]Поищи на tory компонент TAutoPropertiesStore
Он сохраняет любые свойства доступные через Object Inspector любых компонентов. Очень удобно, сначала указываешь какие свойства сохранять, а потом добавляешь две строки кода в проект.
← →
Pul (2004-04-30 12:10) [9]Если не найдешь TAutoPropertiesStore
могу выслать почтой
← →
Вованчик © (2004-04-30 14:15) [10]
> Pul (30.04.04 12:10) [9]
Кинь плиз и мне тоже OgpK@Azot.ru, посмотреть интересно
← →
arc (2004-04-30 18:21) [11]> Pul (30.04.04 12:10) [9]
Кинь мне компонент тоже на почту VolkRan@mail.ru если не затруднит
← →
WebErr © (2004-04-30 18:25) [12]Народ, TFormStorage из RxLib уже кого-то не устраивает? 8/
← →
Mim1 © (2004-04-30 20:19) [13]Я как понимаю форм сторадж может сохранять только определенные сфойства, типа ширены, высоты и тд. Тут же говорят о универсальной вещи.
Лично я сейчас просмотре PropStorageEh, очень симпатичная штука (входит в ehlib). Есть clx версия.
← →
Vemer © (2004-04-30 20:34) [14]Проблему изначально решаю .BorderStyle = BsSingle; :). Пока никто не жаловался.. Все равно в полноэкранном режиме обычно работают..
← →
имя (2004-05-02 22:39) [15]Удалено модератором
Страницы: 1 вся ветка
Текущий архив: 2004.05.16;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.033 c