Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отношения массива с Edit 
:(
    Опции темы
Миринда
Дата 3.11.2012, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Существует ли возможность присвоить  содержимому поля Edit  имя одномерного массива с тем смыслом, чтобы впоследствии можно было по этому имени вызвать содержимое этого Эдита ?
PM MAIL   Вверх
Чучмек
Дата 3.11.2012, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



как это должно выглядеть?


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Миринда
Дата 3.11.2012, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Вопрос, который мучает меня, никак не получается самой решить:
Как сделать, чтобы щелчком по кнопке "Обучение" введенное в Эдит8 название объекта соответствовало массиву "v" (массив формируется щелчками чекбоксов). 
Смысл этого - нужно чтобы это название объекта, было распознано в Эдит21, если ввести по одной цифре массива "v" в Эдиты с 13-го по 18-й и нажать на кнопку "Экспертиза".
Вот мой проект:

Это сообщение отредактировал(а) Миринда - 3.11.2012, 18:18

Присоединённый файл ( Кол-во скачиваний: 1 )
Присоединённый файл  Проект_20.rar 260,70 Kb
PM MAIL   Вверх
Чучмек
Дата 3.11.2012, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Тебе нужно сопоставить имя - массиву?


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Миринда
Дата 3.11.2012, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Ну вообщем, да
PM MAIL   Вверх
Чучмек
Дата 3.11.2012, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Попробуй вот это
Код

type
ppropstype=^tpropstype;
tpropstype=string;//!!! Это может быть любой тип какой тебе нужен

pNameRec=^tNameRec;
tNameRec=record
 name:string;
 props:tpropstype;
 end;



TNameList=class
 private
  mNameObj:array of tNameRec;
  fCount:integer;
  function GetObjInd(name: string):integer;
  function GetObjByName(name: string): ppropstype;
 public
  property count:integer read fCount;
  property objs[name:string]:ppropstype read GetObjByName; default;
  function GetObjName(ind:integer):string;
  property Names[ind:integer]:string read GetObjName;
  function Add(name:string):ppropstype;
  function Delete(name:string):boolean;
  constructor create;
 end;



{ TNameList }

function TNameList.Add(name: string): ppropstype;
begin
if GetObjInd(name)>=0 then  //если объект с таким именем уже существует
 begin
 Result:=nil;
 exit;
 end;
if Length(mNameObj)>=fCount then SetLength(mNameObj,Length(mNameObj)+32);
mNameObj[fCount].name:=name;
result:=@(mNameObj[fCount].props);
inc(fCount);
end;

constructor TNameList.create;
begin
fCount:=0;
end;

function TNameList.Delete(name:string):boolean;
var ind:integer;
begin
ind:=GetObjInd(name);
if ind>=0 then
 begin
 Dec(fCount);
 mNameObj[ind]:=mNameObj[fCount];
 Result:=true;
 end else Result:=false;
end;

function TNameList.GetObjByName(name: string): ppropstype;
var ind:integer;
begin
ind:=GetObjInd(name);
if ind>=0 then
  result:=@(mNameObj[ind].props) else
  result:=nil;
end;

function TNameList.GetObjInd(name: string): integer;
var i:integer;
begin
for i:=0 to fCount-1 do
 if 0 = AnsiCompareText(name,mNameObj[i].name) then break;     //AnsiCompareStr
if i<fCount then result:=i else result:=-1;
end;

function TNameList.GetObjName(ind: integer): string;
begin
if (ind<0) and (ind>=fCount) then result:='' else Result:=mNameObj[ind].name
end;



Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  nobjprim.7z 157,18 Kb


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Миринда
Дата 3.11.2012, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



Да уж. Программа интересна, но по-моему не для новичков. Я даже не знаю что значит это: p^
Но постараюсь разобраться в ней.
Думаю у меня будут вопросы. Пока что соображаю что спросить

PM MAIL   Вверх
Чучмек
Дата 3.11.2012, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Цитата(Миринда @  3.11.2012,  20:35 Найти цитируемый пост)
Я даже не знаю что значит это: p^

указатели
p это переменная, в которую сохраняется указатель(адрес в памяти) на данные объекта.
Например

1:
Код

var m:array[0..maxind]of type1;
function Get(ind:integer):type1;
begin
result:=m[ind];
end;
...
var
 v1:type1;
begin
 v1:=Get(1); //в v1 будет копия данных из m[1]

 
2:
Код

type
 pType1=^Type1
var m:array[0..maxind]of type1;
function Get(ind:integer):ptype1;
begin
result:=@(m[ind]);
end;
...
var
 p:ptype1;
 v1,v2:type1
begin
 p:=Get(1);//в p будет указатель на  m[1] 
 v1:=p^;//В v1 будут данные из m[1]
 p^:=v2;//В m[1] скопируються данные из v2
 
Первый пример скопирует данные из ячейки  массива
Второй вернет указатель на ячейку 


Это сообщение отредактировал(а) Чучмек - 3.11.2012, 21:38


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Миринда
Дата 6.11.2012, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 18.3.2012

Репутация: нет
Всего: нет



 Уважаемый, даже язык не поворачивается вас так назвать,Чучмек. Ваша программа несомненно интересна (почти курсовой проект!) и она мне очень помогла. Не скрою что мне очень трудно было понять ваш код без комментариев, но я свою работу практически сделала. Очень благодарна вам за помощь. Не смогла найти здесь на форуме кнопку, чтобы добавить вам веса в вашей репутации. Если знаете подскажите как, я это обязательно сделаю.

Это сообщение отредактировал(а) Миринда - 6.11.2012, 22:54
PM MAIL   Вверх
Данкинг
Дата 6.11.2012, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(Миринда @  6.11.2012,  23:53 Найти цитируемый пост)
Если знаете подскажите как, я это обязательно сделаю.

Я уже сделал. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Чучмек
Дата 17.11.2012, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Миринда, более сложный(правильный) пример интересует?


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0720 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.