Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Вниз

array   Найти похожие ветки 

 
MECHANIC   (2003-01-19 15:37) [0]

И вопрос, соответственно, такой: для чего нужно такое описание и с чем его едят.

tagEXTLOGPEN = packed record
elpPenStyle: DWORD;
elpWidth: DWORD;
elpBrushStyle: UINT;
elpColor: COLORREF;
elpHatch: Longint;
elpNumEntries: DWORD;
elpStyleEntry: array[0..0] of DWORD;
end;


 
asmith   (2003-01-19 17:30) [1]

array[0..0] of DWORD используется для описания массива переменной длины. В данном случае это описание стиля пера: первый элемент массива дает длину первого штриха, второй - длину первого зазора и так далее.


 
MECHANIC   (2003-01-19 22:25) [2]

Спасибо, asmith, но как присвоить какое-то значение хотя бы второму элементу массива - elpStyleEntry[1]?


 
MECHANIC   (2003-01-19 22:51) [3]

Однако, разница между динамическим массивом, массивом переменной длины и массивом.. почему-то от меня ускользает.
Есть ли разница в представлении этих типов в памяти?

1) array[0..0] of DWORD"!
2) array[0..1] of DWORD
3) array of DWORD

1"!) Этому массиву невозможно присвоить [1], невозможно присвоить значения другого массива фиксировнной длины (array[0..1] of DWORD), невозможно указать на него через пойнтер, что с ним вообще можно делать?! Что за массив такой..


 
Alex Konshin   (2003-01-20 01:47) [4]

???
Какие проблемы-то?

type PDWORD = ^DWORD;
var p :PDWORD;
p := @tag.eplStyleEntry;



{$RANGECHECKS OFF}
var i : Integer;
a : Array [0..0] of Integer;

i := 1;
a[i] := 1;

3) Array of DWORD - это динамический массив. По поведению и представлению в памяти похож на тип String. Читай Help, там описана разница.

Я вот, например, недоволен, что в Delphi нельзя написать
Array [0..-1] of DWORD, т.е. нельзя определить массив без элементов (кстати, может, все-таки как-то можно?). Иногда очень надо...


 
Дмитрий Баранов   (2003-01-20 10:12) [5]


Приведен кусок переведенного кода с С, где разницы между массивом и указателем нет, но Object Pascal позволяет имитировать такое поведение с помощью установки указателя на первый элемент массива и последующим жонглированием с адресами (увеличил адрес, разадресовал - получил следующий элемент), или, действительно, манипуляциями с опциями компилятора :)


 
MECHANIC   (2003-01-20 16:29) [6]

Спасибо всем за участие.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-96926
DDF
2002-12-06 07:04
2003.01.30
Могу ли я доверять FTP протоколу?


3-96610
YurikV
2003-01-13 15:40
2003.01.30
MSSQL, SQL SERVER


3-96535
lutikh
2003-01-10 22:22
2003.01.30
Кнопка НАЙТИ ДАЛЕЕ в TFindDialog


6-96939
LORD
2002-11-28 22:04
2003.01.30
сервер для компонента NMSTRM.


1-96824
Mr.X
2003-01-20 20:20
2003.01.30
Поиск текста в файлах





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский