powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Способ автосохранения Editов, CheckBoxов, Memo и т.д.
30 сообщений из 30, показаны все 2 страниц
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850013
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот может кому пригодится

Вызов:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
procedure TYourForm.FormCreate(Sender: TObject);
begin
  FormLoad(Self);
...

procedure TYourForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose := FormSave (self);
...

program YourProgramm;
uses
....
begin
//  ReportMemoryLeaksOnShutdown := True;
  Application.UpdateFormatSettings:=False;
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'Enforce it!';
  Start;
....

procedure Start; // 
var
  buffer     : array[0..255] of char;
  buffsize   : DWORD;
begin
  buffsize := sizeOf(buffer);
  GetComputerName(buffer, buffsize);
  MyMachine := buffer;

  buffsize := sizeOf(buffer);
  GetUserName(@buffer, buffSize);
  if MyUSerCode = '' then MyUserCode := UpperCase(buffer);
end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
procedure FormLoad(Form: TForm);
var
  INIFile : TIniFile;
  FormOnResize : Tevent;
begin
  Form.Caption := Application.Title + '   ' + MyUserCode;
  CM_INI := lowercase(ExtractFilePath(Application.ExeName) +'\ini');
  FormOnResize := nil;
  if CM_INI <> '' then begin
    if MyUserCode <> '' then begin
      INIFile := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'ini\' + lowercase(MyUserCode) + '.ini');
      try
        if Assigned (Form.OnResize) then begin
          FormOnResize := Form.OnResize;
          Form.OnResize := nil;
        end;
        ReadVals (Form, Form.Caption, INIFile);
      finally
        if Assigned (FormOnResize) then
          Form.OnResize := FormOnResize;
        INIFile.Free;
      end;
    end;
  end;
end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
function FormSave(Form: TForm; ConfirmExit: Boolean = false): boolean;
var
  iniUser        : TIniFile;
begin
  Result := True;
  if ConfirmExit = True then
      if MessageDlg('Выходим??',mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes then
        Result := True
      else
        Result := False
    else
      Result := True;
// save the screens position in the users .ini file

  if result then begin
    try
      if MyUserCode <> '' then begin
        if not SysUtils.DirectoryExists(ExtractFilePath(Application.ExeName) + 'ini') then
          SysUtils.ForceDirectories (ExtractFilePath(Application.ExeName) + 'ini');
        iniUser := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'ini\' + lowercase(MyUserCode) + '.ini');
        try
          if Form.Caption <> '' then begin
            WriteVals (Form, Form.Caption, iniUser);
          end;
        finally
          iniUser.Free;
        end;
      end;
    except
      ErrorLog('Error saving user settings' + ' ' + MyUserCode);
    end;
  end;
end;

...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850015
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, самый цимес:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
procedure ReadVals (Parent: TWinControl; Capt : string; ini : TIniFile);
var i : Integer; s : string;
begin
  for i := 0 to Parent.ControlCount - 1 do begin
    if Parent.Controls [i].tag = 22 then begin
        if Parent.Controls [i] is TEdit then
          (Parent.Controls [i] as TEdit).Text := ini.ReadString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TEdit).Text);
        if Parent.Controls [i] is TLabeledEdit then
          (Parent.Controls [i] as TLabeledEdit).Text := ini.ReadString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TLabeledEdit).Text);
//        if Parent.Controls [i] is TDBEdit then
//          (Parent.Controls [i] as TDBEdit).Text := ini.ReadString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TDBEdit).text);
{$ifdef INFOPOWER}
        if Parent.Controls [i] is TwwDBEdit then
          (Parent.Controls [i] as TwwDBEdit).Text := ini.ReadString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TwwDBEdit).text);
        if Parent.Controls [i] is TwwDBDateTimePicker then
          (Parent.Controls [i] as TwwDBDateTimePicker).Date := StrToDate (ini.ReadString(Capt, Parent.Controls [i].name, emptystr));
{$endif}
        if Parent.Controls [i] is TDateTimePicker then
          (Parent.Controls [i] as TDateTimePicker).Date := StrToDate (ini.ReadString(Capt, Parent.Controls [i].name, emptystr));
        if Parent.Controls [i] is TDriveComboBox then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then
            TDriveComboBox(Parent.Controls [i]).Drive := s[1];
        end;
        if Parent.Controls [i] is TDirectoryListBox then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then
            TDirectoryListBox(Parent.Controls [i]).Directory := s;
        end;
        if Parent.Controls [i] is TFileListBox then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then
            TFileListBox(Parent.Controls [i]).FileName := s;
        end;
{$ifdef JV}
        if Parent.Controls [i] is TJvDriveCombo then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then
            (Parent.Controls [i] as TJvDriveCombo).Drive := s[1];
        end;
        if Parent.Controls [i] is TJvDirectoryListBox then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then
            (Parent.Controls [i] as TJvDirectoryListBox).Directory := s;
        end;
        if Parent.Controls [i] is TJvFileListBox then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then
            (Parent.Controls [i] as TJvFileListBox).FileName := s;
        end;
{$endif}
        if Parent.Controls [i] is TMemo then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim(s) <> emptystr then TMemo(Parent.Controls[i]).Lines.Clear;
          while trim(s) <> emptystr do begin
            TMemo(Parent.Controls[i]).Lines.Add(s);
            ini.DeleteKey(Capt, Parent.Controls [i].name);
            s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          end;
        end;
        if Parent.Controls [i] is TCheckBox then begin
          s := ini.ReadString(Capt, Parent.Controls [i].name, emptystr);
          if trim (s) = '1' then (Parent.Controls [i] as TCheckBox).Checked := true else
             (Parent.Controls [i] as TCheckBox).Checked := false;
        end;
    end;
    if Parent.Controls [i] is TWinControl then
      ReadVals (TWinControl(Parent.Controls [i]),Capt, ini);
  end;
