Форум Magic Team


 

Новости:

01.01.2017: Релиз испанской версии Naruto - Ninja Council (GBA)
02.12.2016: Добавлена документация по Kruptar 7
09.10.2015: Обновление перевода игры Battletoads (NES) [версия 1.3]
22.01.2015: Kruptar Open Source
18.10.2014: Релиз обновлённой русской версии Castlevania - Dawn of Sorrow (GBA) от Owls Group
01.05.2014: Релиз русской версии Taiyou no Yuusha Firebird (NES)
24.06.2012: Добавлена доработанная документация и инструкция
26.05.2012: Обновление ORITON [версия 2.050]
11.05.2012: Обновление ORITON [версия 2.048]
11.03.2012: Обновление Kruptar 7 [версия 7.1.1.17]
29.01.2012: Обновление LZ77Restructor 2 [версия 1.02]
01.01.2012: Релиз русской версии Drill Dozer (GBA)

Подробнее на страничке новостей.
Ознакомьтесь с правилами нашего форума.


  • Форум
  • Поиск
  • Вход
  • Регистрация

  • Форум Magic Team »
  • Разное »
  • Программирование »
  • Помощь по Delphi
« предыдущая тема следующая тема »
  • Печать
Страницы: 1 2 3 [4]   Вниз

Автор Тема: Помощь по Delphi  (Прочитано 119901 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #75 : 27 Декабря 2009, 13:31:04 »
А в чем жесть то?
из-за обширной таблици?
Или что?

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Re: Помощь по Delphi
« Ответ #76 : 27 Декабря 2009, 14:09:45 »
из-за 5 секунд на 3 строки

tbl[hextoint(copy(form1.memo1.lines.strings,1,4))]:=copy(form1.memo1.lines.strings,6,length(form1.memo1.lines.strings)-6);

form1.memo1.lines.strings загрузи в одну переменную хотя бы, а не вызывай тысячу раз кучу повторного кода.

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #77 : 27 Декабря 2009, 14:14:17 »
ТАблица в 169 кб выдирается за 1 минуту.
А тут 6 кб текста тоже за одну минуту=)
а в чем проблема, не знаешь?

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #78 : 27 Декабря 2009, 15:46:30 »
Усё, скорость 2 раза быстрея *NЕ_HOCHU*

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #79 : 11 Февраля 2010, 10:30:12 »
а есть команда на делфи, типо ASL, сдвиг влево, вправо?
чтобы был переход 01111111 =>11111110=>11111101 и т.д.
а то бесит всевремя писать inttobin(..,..), и как бы вручную перетаскивать=(

Оффлайн Oraculum

  • Magic Team
  • Сообщений: 534
  • Репутация: +11/-4
  • oraculum[гав-гав]ro.ru
    • Просмотр профиля
Re: Помощь по Delphi
« Ответ #80 : 11 Февраля 2010, 13:09:51 »
Цитата: gegmopo3 от 11 Февраля 2010, 10:30:12
01111111 =>11111110=>11111101
Ты сначала показал пример ASL, а потом уже почему-то ROL. Правильный пример ASL:
001111111 =>
011111110 =>
111111100
Аналог ASL на языке Delphi - SHL.

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #81 : 11 Февраля 2010, 14:02:42 »
Видишь ли, есть сдвиги с дублированием последнего бита. А снес ASL - который я указал. Переменная же разной бывает=)
Спасибо :)

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #82 : 11 Февраля 2010, 14:10:55 »
т.е. последний бит переходит в начало

Оффлайн Oraculum

  • Magic Team
  • Сообщений: 534
  • Репутация: +11/-4
  • oraculum[гав-гав]ro.ru
    • Просмотр профиля
Re: Помощь по Delphi
« Ответ #83 : 11 Февраля 2010, 14:22:03 »
Цитата: gegmopo3 от 11 Февраля 2010, 14:02:42
Видишь ли, есть сдвиги с дублированием последнего бита. А снес ASL - который я указал. Переменная же разной бывает=)
Спасибо :)
Цитата: gegmopo3 от 11 Февраля 2010, 14:10:55
т.е. последний бит переходит в начало
Это уже повороты, а не сдвиги.  :)

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #84 : 11 Февраля 2010, 14:24:13 »
но сдвиг то идет на одну, а последний байт тупо переходит в начало, короче запущенная система там=)
Сапсибо, но придеться опять своим методом делать  LOL

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Re: Помощь по Delphi
« Ответ #85 : 12 Февраля 2010, 09:19:15 »
Цитата: gegmopo3 от 11 Февраля 2010, 14:24:13
но сдвиг то идет на одну, а последний байт тупо переходит в начало, короче запущенная система там=)
Сапсибо, но придеться опять своим методом делать  LOL
Ты говоришь про ROL, а не про ASL.
В делфи реализуется сдвигом с условием с помощью AND.

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #86 : 12 Февраля 2010, 09:34:42 »
нее, ASL, тебе исходники может еще кинуть=))))

Оффлайн gegmopo3

  • Андроид
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • http://gegmopo3-mopoz.blogspot.com/
Re: Помощь по Delphi
« Ответ #87 : 12 Февраля 2010, 11:57:37 »
все! Вы правы были, просто сначало ASL шло, а после ROL, не угледел я=)
Еще же думал что-то не то, никогда такого не было=) [***] я затиупил вообще=)))))))

Оффлайн dnd1

  • Новичок
  • Сообщений: 4
  • Репутация: +0/-0
    • Просмотр профиля
    • reWiision
Re: Помощь по Delphi
« Ответ #88 : 25 Сентября 2010, 21:54:50 »
Скромный вопросик: можно ли каким-то более красивым способом реализовать запись Integer(4 байта) в файл в порядке BigEndian? (Запись через поток TFileStream)
Swap меняет местами 2 первых байта и 2 последних
а кусок кода
Код: delphi [Выделить]

       i:= sec.Size;
       s:=IntToHex(i, 8);
       i:=StrToInt('$' + Copy(s,7,2) + Copy(s,5,2) + Copy(s,3,2) + Copy(s,1,2));

считаю не такой уж и грамотной реализацией :(

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Re: Помощь по Delphi
« Ответ #89 : 26 Сентября 2010, 06:09:58 »
Код: delphi [Выделить]
function SwapInt(Value: Integer): Integer;
asm
 bswap eax
end;

//...............
var X: Integer; Stream: TFileStream;
//...........
X := SwapInt(X);
Stream.WriteBuffer(X, 4);


Но есть и простые арифметические методы, чего извращаться с переводом в string и обратно? :)
Например:
Код: delphi [Выделить]

 X := X shr 24 + (( X shr 16) and $FF) shl 8 + (( X shr 8 ) and $FF) shl 16 + X shl 24;

Оффлайн dnd1

  • Новичок
  • Сообщений: 4
  • Репутация: +0/-0
    • Просмотр профиля
    • reWiision
Re: Помощь по Delphi
« Ответ #90 : 26 Сентября 2010, 21:47:55 »
Джинни, спасибо . Всегда думал, что нужно выучить ассемблер, и вот тому еще одно доказательство.
Цитата: Джинни от 26 Сентября 2010, 11:09:58
чего извращаться с переводом в string и обратно?
Просто никогда езще не работал со сдвигами, так что как умел, так и попытался реализовать. :)

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Помощь по Delphi
« Ответ #91 : 09 Декабря 2010, 11:02:26 »
Нашёл интересный компонент: TPNGImage, возможно, кому-нить пригодится :)
http://delphidevelop.ru/publ/12-1-0-174

Добавлено позже:
Что-то не могу сообразить, как конвертнуть Cardinal (или массив из 4-х байтов) в TColor притом чтобы альфу не перекосило.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь по Delphi
« Ответ #92 : 09 Декабря 2010, 11:56:47 »
Цитата: TrickZter от 09 Декабря 2010, 11:02:26
Что-то не могу сообразить, как конвертнуть Cardinal (или массив из 4-х байтов) в TColor притом чтобы альфу не перекосило.
Хох, а зачем тебе это? TColor вроде бы альфу не поддерживает. Есть специальные классы для работы с изображениями с альфой.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Помощь по Delphi
« Ответ #93 : 09 Декабря 2010, 12:10:49 »
Мне нужно конвертить 32-битные Hip'ы в какой-нибудь привычный 32-битный формат и обратно. 24-битный формат не катит, так как я теряю при конвертации 8 бит информации о цвете (альфа-канале). Вот думаю, как это реализовать.

Оффлайн Джинни

  • Администратор
  • Сообщений: 1339
  • Репутация: +666/-0
  • Metamorphosis
    • Просмотр профиля
    • Magic Team
Помощь по Delphi
« Ответ #94 : 09 Декабря 2010, 12:53:11 »
Я же говорю, есть классы. TDIB32 например какой-нибудь, если я правильно помню название.

Цитата: TrickZter от 09 Декабря 2010, 20:10:49
Мне нужно конвертить 32-битные Hip'ы в какой-нибудь привычный 32-битный формат и обратно. 24-битный формат не катит, так как я теряю при конвертации 8 бит информации о цвете (альфа-канале). Вот думаю, как это реализовать.
Имелось в виду, зачем тебе именно в TColor конвертировать, ведь он альфу не поддерживает. :)

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Помощь по Delphi
« Ответ #95 : 09 Декабря 2010, 13:02:24 »
Хотел без особых плясок с бубном сразу отрисовывать картинку на канве TImage :)
Но я тут побаловался чуток с буржуйской прогой (Hipster), оказалось, что в img.pac она корректно конвертит и инсертит пныги. Остальное собрал своим RePACer'ом и игрушка нормально заработала. В общем, мне меньше работы :) Хотя, как-нибудь надо будет попробовать свой конвертер с альфой написать.

Оффлайн JurasskPark

  • Администратор
  • Сообщений: 1308
  • Репутация: +37/-666
    • Просмотр профиля
    • JurasskPark
Помощь по Delphi
« Ответ #96 : 03 Марта 2013, 08:48:09 »
TrickZter, а такой компонент не подойдёт???  :'(
http://www.alphaskins.com/index_rus.php
Цитировать (выделенное)
Для жителей стран СНГ все компоненты являются бесплатными (независимо от того - коммерческий проект или нет). Платой за пользование могут быть Ваши критические замечания, советы, сообщения об ошибках и т.д.

Пароль для распаковки - слово "сканирование", набранное маленькими русскими буквами в английской раскладке.

Оффлайн TrickZter

  • Magic Team
  • Сообщений: 1324
  • Репутация: +15/-5
  • The cake is a lie.
    • Просмотр профиля
Помощь по Delphi
« Ответ #97 : 03 Марта 2013, 10:24:20 »
Цитата: JurasskPark от 03 Марта 2013, 08:48:09
TrickZter, а такой компонент не подойдёт???  :'(
Не знаю, может быть вообще без скрытия сделаю.

  • Печать
Страницы: 1 2 3 [4]   Вверх
« предыдущая тема следующая тема »
  • Форум Magic Team »
  • Разное »
  • Программирование »
  • Помощь по Delphi
 

  • SMF 2.0.12 | SMF © 2011, Simple Machines
  • XHTML
  • RSS
  • Мобильная версия

  • GreenUP by Neekiinh0.

Размер занимаемой памяти: 2.25 мегабайта.
Страница сгенерирована за 0.06 секунд. Запросов: 68.