![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите разобраться с указателями
u4enik © (2012-01-18 14:05:00)Хочу сделать в программе сохранение настроек.
есть поле edit1: TEdit и переменная valEdit1: String;
при открытии нужно занести значение переменной в поле редактирования, при закрытии наоборот.
для универсальности пишу одну процедуру.
pString = ^String;
...
procedure SetGetStringParam(editValue, val: pString; optSave: Boolean);
begin
if optSave then begin
val:= editvalue;
end else begin
editvalue:= val;
end;
end;
...
вызываю:
SetGetStringParam(pointer(edit1.text), pointer(valEdit1), optSave)
получается ерунда.
наверное тут val:= editvalue; я присваиваю указатель.. а как сделать присваивание строки? пробывал варианты val^:= editvalue^; то же не то..
запутался с ^, @, pointer, addr
не могли бы подтолкнуть чуток?
u4enik (2012-01-18 14:36:00) [21]поле текста едита - vcl.controls.Tcaption
TCaption = type string;
я запутался с ^, @, pointer, addr
если у меня есть адрес строки, как присвоить строку по этому адресу?
u4enik (2012-01-18 14:32:00) [22]у меня не только edit'ы, хотелось бы универсальность сохранение параметров различных текстовых полей разных компонентов.
Ega23 (2012-01-18 14:27:00) [23]
> а поле edit1.text через var не передать..
Передавай TEdit, делов-то.
u4enik (2012-01-18 14:26:00) [24]Сергей М. ©, я наверное не понимаю, но если передавать строки:
procedure SetGetStringParam(editValue, val: String; optSave: Boolean);
то нужно передавать через var их,
SetGetStringParam(var: editValue, val: String; optSave: Boolean);
иначе непонятно куда присвоение будет..
а поле edit1.text через var не передать.. поэтому решил передавать указатели на строки и уже как-то присваивать строки по этим указателям.
Ega23 (2012-01-18 14:12:00) [25]
> хотелось бы свой вариант
Я вообще не понял, что за "свой вариант" и для чего там нужны указатели.
u4enik (2012-01-18 14:11:00) [26]спасибо Ega23 ©! грамотно делать я понимаю примерно как ))
у меня просто этих edit'ов многова-то.. хотелось бы свой вариант да и чисто понять очень хочется а то плаваю с этими указателями
Ega23 (2012-01-18 14:09:00) [27]
TForm1 = class (TForm)
Edit1: TEdit;
private
function GetStrParam: string;
procedure SetStrParam(Value: string);
public
property StrParam: string read GetStrParam write SetStrParam;
end;
function TForm1.GetStrParam: string;
begin
Result := Edit1.Text;
end;
procedure TForm1.SetStrParam(Value: string);
begin
Edit1.Text := Value;
end;
Сергей М. (2012-01-18 14:09:00) [28]И накой тут указатели ?
Прямое присвоение между переменной и св-вом Edit.Text чем не угодило ? Типы-то совпадают ..