HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

[Delphi] Интересный момент.
  #1  
Старый 10.08.2009, 23:33
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами: 9980798

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию [Delphi] Интересный момент.

У меня идет подгрузка *.jpg изображений вот таким простым способом.

PHP код:
  Imbut_1.Picture.Graphic := nil;
  if 
FileExists(WayAp+'\GrapRes\ScA_001b.jpg'then
  Imbut_1
.Picture.LoadFromFile(WayAp+'\GrapRes\ScA_001b.jpg')
  else 
ShowMessage('Error File: '+WayAp+'\GrapRes\ScA_001b.jpg'); 
Imbut - просто TImage.
WayAp - просто Геткурент директории.

Но фокус в том что, если мы у файла уберем тип или поменяем на другой то Дельфин не понимает с каким форматом он работает))) то есть он пляшет от раширения файла, а не от его заголовка. Лезти в код и менять непосредственно там желания нету. Может быть есть какой то альтернативный способ загрузки файла с измененным расширением, ну допустим мы с jpg его поменяем на mov или вообще уберем!!!

Исходные коды приветствуются. За рабочий код не пожалею + плюсиков.
 
Ответить с цитированием

  #2  
Старый 11.08.2009, 00:04
flacs
Познающий
Регистрация: 28.01.2009
Сообщений: 90
С нами: 9096406

Репутация: 80
По умолчанию

есть конечно

uses jpeg;

// Imbut = Image1(TImage)


var
Img: TJpegImage;
begin
Img:=TJpegImage.Create;
Img.LoadFromFile('путь к файлу');
Image1.Picture.Assign(Img);
Img.Free;
end;

Последний раз редактировалось flacs; 11.08.2009 в 00:06..
 
Ответить с цитированием

  #3  
Старый 11.08.2009, 02:53
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами: 9980798

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Цитата:
// Imbut = Image1(TImage)
Да так более точно))))
flacs код конечно рабочий, но идет выделение памяти в дополнительную ветку))) Держите заслуженные +5))

У кого есть более элегантный вариант?
 
Ответить с цитированием

  #4  
Старый 11.08.2009, 04:59
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
С нами: 8817310

Репутация: 108
По умолчанию

Помоему лучше не придумать. Это самый оптимальный вариант.
 
Ответить с цитированием

  #5  
Старый 11.08.2009, 08:26
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

2 Flame of Soul Дай отгадаю. У тебя стоит BDS наверное. И ты наверное уже не помнишь (или еще незнаеш) что ранее такое не прокатывало т.е. в Delphi 7 LoadFromFile позволяет загружать тока bmp картинки. И для того чтобы работать с jpg то приходилось юзать модуль jpeg. А в последующих делфях это было изменено т.е. работа с этим модулем или его аналогом уже была встроен в сам класс TImage. Так что при использовании jpeg модуля ты особо ничего не потеряеш.
В D7 сразу можно увидеть поддерживаемые форматы
Код:
  Add('wmf', SVMetafiles, 0, TMetafile);
  Add('emf', SVEnhMetafiles, 0, TMetafile);
  Add('ico', SVIcons, 0, TIcon);
  Add('bmp', SVBitmaps, 0, TBitmap);
Если проследить события то
TPicture.Create -> GetFileFormats -> TFileFormatsList.Create -> заполнение сопоставления расширения и типа файла.
Эта инфа хранится в переменной FileFormats но она является локальной для Graphics.pas так что тебе или делать её глобальной и методами add / remove добавлять сопоставления или создать свой класс на основе TPicture где это будот встроенно
 
Ответить с цитированием

  #6  
Старый 11.08.2009, 12:59
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами: 9980798

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

slesh - я просто хочу посмотреть кто придумает самый экстровагантный способ, кто не заленится и напишет такое для данного решения, чтобы мурашки по коже пошли)))). Просто хотела найти таланты у которых есть свободное время, а тут таких уже и не видно(( а жаль.

Цитата:
или создать свой класс на основе TPicture где это будет встроенно
ну вот это уже более мение)))
 
Ответить с цитированием

  #7  
Старый 11.08.2009, 13:24
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
С нами: 10943066

Репутация: 1236


По умолчанию

можно деассембнуть компонент и пофиксить ручками, жаль у меня его нет - я б сделал
 
Ответить с цитированием

  #8  
Старый 11.08.2009, 13:29
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
С нами: 10139366

Репутация: 1502


По умолчанию

файлик переименовать?
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 
Ответить с цитированием

  #9  
Старый 11.08.2009, 14:45
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
С нами: 9980798

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Цитата:
файлик переименовать?
шикарный способ, правда))) такой вариант первый пока!
 
Ответить с цитированием

  #10  
Старый 12.08.2009, 12:08
flacs
Познающий
Регистрация: 28.01.2009
Сообщений: 90
С нами: 9096406

Репутация: 80
По умолчанию

ТС тему надо переименовать в "Алло! Мы ищем таланты!"

P.S: А конкретно неординарных личностей, имеющих гениальные решения.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...