![]() |
eXeL@B —› Программирование —› указатели в DElphi - HELP plz |
Посл.ответ | Сообщение |
|
Создано: 22 июня 2007 02:00 · Личное сообщение · #1 приветствую всех. у меня возникла проблема с использованием указателей, хотя раньше таковых не было. вот в чём моя проблема: у меня есть несколько пременных в гл форме типа : compnts=record table_file:string; used:byte; labs:array[1..255]of TLabeledEdit; flds:array[1..255]of string; end; а дальше один укзатель на этот тип (x:^compnts) так вот я делаю так ... x:=@пременной_типа_compnts (тоесть имею доступ к данным неизвестной пременной_типа_compnts) иду на другую форму оттуда вызываю процедуру из гл. формы возвращаюсь на гл. форму (должен работать с X^), а данные уже потеряны (всмысле из X^) ... помогиет пожалуйста ![]() |
|
Создано: 22 июня 2007 02:09 · Личное сообщение · #2 |
|
Создано: 22 июня 2007 02:14 · Личное сообщение · #3 |
|
Создано: 22 июня 2007 02:18 · Личное сообщение · #4 |
|
Создано: 22 июня 2007 09:45 · Личное сообщение · #5 Program Test; Uses Windows, ExtCtrls; Type compnts=record table_file:string; used:byte; labs:array[1..255]of TLabeledEdit; flds:array[1..255]of string; end; Var X:^compnts; Z: compnts; Begin Z.table_file:='Test !!!'; X:=@Z; MessageBox(0,PChar(X.table_file),'',0); End. Так всё работает. Обьясни толком как у тебя. NicknamES пишет: x:=@пременной_типа_compnts как объявлена пременной_типа_compnts ? так как в примере выше, или ты её динамически создаешь ? ![]() |
|
Создано: 22 июня 2007 10:14 · Личное сообщение · #6 NicknamES пишет: по-моему нет смысла код приводить. есть есть, код приведешь и сразу все ясно станет. Какую процедуру вызываешь из второй формы? Всмысле она работает с этим указателем или что? Если ты создаешь компонент(выделяешь под него память), а указатель просто используешь, как указатель на него, то ничего само собой не потеряется ИМХО. Значит где-то косяк.. ----- radio uno in ibisa ... ![]() |
|
Создано: 22 июня 2007 10:52 · Личное сообщение · #7 SergX, примерно то что ты написал я и имел ввиду, точнее я предпологал идеентичное, только указатель висит в памяти пока я на другой форме. Смысл моей проблемы: У меня есть n таблиц (у каждой есть структура compnts которая уже заполнена) и по ним производиться фильтрация с помощью одного окна, на котором в нужный момент создаётся указатель (new(x)) рисуются TLabeledEdit и указателю присваивается адрес структуры одной из таблиц(одной из перременных типа compnts) . Так вот после прорисовки я вызываю show формы , а там пару кнопок и при нажатии на них они вызывают процедуры из гл. юнита, но форму не закрывают, а по закрытии формы я делаю destroy N число TlabeledEdit и пытаюсь удалить указатель dispose(x). С указателем работаю так : x^.used и т.д. вот если надо кину и код, но помогите пожалуйста!!!!!!!!!!!!!!!!!!!!!!!!!!! и ещё SergX почему в своём примере ты обращался к указателю x.used а не x^.used ![]() |
|
Создано: 22 июня 2007 10:53 · Личное сообщение · #8 |
|
Создано: 22 июня 2007 10:59 · Личное сообщение · #9 |
|
Создано: 22 июня 2007 10:59 · Личное сообщение · #10 |
|
Создано: 22 июня 2007 11:33 · Личное сообщение · #11 |
|
Создано: 22 июня 2007 13:08 · Личное сообщение · #12 |
|
Создано: 22 июня 2007 15:23 · Личное сообщение · #13 |
|
Создано: 22 июня 2007 16:14 · Личное сообщение · #14 |
![]() |
eXeL@B —› Программирование —› указатели в DElphi - HELP plz |
Эта тема закрыта. Ответы больше не принимаются. |