Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2009, 10:07   #21
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

вот что я имел ввиду:

Код:
for i:= 1 to 7 do
begin
  TImage(Components[i]).Picture.LoadFromFile('.........');
end;
Но как узнать какой индекс у каждой картинки?

И ещё вопрос, как реализовать всё то, что сказал mihali4?

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Картинки сохраняются каждая в свой файл.
А вот их координаты и размеры, а также пути/имена файлов с изображениями для восстановления при запуске программы сохраняют в ини-файле.
При новом запуске программы эти значения считываются, создается нужное количество TImage-й, они образмериваются и расставляются в соответствии со считанными значениями и уже потом в цикле можно считывать собственно изображения из файлов.
Только нужно добавить проверку:
Код:
if Components[i] is TImage then
Вот у меня есть процедура для создания, выбора картинки и сохранения её в файл:

Код:
procedure TfrmMain.imgNewClick(Sender: TObject);
begin
  MyImage:=TImage.Create(Owner);
  MyImage.Parent:=self;
  MyImage.Height:=64;
  MyImage.Width:=64;
  MyImage.Left:=100;
  MyImage.Top:=100;
  MyImage.Stretch:=true;
  MyImage.Visible:=true;
  MyImage.DragKind:=dkDock;
  MyImage.DragMode:=dmAutomatic;
  MyImage.PopupMenu:=PopupMenu1;
  MyImage.Name:='MyImage'+IntToStr(MyGlobVar);
  MyGlobVar:=MyGlobVar+1;
  if OpenPictureDialog.Execute  then MyImage.Picture.LoadFromFile(OpenPictureDialog.FileName);
  MyImage.Picture.SaveToFile('MyImage'+IntToStr(MyGlobVar)+'.jpg');
end;
Как сделать чтобы создаваемая картинка создавалась на 20 пикселей правее предыдущей?
И как сохранять в ини файл всё то, о чём говорил mihali4?
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли

Последний раз редактировалось Marsel737; 13.12.2009 в 13:05.
Marsel737 вне форума Ответить с цитированием
Старый 14.12.2009, 18:24   #22
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

Реанимация темы...

Ещё раз повторю вопрос, как сделать так, ятоб новая картинка создавалась на 20 пикселей левее предыдущей, если при создании картинки она именуется как

Код:
MyImage.Name:='MyImage'+IntToStr(MyGlobVar);
естественно

Код:
  MyImage.Left:=100;
  MyImage.Top:=100;
придётся убрать.

И самый главный вопрос по теме, допустим я сохраняю картинку в каталог с программой вот таким образом:

Код:
MyImage.Picture.SaveToFile('MyImage'+IntToStr(MyGlobVar)+'.jpg');
Как теперь её загружать и позиционировать?

пс Знаю правило - одна тема - один вопрос, но у меня и так один общирный вопрос: как сохранять динамически созданные объекты
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 14.12.2009, 21:57   #23
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

я вам вроде предлагал неплохое решения:

Цитата:
Сообщение от DarkEvil
Код:
type
  im_data = packed record
    Height : Integer;
    Width : Integer;
    Left : Integer;
    Top : Integer;
    FileName : String[255];
  end;

.....

var
 imgdat: File of im_data;
зделайте такого типа запись и сохраняйте в ней все розмеры\позиции имейджа, а также полное имя файла, а потом в цикле просто подгрузите все
а здесь класс для работы с файлом через стрим, есть функции чтения записи...
http://programmersforum.ru/showpost....8&postcount=27
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!

Последний раз редактировалось DarkEvil; 14.12.2009 в 22:06.
DarkEvil вне форума Ответить с цитированием
Старый 15.12.2009, 08:38   #24
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

DarkEvil, я помню что вы мне это предлагали, я просто не очень понимаю как с этой записью работать, может поподробнее объясните?
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 15.12.2009, 14:01   #25
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

http://www.programmersforum.ru/showt...light=inifiles
mihali4 вне форума Ответить с цитированием
Старый 15.12.2009, 14:24   #26
DarkEvil
Форумчанин
 
Аватар для DarkEvil
 
Регистрация: 08.05.2009
Сообщений: 247
По умолчанию

смотрите :
Код:
var
 imgdat: im_data;
 imStream : TRecordStream;
begin
 imgdat.width := Image1.width;
 imgdat.left := Image1.left;
....
imStream.WriteRec(imgdat);
imStream.free;
типо так

а потом загружаете через imStream.ReadRec
исходник на клас TRecordStream я приводил в ссылке выше
Мой сайт
Цитата:
Сообщение от Scream In Darkness
Кровь не даёт покоя! Кровь не знает сна!
Кровь бежит на волю – Вены рвёт сама!

Последний раз редактировалось DarkEvil; 15.12.2009 в 14:26.
DarkEvil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка событий динамически созданных объектов в С++ Builder Shafty Помощь студентам 1 26.02.2009 16:11
Чтение адресов созданных BCC? ITM Безопасность, Шифрование 1 06.02.2009 05:22
Чтение адресов созданных BCC? ITM Свободное общение 1 06.02.2009 04:51
Метка в динамически созданных пунктах MainMenu Alter Компоненты Delphi 4 30.06.2008 22:51