end;

procedure WriteVals (Parent: TWinControl; Capt : string; ini : TIniFile);
var i,j : Integer; F : TextFile;
begin
  for i := 0 to Parent.ControlCount - 1 do begin
    if Parent.Controls [i].tag = 22 then begin
        if Parent.Controls [i] is TEdit then
          ini.WriteString(Capt, Parent.Controls [i].name,            TEdit(Parent.Controls [i]).text);
        if Parent.Controls [i] is TLabeledEdit then
          ini.WriteString(Capt, Parent.Controls [i].name,            TLabeledEdit(Parent.Controls [i]).text);
//        if Parent.Controls [i] is TDBEdit then
//          ini.WriteString(Capt, Parent.Controls [i].name,            (Parent.Controls [i] as TDBEdit).text);
{$ifdef INFOPOWER}
        if Parent.Controls [i] is TwwDBEdit then
          ini.WriteString(Capt, Parent.Controls [i].name,            (Parent.Controls [i] as TwwDBEdit).text);
        if Parent.Controls [i] is TwwDBDateTimePicker then
          ini.WriteString(Capt, Parent.Controls [i].name, DateToStr ((Parent.Controls [i] as TwwDBDateTimePicker).Date));
{$endif}
        if Parent.Controls [i] is TDateTimePicker then
          ini.WriteString(Capt, Parent.Controls [i].name, DateToStr ((Parent.Controls [i] as TDateTimePicker).Date));
        if Parent.Controls [i] is TDriveComboBox then
          ini.WriteString(Capt, Parent.Controls [i].name, TDriveComboBox(Parent.Controls [i]).Drive);
        if Parent.Controls [i] is TDirectoryListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, TDirectoryListBox(Parent.Controls [i]).Directory);
        if Parent.Controls [i] is TFileListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, TFileListBox(Parent.Controls [i]).FileName);
{$ifdef JV}
        if Parent.Controls [i] is TJvDriveCombo then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvDriveCombo).Drive);
        if Parent.Controls [i] is TJvDirectoryListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvDirectoryListBox).Directory);
        if Parent.Controls [i] is TJvFileListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvFileListBox).FileName);
{$endif}
        if Parent.Controls [i] is TMemo then begin
            AssignFile(F, ini.FileName);
            Append(F);
          for j := 0 to TMemo(Parent.Controls[i]).Lines.Count - 1 do begin
              if trim (TMemo(Parent.Controls[i]).Lines[j]) <> emptystr then
                Writeln(F, Parent.Controls [i].name + '=' + TMemo(Parent.Controls[i]).Lines[j]);
          end;
            Flush(F);
            CloseFile(F);
          end;
        if Parent.Controls [i] is TCheckBox then begin
          if TCheckBox(Parent.Controls [i]).Checked then
             ini.WriteString(Capt, Parent.Controls [i].name, '1') else ini.WriteString(Capt, Parent.Controls [i].name, '0')
        end;
    end;
    if Parent.Controls [i] is TWinControl then
      WriteVals (TWinControl(Parent.Controls [i]), Capt, ini);
  end;
end;


Теперь ставим на контролы, которые хотим сохранять тэг=22 и voila
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850017
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что этот код делает?
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850021
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Сохраняет значения контролов при выходе из программы в ini файле и загружает их при создании формы. Нужно только в тэге поставить 22.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850024
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

Стоило ли городить велосипед, когда готовых много? Я, например, юзаю TJvFormStorage. Умеет сохранять любые опубликованные свойства компонент формы, кода не нужно вообще. Сохраняет в Ini, xml, базу, реестр.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850025
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и так, куча плюшек - сохранение самой формы, и любых параметров.
и это не единственные компоненты такие.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850027
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon, а TJvFormStorage, умеет сохранять только те, которые попросили или скопом все?
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850035
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin, а нагуглить https://wiki.delphi-jedi.org/wiki/JVCL_Help:TJvFormStorage религия запрещает?
___
Это я так... Ворчу
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850037
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

