![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Добрый день!
Столкнулась с такой проблемой: есть форма1 и форма2. В форме 2 выбираю цвет для формы1. Цвет на форме1 изменяется, но вот при повторном открытии приложения цвет остается не измененным. Может кто-то подскажет как сохранить изменения? или где можно почитать? На форуме ответа не нашла . Заранее спасибо ![]() |
|
#2
|
||||
|
||||
|
Так какбе надо сохранять в реестр или ини файл.
TRegIniFile, TIniFile. |
|
#3
|
|||
|
|||
|
в ini. Есть процедура при закрытии формы
Код:
procedureTForm.FormClose(Sender: TObject; var Action: TCloseAction);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
try
Ini.WriteInteger('Form', 'Color', TForm1.color)
finally
Ini.Free;
end;
end;
и процедура
procedure TForm1.FormShow(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
try
Color:=Ini.ReadInteger( 'Form', 'Color', clCream);
finally
Ini.Free;
end;
end;lmikle: пользуемся тегами!!! Последний раз редактировалось lmikle, 30.07.2011 в 00:42. |
|
#4
|
||||
|
||||
|
У меня твой код работает.
|
|
#5
|
|||
|
|||
|
я не знаю в ini файле у меня всегда одно и то-же число. Цвет для формы1 я выбираю в форме2 из диалога процедурой
Код:
procedure TForm4.RadioButton1Click(Sender: TObject); var c:Longint; begin if not ColorDialog1.Execute then exit; C:=ColorToRGB(ColorDialog1.Color); Form1.Color:=c; Repaint; end; Последний раз редактировалось lmikle, 30.07.2011 в 00:43. |
|
#6
|
||||
|
||||
|
Используй:
Код:
procedure TForm2.FormShow(Sender: TObject);
var
Ini : TIniFile;
begin
Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
try
Color := Ini.ReadInteger( 'Form', 'Color', clCream);
finally
Ini.Free;
end;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
var
Ini : TIniFile;
begin
Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
try
Ini.WriteInteger('Form', 'Color', Color)
finally
Ini.Free;
end;
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
if CD.Execute then
begin
Form2.Color := ColorToRGB(CD.Color);
Repaint;
end;
end;Последний раз редактировалось angvelem, 30.07.2011 в 00:17. |
|
#7
|
|||
|
|||
|
Цвет меняешь только у одной формы, или ещё есть формы, у которых меняешь цвет?
|
|
#8
|
|||
|
|||
|
Пока только в одной
|
|
#9
|
|||
|
|||
|
Ребята, все равно не получается. Пока приложение открыто цвет тот, который выбрала. Как только закрыла и по новой открываю его цвет остается как до внесения изменений. И переменные вроде все объявила. Уже и не знаю где копать
![]() |
|
#10
|
||||
|
||||
|
Нет ничего сложного, на самом деле, тебе дали кучу кода...
Смотри: когда вносишь изменения в цвет формы попутно сохраняй эти параметры в файл или реестр...Потом при открытии (создании, активации см. цикл жизни формы в сети) формы назначай ей параметры из данного файла или реестра... Если есть проблемы с ини файлами или работой с реестром пиши... Или лучше подкинь свой код подправим... |
|
#11
|
||||
|
||||
|
Код, который я привёл, почти твой, рабочий на 100%, у меня работает без сбоев.
|
|
#12
|
|||
|
|||
|
Все 3 процедуры, которые я использую, я бросила вначале. Если их надо переписать в другом виде, то сделаю. Пробовала использовать код Angvelem результат тот-же что и раньше - при повторном открытии цвет не тот.
|
|
#13
|
||||
|
||||
|
Значит что то путаешь, я говорил уже, код работает 100%.
Последний раз редактировалось angvelem, 30.07.2011 в 01:24. |
|
#14
|
|||
|
|||
|
Да, спасибо, Ваше приложение работает. Из своего приложения убрала все лишнее и приклепляю файл, глаза наверное уже замылились
не могу найти ошибку . Буду премного благодарна если посмотрите ![]() |
|
#15
|
||||
|
||||
|
Действительно глаз "замылился". События OnShow и OnClose объявлены, но форме Form2 не присвоены!!!
![]() |