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

Вниз

Функция и 2 массива.   Найти похожие ветки 

 
Mu   (2011-08-28 22:22) [0]

Есть массив (в моем случае это Tbitmap, хоть я пробовал и с обыкновенным это ничего меняет). И есть функция в которую я передаю этот массив. На выходе из функции я также хочу получить такой же массив, но уже преобразованный.

Менять исходный массив нельзя (тогда преобразование пройдет неверно), поэтому в функции создается еще 1 такой же пустой и в него записывается первый преобразованный массив. И вот его и нужно вернуть в основную программу.

Но  никак у меня это не выходит и найти как правильно это делать не смог.

Хотелось бы увидеть пример такого кода. Ну то есть, как из функции вернуть массив..


 
Игорь Шевченко ©   (2011-08-28 22:32) [1]

procedure foo (sourcearray: arraytype; var destarray: arraytype)

?


 
Омлет ©   (2011-08-28 23:23) [2]

Tbitmap - это не массив, а объект.
Опишите изначальную задачу.


 
анонимус   (2011-08-28 23:46) [3]

описываю

Есть процедура или функция, вообщем мне от нее нужно чтобы она вернула мне другой битмап, сделанный из первого.

procedure greenBorders(tBmp:Tbitmap; var bmpdest:TBitmap);

Это процедура, я ее даж сделал как в примере выше - не помогло.

Суть проблеммы в том, что когда я делаю в конце этой процедуры так:

bmpdest.SavetoFile("E:\test2.bmp");

У меня на диск сохраняется то что я хочу. А когда я в исходном модуле после вызова процедуры так пишу, у меня сохраняется пустой битмап, т.е. внутри вообще вообще пусто:

procedure greenBorders(tBmp:Tbitmap; var bmpdest:TBitmap);
bmpdest.SaveToFile("E:\test33.bmp");


Если сделать так

function greenBorders(tBmp:Tbitmap):TBitmap

то результат будет аналогичный. На самом деле первый раз я с этим столкнулся когда пытался вернуть просто массив - результат был такой же.


 
Германн ©   (2011-08-29 00:13) [4]


> procedure greenBorders(tBmp:Tbitmap; var bmpdest:TBitmap);
>
>
> Это процедура, я ее даж сделал как в примере выше - не помогло.
>
>

А "выше" примера нет.
И вообще нет нигде никакого примера! Только "умные слова".
Где, к примеру,  код создания bmpdest?


 
Игорь Шевченко ©   (2011-08-29 00:28) [5]


> Есть процедура или функция, вообщем мне от нее нужно чтобы
> она вернула мне другой битмап, сделанный из первого.


SourceBitmap.SaveToStream (Stream, ...)
Stream.Position := 0;
Result := TBitmap.Create;
Result.LoadFromStream(Stream...)

будет копия


 
анонимус   (2011-08-29 03:28) [6]


> А "выше" примера нет.
> И вообще нет нигде никакого примера! Только "умные слова".
>
> Где, к примеру,  код создания bmpdest?


пример в посте Игоря Шевченко[1]

Какой смысл выкладывать полный код? вопрос вроде задан ясно.

  bmpdest := TBitmap.Create;
   bmpdest.Width:= 1050;
   bmpdest.Height:=800;
   bmpdest.PixelFormat := pf24bit;


вот к примеру код создания bmpdest.  но как я уже сказал перед окончанием процедуры картинка диск сохраняется отлично, а по выходу ее нет....


 
анонимус   (2011-08-29 03:30) [7]


> SourceBitmap.SaveToStream (Stream, ...)
> Stream.Position := 0;
> Result := TBitmap.Create;
> Result.LoadFromStream(Stream...)
>
> будет копия


ну да, я так и делал, только я на диск сохранял и загружал после процедуры. Я надеялся есть человеческий способ )


 
анонимус   (2011-08-29 03:51) [8]

Вопрос снимается, нашел косяк) работают все способы )



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

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

Наверх




Память: 0.46 MB
Время: 0.005 c
2-1314473437
Gu
2011-08-27 23:30
2011.12.11
данные в ресурсах


6-1246793442
__Алексей__
2009-07-05 15:30
2011.12.11
впорос по SNMP v3


15-1313681077
SQLEXPRESS
2011-08-18 19:24
2011.12.11
как админить бд mssql при режиме 24/7


2-1314601549
alexdn
2011-08-29 11:05
2011.12.11
Tms меню компонент


2-1314272162
И. Павел
2011-08-25 15:36
2011.12.11
Deadlock при запросе на выборку в программе без явных блокировок





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский