Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 16.07.2013, 15:12
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию TImage, ошибка

Добрый день! Нужна помощь в следующем вопросе! Недавно судьба свела меня с делфи. И вот возникла непонятная для меня ситуация. Есть 2 процедуры. Процедура ScanBtnClick -- сканирует изображение с планшета и сохраняет его в папку. Процедура LoadImg должна загружать изображение.

Плохо отрабатывает вот эта строка:
Image1.Picture.LoadFromFile(CreateName);
При пошаговой компиляции все отлично, но при работе приложения -- картинка не загружается.

вот код:

Код:
rocedure TForm2.LoadImg();        // загружаем подпись на экран для просмотра
var
  CreateName : string;
  ScanPath   : string;
begin
  IniA:=TiniFile.Create(extractfilepath(paramstr(0))+'Anketa.ini');
  ScanPath:= IniA.ReadString('Path','ScanPath','');
  CreateName:=ScanPath+Fname.Text+Sname.Text+Fdate.Text+'.bmp';
  IniA.Free;
  if FileExists(CreateName) = true then
  begin
     Image1.Picture.LoadFromFile(CreateName);
   //  Application.ProcessMessages;
  end;
end;

procedure TForm2.ScanBtnClick(Sender: TObject);
begin
   if (Fname.Text='') and (Sname.Text='') and (Tname.Text='') and (Pasport.Text='') then //проверка на заполнение полей перед сканированием
      Showmessage('Для сканирования подписи заполните все поля!')
   else
   begin
      IniA:=TiniFile.Create(extractfilepath(paramstr(0))+'Anketa.ini');
      IniA.WriteString('LastClientData','Fname',Fname.Text);
      IniA.WriteString('LastClientData','Sname',Sname.Text);
      IniA.WriteString('LastClientData','Tname',Tname.Text);
      IniA.WriteString('LastClientData','Date',Fdate.Text);
      IniA.Free;
      try
         Winexec('E:\D7\N1\menu\DemoButtonsProject.exe',SW_SHOW);
      except
         Showmessage('Ошибка сканирования!')
      end;
   end;
   LoadImg();
end;
Ответить с цитированием
  #2  
Старый 16.07.2013, 23:09
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Попробуй после загрузки вызвать Update.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 17.07.2013, 09:52
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Если под сканированием подразумевается запуск внешней программы(DemoButtonsProject.exe), то Ваша процедура просто не дожидается окончания её работы. Нужно запускать не через WinExec, а через CreateProcess (ну чуть посложнее), и затем дожидаться завершения этого процесса.
Ответить с цитированием
  #4  
Старый 17.07.2013, 10:17
Smallboy Smallboy вне форума
Прохожий
 
Регистрация: 16.07.2013
Сообщения: 18
Версия Delphi: Delphi XE4
Репутация: 10
По умолчанию

Цитата:
Сообщение от icWasya
Если под сканированием подразумевается запуск внешней программы(DemoButtonsProject.exe), то Ваша процедура просто не дожидается окончания её работы. Нужно запускать не через WinExec, а через CreateProcess (ну чуть посложнее), и затем дожидаться завершения этого процесса.

Все верно, именно в этом и дело! Спасибо за помощь!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter