Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Гостевая книга ... 65535
Содержание сайт... 65535
Вызов хранимых ... 65535
Эмулятор микроп... 65535
Бип из системно... 62661
Организация зап... 59834
Invision Power ... 59457
Приложение «Про... 58718
Оператор выбора... 57823
Модуль Forms 57740
Подключение Mic... 57082
Создание отчето... 57034
ТЕХНОЛОГИИ ДОСТ... 53320
Программируемая... 51134
Пример работы с... 49204
Имитационное мо... 48803
21 ошибка прогр... 43560
Реклама
Сейчас на сайте
Гостей: 16
На сайте нет зарегистрированных пользователей

Пользователей: 13,043
новичок: G_S_A
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование процесса обработки заданий на вычислительном центре на GP...
Моделирование работы ЭВМ на GPSS + Пояснительная записка
Обучающая и тестирующая программа по здаче экзамена ПДД на Turbo Pascal ...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании

Форма, демонстрирующая различные методы создания массива с динамически изменяемым размером.
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
{ Форма, демонстрирующая различные методы создания массива с }
{ динамически изменяемым размером. Разместите на форме четыре кнопки,}
{ компоненты ListBox и SpinEdit и создайте, как показано ниже, }
{ обработчики событий, возникающие при нажатии на кнопки. Button1, }
{ Button2 и Button3 демонстрируют вышеуказанных метода. Button4 }
{ очищает ListBox для следующего примера. }
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
unit Dynarry1;

interface

uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Spin;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
SpinEdit1: TSpinEdit;
ListBox1: TListBox;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

Type
pSomeType = ^SomeType;
SomeType = Integer;

procedure TForm1.Button1Click(Sender: TObject);
Type
pDynArray = ^tDynArray;
tDynArray = Array[1..1000] Of SomeType;
Var
DynArray : pDynArray;
I : Integer;
begin
{ Распределяем память }
GetMem (DynArray, SizeOf(SomeType) * SpinEdit1.Value);
{ Пишем данные в массив }
For I := 1 to SpinEdit1.Value Do
DynArray^[I] := I;
{ Читаем данные из массива }
For I := SpinEdit1.Value DownTo 1 Do
ListBox1.Items.Add('Элемент ' + IntToStr(DynArray^[I]));
{ Освобождаем память }
FreeMem(DynArray, SizeOf(SomeType) * SpinEdit1.Value);
end;

procedure TForm1.Button2Click(Sender: TObject);
Var
List : TList;
Item : pSomeType;
I : Integer;
begin
{ Создаем список }
List:=TList.Create;
{ Пишем данные для списка }
For I := 1 to SpinEdit1.Value do begin
{ Распределяем уникальный экземпляр данных }
New(Item); Item^:=I;
List.Add ( Item );
End;
{ Читаем данные из списка - базовый индекс списка 0, поэтому вычитаем из I единицу }
For I := SpinEdit1.Value DownTo 1 Do
ListBox1.Items.Add ( 'Элемент ' +
IntToStr(pSomeType(List.Items[I-1])^));
{ Освобождаем лист }
For I := 1 to SpinEdit1.Value Do
Dispose (List.Items[I-1]);
List.Free;
end;

procedure TForm1.Button3Click(Sender: TObject);
Var
Stream : TMemoryStream;
Item : SomeType;
I : Integer;
begin
{ Распределяем память потока }
Stream:=tMemoryStream.Create;
Stream.SetSize(SpinEdit1.Value);
{ Пишем данные в поток }
For I := 1 to SpinEdit1.Value Do
{ Stream.Write автоматически отслеживает позицию записи,
поэтому при записи данных за ней следить не нужно }
Stream.Write(I,SizeOf(SomeType));
{ Читаем данные из потока }
For I := SpinEdit1.Value DownTo 1 do begin
Stream.Seek((I-1)*SizeOf(SomeType),0);
Stream.Read(Item,SizeOf(SomeType));
ListBox1.Items.Add('Элемент '+IntToStr(Item));
End;
{ Освобождаем поток }
Stream.Free;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ListBox1.Items.Clear;
end;

end.




- Robert Wittig


--------------------------------------------------------------------------------

Все вопросы присылайте по адресу: delphi-ask@igp.org.ua
Все ответы присылайте по адресу: delphi-reply@igp.org.ua
Все подсказки присылайте по адресу: delphi-hint@igp.org.ua
--------------------------------------------------------------------------------
Со всем списком советов можно познакомиться по адресу: http://igp.org.ua/delphine/.
Опубликовал Kest October 29 2008 17:02:51 · 1 Комментариев · 9083 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
ZAV April 09 2010 20:23:01
PRIKOLISsmileysmileysmileysmileysmiley
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
База англоязычных...
Платформа програм...
Применение жадног...
DateEdit
Ранги для форума
Песочные часы
Добавление к ссы...
FreeSMS v1.3.1
Delphi. Разработк...
Сложный калькулятор
StartMark
EMS QuickExport S...
Java в примерах -...
Image Browser [Ис...
Игра "Астероиды" ...
Таймер и секундомер
ShadelLabel
Tag Игра "Пятнашк...
C++ Builder в за...
Последнее загруж...

Топ загрузок
Приложение Клие... 100333
Delphi 7 Enterp... 79858
Converter AMR<-... 20025
Borland C++Buil... 10823
GPSS World Stud... 9748
Borland Delphi ... 7849
Turbo Pascal fo... 6910
Visual Studio 2... 4926
Калькулятор [Ис... 4130
FreeSMS v1.3.1 3488
Случайные статьи
Б-деревья
Поиск в Гугле
Web-оптимизация (S...
Работа со списками...
Модуль Legacy
Службы
REALLOCATE (ПЕРЕРА...
Трансляция арифмет...
Создание приложения
5.4.3. Ввод программ
Кэш просмотра ката...
Неподвижная точка
Пирамидальная сорт...
информационно – сп...
Защита от несанкци...
Элементы управлени...
Если ГВСканал связ...
Листинг 9.8. Двоич...
Язык С: итераторы
Монтирование NFS
Средства обработки...
Зачем нужна MySQL
Динамика внедрения...
ВВОД, ВЫВОД СПИСКА...
Часть 2. Решение
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?