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

Delphi Sources



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

Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.02.2015, 14:13
Аватар для seeman_tm
seeman_tm seeman_tm вне форума
Новичок
 
Регистрация: 03.02.2011
Сообщения: 79
Репутация: -2306
По умолчанию Передача массива в функцию

Всем привет. Не уверен, но всё же надеюсь что вы сможете мне в этом помочь.

Вот сам код:
PHP код:
program Project5;

{
$APPTYPE CONSOLE}

uses
  SysUtils
;

type ArrayOfByte = Array Of Byte;

Function 
math1(Const a: Array Of Byte): Integer;
Var 
IndexInteger;
  
Begin
    Result 
:= 0;
    for 
Index := Low(ato high(a) do
        
Inc(Resulta[Index]);
  
End;

Function 
math2(Const aArrayOfByte): Integer;
Var 
IndexInteger;
  
Begin
    Result 
:= 0;
    for 
Index := Low(ato high(a) do
        
Inc(Resulta[Index]);
  
End;


begin
  Writeln
('Math1: '+IntToStr(Math1([1,2,3,4,5,6,7,8,9])));
//  Writeln('Math2: '+IntToStr(Math2([1,2,3,4,5,6,7,8,9])));
  
sleep(5000);
end

Подскажите, что нужно для того, чтоб функцию Math2 можно было бы вызвать как Math1 и возможно ли вообще что то реализовать подобное ?
  #2  
Старый 11.02.2015, 15:03
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Есть волшебное слово overload...
  #3  
Старый 11.02.2015, 16:24
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Похоже простого способа превратить открытый массив в ArrayOfByte нету.
(Наоборот можно).
Когда в процедуре параметр-открытый массив, то в неё передаются пара параметров - адрес первого элемента и размер массива.
А параметр типа ArrayOfByte - то подразумевается, что в процедуру передаётся адрес первого элемента массива, но сам массив организован таким образом, что перед первым элементом находятся еще две ячейки - длина и количество ссылок на массив. В случае открытого массива этих ячеек нету
Этот пользователь сказал Спасибо icWasya за это полезное сообщение:
seeman_tm (11.02.2015)
  #4  
Старый 11.02.2015, 18:23
Аватар для 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
Репутация: выкл
По умолчанию

Цитата:
Сообщение от seeman_tm
А поподробней ? Пример использования как выглядеть будет ?
Иди на в гугл!
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
  #5  
Старый 11.02.2015, 19:20
Аватар для Admin
Admin Admin вне форума
Администратор
 
Регистрация: 03.10.2005
Адрес: Россия, Москва
Сообщения: 1,553
Версия Delphi: Delphi 7
Репутация: выкл
По умолчанию

Цитата:
Сообщение от seeman_tm
Всем привет. Не уверен, но всё же надеюсь что вы сможете мне в этом помочь.

Вот сам код:
Админ: для оформления кода Delphi существует специальный тег СODE. Пора бы и запомнить. Бан на 5 дней
Закрытая тема


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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