Свързването на редове и компонент

Делфи. Компоненти и класове. елементи

Свързването на редове и компонент

Възможно е да се връзвам на низ, всеки компонент?

Тъй като Tag Имотът е от тип longint, можете да го отведе до собственост на показалеца или PChar. Така че, можете да съхранявате указател към запис с помощта на Tag имота.

Забележка: Не може да спаси такъв начин линия, указател, или нещо друго, в режим на развитие. Това можете да направите само по време на изпълнение. Обърнете внимание на следния пример:

Тук ние организираме цикъл и обикалят всички компоненти във формуляра. Ако един компонент - TEdit, присвояваме указател към низ Tag собственост. функция NewStr връща PString (указател към низ). Pointer, най-вече идентичен тип longint, или дори "по-добре", т.е. Той е в памет на един и същ брой байтове. Следователно, можете да направите един глас, за да напишете LongInt NewStr върна стойност и след това да го запазите в имот Tag TEdit компонент. Имайте предвид, че това може да е указател към целия запис. Сега ние използваме тази стойност:

Ето ме отново, "работи" за всички компоненти и работи само с TEdits. По това време, аз се извлече от стойността на имота Tag на компонента и го поведе към PString тип (указател към низ, указател към низ), и да я задавате стойността на Текст компонент имот TEdit. Естествено, в този случай трябва да се използва символ ключ (^). След това да се отърва от низа съхранява в TEdit компонент. Важна забележка: ако запишете нещо в маркера на имот TEdit като показалка, вие сте отговорни за освобождаването на съдържанието му.

За ваша информация: защото Delphi обекти наистина са указатели към класа случаи, можете да съхранявате обекти в Tag имота. Може би си спомняте, че това е необходимо да се обадите на метод безплатен.

Бързам да ви предложим три метода, които ви позволяват да използвате Tag за линии за достъп за предаване на различните приложения.

  1. Ако линията ви никога няма да се промени, можете да създадете низ ресурс в работилницата на ресурсите (или еквивалент) и да използвате маркер като индекс за маса от низове.
  2. Използвайте TIniFile, да създадете точка за вашите струни и възлага всяка линия на име и номер, т.е. Вашата INI-файл трябва да има раздел, като например това: След това можете да се обърнете към тях, както следва:

  • Сложете струни си във файл, придружаващ всеки нов ред. След това можете да ги прочетете в TStringList. Тогава си Tag'i стават индекси в тази StringList:

    И трите метода работят в Делфи, сложи ми, мисля, че това е най-простото решение.