Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите разобраться с указателями


Страницы:   1 2

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 чем не угодило ? Типы-то совпадают ..


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо