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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2014, 22:30   #21
Daivel
Пользователь
 
Регистрация: 14.12.2014
Сообщений: 22
По умолчанию

Всё так же. Мне ещё посоветовали создать метод на форме с картинкой:
Код:
type
  TForm3 = class(TForm)
    Image1: TImage;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SavePicture(string FileName);
  private
  ...
  procedure Form3.SavePicture(string FileName);
begin
     Image1.Picture.Bitmap.SaveToFile(ExtractFilePath(Application.ExeName)+ExtractFileName(FileName));
end;
Ну и для формы с кнопкой сделать так:
Код:
procedure TForm1.Savew1Click(Sender: TObject);
begin
  Form3.SavePicture(FileName)
end;
Но при таком варианте, при запуске он мне пишет: expected an identifier but string found
Daivel вне форума Ответить с цитированием
Старый 15.12.2014, 22:31   #22
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Ладно. Так уж и быть. Скидывайте весь ваш проект + пару тестовых битмапов, исправлю ошибку. А то Вам щас насоветуют в первый день, что вообще бросите программирование.
WinCoder вне форума Ответить с цитированием
Старый 15.12.2014, 22:37   #23
Daivel
Пользователь
 
Регистрация: 14.12.2014
Сообщений: 22
По умолчанию

http://rghost.ru/59686810
Просто по сути не такое сложное действие, но столько проблем(
Daivel вне форума Ответить с цитированием
Старый 15.12.2014, 23:20   #24
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

В общем проблема уходит корнями в стиль "fsMDIChild". Почему этот стиль не даёт ни как обращаться к объектам формы, я так и не понял. Попробовал все варианты, объекты как будто не существуют. Переделка под обычный стиль спасёт положение 100%. Как сделать реализацию в текущем стиле, я не знаю.
WinCoder вне форума Ответить с цитированием
Старый 15.12.2014, 23:24   #25
Daivel
Пользователь
 
Регистрация: 14.12.2014
Сообщений: 22
По умолчанию

Это пичально, я тут нашёл вот что интересное: Кстати, если у тебя MDI приложение то переменная FormN для дочерней формы nil. и вызывать надо не Form2.xxx а ActiveMDIChild.xxx
Daivel вне форума Ответить с цитированием
Старый 15.12.2014, 23:26   #26
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Ну коли так пишут, значит так оно и есть. Вот почему мы и не могли обратиться к Form3.Image1.
WinCoder вне форума Ответить с цитированием
Старый 15.12.2014, 23:29   #27
Daivel
Пользователь
 
Регистрация: 14.12.2014
Сообщений: 22
По умолчанию

У меня не получилось, может я что не так делал?
Daivel вне форума Ответить с цитированием
Старый 15.12.2014, 23:56   #28
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Не может, а 100%
Код:
  (Form1.ActiveMDIChild as TForm3).Image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName) + ExtractFileName(ImgName));
Form3 обязательно должна быть активной. Специфика работы с MDI формами.
WinCoder вне форума Ответить с цитированием
Старый 16.12.2014, 00:01   #29
Daivel
Пользователь
 
Регистрация: 14.12.2014
Сообщений: 22
По умолчанию

Я сделал чуть по другому. Но получилось.
Код:
procedure TForm1.Savew1Click(Sender: TObject);
begin
 ShowMessage(ExtractFilePath(Application.ExeName)+ExtractFileName(Name));
 if not (ActiveMDIChild = Nil) then
  if ActiveMDIChild is TForm3 then
    TForm3(ActiveMDIChild).Image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName) + ExtractFileName(ImgName));
end;
Daivel вне форума Ответить с цитированием
Старый 16.12.2014, 07:14   #30
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Тогда уж так
Код:
procedure TForm1.Savew1Click(Sender: TObject);
begin
 if (ActiveMDIChild <> Nil) and
   (ActiveMDIChild.Name = 'Form3') then
    TForm3(ActiveMDIChild).Image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName) + ExtractFileName(ImgName));
end;
WinCoder вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение Image в ADOTable Alexsandr БД в Delphi 14 15.03.2012 18:44
сохранение картинки с компонента Image Karina89 Помощь студентам 7 25.05.2011 20:37
Сохранение Image через канвас (Bitmap) Dj_SheLL Помощь студентам 2 18.08.2010 18:52
Сохранение изображения из канвы image. koshel Мультимедиа в Delphi 4 08.05.2010 13:31
Сохранение изображения с Image brutos Мультимедиа в Delphi 7 19.05.2009 12:26