Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Компоненты и классы
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.02.2011, 21:53
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию Скопировать данные из переменной типа Record в другую

Доброго времени суток!

Вопрос: можно ли как-нибудь скопировать данные из переменной типа Record в переменную такого же типа, чтобы не копировать все поля по отдельности? Есть ли какие-нибудь быстрые методы копирования? А то не хочется мне копировать более 40 полей...

Заранее спасибо!
Ответить с цитированием
  #2  
Старый 05.02.2011, 21:57
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

TPrimer=record
v1:integer;
v2:string;
..........
v100:variant;
end;

..........................................
p1,p2:TPrimer

вот собственно копирование
p1:=p2

Последний раз редактировалось Pilot_Red, 05.02.2011 в 22:09.
Ответить с цитированием
  #3  
Старый 05.02.2011, 22:09
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

CopyMemory
http://msdn.microsoft.com/en-us/libr...35(VS.85).aspx
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 05.02.2011, 22:13
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Цитата:
Сообщение от Pilot_Red
TPrimer=record
v1:integer;
v2:string;
..........
v100:variant;
end;

..........................................
p1,p2:TPrimer

вот собственно копирование
p1:=p2

А данный пример копирует содержимое или адрес это переменной??? Мне надо именно содержимое.
Ответить с цитированием
  #5  
Старый 05.02.2011, 22:15
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Содержимое!

Это обычная переменная(подумаешь тип рекорд) и как с обычной переменной делаешь обычное присваивание
Ответить с цитированием
  #6  
Старый 06.02.2011, 13:28
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Спасибо! Вот у меня еще вопрос:

Код:
type
  TUserData = record
    UserName: String;
    ID: Integer;
    { ... }
  end;

  TQueryData = record
    Primary: Cardinal;
    { ... }
  end;

  TQueryRecord = record
    { ... }
    UserData: TUserData;
    QueryData: TQueryData;
  end;

{ .......................... }

procedure Set;
var
  A: TQueryRecord;
begin
  A.<переменная> := ''; // <- Это проходит
  A.UserData.<переменная> := ''; // <- Вот здесь выскакивает ошибка "[DCC Error] E2064 Left side cannot be assigned to"
  A.QueryData.<переменная> := ''; // <- Вот здесь выскакивает ошибка "[DCC Error] E2064 Left side cannot be assigned to"
end;

Как можно реализовать запись в переменную типа Record внутри другого Record'а?
Ответить с цитированием
  #7  
Старый 06.02.2011, 14:06
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Всем спасибо. Проблема была решена. Я значение присваивал константе!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025