что добавишь в список сохранения, то сохранит и восстановит.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850040
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator, makhaon - спасибо. Человек - животное общественное. Спросить приятнее чем гуглить.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850044
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самое интересное, что жедаи уже стоят :) демки хотя бы посмотри, там много всякого. эта компонента, что я кинул в том числе.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850049
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вообще концептуально это крайне странно
формы должны служить для взаимодействия с моделью данных
и сохранение/загрузка данных уж точно не их формячье дело
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850052
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Ну мало ли, не у всех жедаи стоят, а ставить жедаи только из-за такой фичи не каждый захочет.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850053
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

а как вычислил что у меня жедаи стоят?
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850069
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookinmakhaon,

а как вычислил что у меня жедаи стоят?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
{$ifdef JV}
        if Parent.Controls [i] is TJvDriveCombo then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvDriveCombo).Drive);
        if Parent.Controls [i] is TJvDirectoryListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvDirectoryListBox).Directory);
        if Parent.Controls [i] is TJvFileListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvFileListBox).FileName);
{$endif}
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850071
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

Да, сейчас стоят, но если бы ВСЕГДА стояли, то никаких
Код: pascal
1.
{$ifdef JV}

не было бы
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850072
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Откройте секрет, какой смысл несут эти строки ?
Код: pascal
1.
2.
        if Parent.Controls [i] is TwwDBEdit then
          (Parent.Controls [i] as TwwDBEdit).Text := ini.ReadString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TwwDBEdit).text);
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850074
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему не написать так ?
Код: pascal
1.
2.
3.
4.
5.
for i := 0 to Parent.ControlCount - 1 do begin
  C := Parent.Controls[i];
  if C.Tag = 22 then begin
   if C is TEdit        then TEdit(C).Text := ini.ReadString(Capt, C.Name, TEdit(C).Text);
   if C is TLabeledEdit then TLabeledEdit(C).Text := ini.ReadString(Capt, C.Name, TLabeledEdit(C).Text);
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850078
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

у тебя используется лишнее присвоение, чем твой код лучше?
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850080
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему бы не проверять но InheritsFrom(TWincontrol)?
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850084
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator,

О! Идея.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850089
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin,

в EhLib есть компонентик TPropStorageEh. Он визуально показывает доступные компоненты и свойства, а ты можешь указать, что именно сохранять.
Например, хочу сохранять размеры и позицию окна, а также текст в Edit1:
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850094
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor CookinDimaBr,
у тебя используется лишнее присвоение, чем твой код лучше?

Да, у меня одно присвоение. А у вас 4 раза вызывается функция !!!

Код: pascal
1.
2.
if Parent.Controls [i] is TEdit then
          (Parent.Controls [i] as TEdit).Text := ini.ReadString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TEdit).Text);




Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
property Controls[Index: Integer]: TControl read GetControl;

function TWinControl.GetControl(Index: Integer): TControl;
var
  N: Integer;
begin
  if FControls <> nil then N := FControls.Count else N := 0;
  if Index < N then
    Result := FControls[Index] else
    Result := FWinControls[Index - N];
end;
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850162
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёёв EhLib есть компонентик TPropStorageEh.
эдак , и я смогу. Причем, все в комплекте искаропки идет
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850189
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К слову, если уж делать своё, то лучше не писать портянки с частными компонентами, а юзать RTTI. Ключевики: GetPropInfo, GetPropValue, SetPropValue, дальше - Гугл в помощь.
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850199
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonлучше не писать портянки с частными компонентами, а юзать RTTI
+100500
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850203
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже не ради обсуждения смысли изобретения собственного велосипеда, а только ради чистоты кода. Вам не кажется что слишком много повторяющегося текста?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
{$ifdef JV}
        if Parent.Controls [i] is TJvDriveCombo then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvDriveCombo).Drive);
        if Parent.Controls [i] is TJvDirectoryListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvDirectoryListBox).Directory);
        if Parent.Controls [i] is TJvFileListBox then
          ini.WriteString(Capt, Parent.Controls [i].name, (Parent.Controls [i] as TJvFileListBox).FileName);
{$endif}



Parent.Controls [i] банально завернуть в отдельную переменную и уйдет вагон лишнего текста из кода. As тоже непонятно зачем нужен, Вы уже проверили тип ранее. Это все больше к оформлению кода придирки, а не функциональности :)
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850210
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздравляю, ты изобрел WriteComponent )))
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850216
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, у всех контролов их значение хранятся в разных свойствах, поэтому без перебора вряд ли получится
TEdit.Text
TDateTimePicker.Date
TMemo.Lines.Text
TListBox.Items.Text
TCheckBox.Checked
Tcx<EditControl>.Properties.EditValue
...
Рейтинг: 0 / 0
Способ автосохранения Editов, CheckBoxов, Memo и т.д.
    #39850387
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-хорошему, если нужно только значение, то делать кучу перегруженных методов Read/WriteValue с параметром контрола соответствующего класса, либо задавать пары имя класса-имя свойства.
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Способ автосохранения Editов, CheckBoxов, Memo и т.д.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]