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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.02.2014, 15:06
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию delphi ошибка

Добрый день!
Помогите пожалуйста, немогу исправить ошибку в программе.
Вообщем у меня есть splashscreen, который запускаеться и после него грузяться все формы, на форме splashscreen в компонент TImage загружена анимация, которая работает с помощью компонента GifImage.
Так вот ошибка выскакивает такая:
Цитата:
'' is not a valid integer value

Splashscreen у меня Form6, а строчка показываеться на Form2.
Вот код:
Код:
procedure TReadThread.UpdateForm;
begin
  if (Form2.edt1.text = 'cls') then Form2.edt2.Text:='';
  Form2.edt1.Text:='';
  OemToAnsiBuff(buf, buf, dummy);
  Form2.edt2.Text:=Form2.edt2.Text+Copy(buf, 1, dummy);

  with Form2.edt2 do begin
  SelLength := 0;
  SelStart := Length(Text);
  Perform(EM_SCROLLCARET,0,0);
  end;
end;

показывает на ету строчку
Код:
with Form2.edt2 do begin
но когда оставляю только етот код:
Код:
if (Form2.edt1.text = 'cls') then Form2.edt2.Text:='';
  Form2.edt1.Text:='';
  OemToAnsiBuff(buf, buf, dummy);
  Form2.edt2.Text:=Form2.edt2.Text+Copy(buf, 1, dummy);
ошибка получаеться в последней строке.

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

И кстати, если удалить анимацию, программа запускаеться без ошибок.
Такая ошибка происходит, только если загрузить анимацию в SplashScreen. В других формах работает нормально.
Ответить с цитированием
  #2  
Старый 22.02.2014, 06:32
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Возможно нужно поменять приоритет при создании Form6 и Form2. Идёт обращение к Form2.edt2, а его ещё похоже нету
Ответить с цитированием
  #3  
Старый 22.02.2014, 08:57
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

в том то и дело, что я не обращаюсь в Form2 до запуска Form1.
пробывал менять местами, тоже не помогло, незнаю что и делать уже
Ответить с цитированием
  #4  
Старый 22.02.2014, 09:17
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Откройте файл *.dpr на просмотр да и гляньте что и когда создется в CreateForm
Ответить с цитированием
  #5  
Старый 22.02.2014, 09:34
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
SplashScreen := TSplashScreen.Create(Application);
  SplashScreen.ClientHeight:=256;
  SplashScreen.ClientWidth:=520;
  SplashScreen.Height:=294;
  SplashScreen.Width:=536;
  SplashScreen.Show;
  SplashScreen.Update;
  Application.CreateForm(TForm1, Form1);
  SplashScreen.Update;
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);

если же зделать вот так:
Код:
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
SplashScreen := TSplashScreen.Create(Application);
  SplashScreen.ClientHeight:=256;
  SplashScreen.ClientWidth:=520;
  SplashScreen.Height:=294;
  SplashScreen.Width:=536;
  SplashScreen.Show;
 SplashScreen.Update;
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);

ошибка по прежнему высвечуеться(
Ответить с цитированием
  #6  
Старый 22.02.2014, 09:56
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Анимацию в GifImage грузите из ресурсов? Кажется у него параметр Active используется, если его установить в false, а включать в OnShow, не поможет?
Ответить с цитированием
  #7  
Старый 22.02.2014, 16:37
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Компонент GifImage позволяет компоненту TImage загружать .gif анимации и воиспроизводить их.

К сожалению, у меня нету параметра Active(
Ответить с цитированием
  #8  
Старый 22.02.2014, 16:44
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

попробывал зделать так:
Код:
procedure TSplashScreen.FormCreate(Sender: TObject);
var nGif:TGIFImage;
begin
nGif:=TGIFImage.Create;
nGif.LoadFromFile('img\loader.gif');
nGif.Animate := false;
loader.Picture.Assign(nGif);
nGif.Free;
end;

программа запускаеться без ошибок, но когда включаю анимацию
Код:
procedure TSplashScreen.FormShow(Sender: TObject);
var nGif:TGIFImage;
begin
nGif:=TGIFImage.Create;
nGif.loadfromfile('img\loader.gif');
nGif.Animate := true;
loader.Picture.Assign(nGif);
nGif.Free;
end;

программа снова выдает ту же ошибку

Последний раз редактировалось JeReK5542, 22.02.2014 в 16:46.
Ответить с цитированием
  #9  
Старый 22.02.2014, 17:06
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

И будет ошибка - вы создаёте TGIFImage, передаете его loader`у и тут же грохаете, сделайте nGif глобальным, в Oncreate формы его создавайте, а nGif.Free выполняйте в FormDestroy

З.Ы. Есть альтернатива для GIFImage, вот пример

Последний раз редактировалось Alegun, 22.02.2014 в 17:33.
Ответить с цитированием
  #10  
Старый 22.02.2014, 17:58
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

спасибо работает)
подскажите еще, как зделать, чтобы SplashScreen не тормозил при загрузке?
Ответить с цитированием
  #11  
Старый 22.02.2014, 17:59
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

кстати проблему решил так:
Код:
procedure TSplashScreen.FormCreate(Sender: TObject);
begin
nGif:=TGIFImage.Create;
nGif.Assign(loader.Picture);
nGif.Animate :=False;
loader.Picture.Assign(nGif);
end;

procedure TSplashScreen.FormDestroy(Sender: TObject);
begin
nGif.Free;
end;

procedure TSplashScreen.FormShow(Sender: TObject);
begin
nGif.Animate:=True;
end;

в loader изначально загружена анимация, все работает отлично)

Последний раз редактировалось JeReK5542, 22.02.2014 в 18:09.
Ответить с цитированием
  #12  
Старый 24.02.2014, 17:23
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

блин всетаки осталась проблема(
с етим кодом что выше все работает, но анимация не двигаеться вообще даже если использовать Application.ProcessMessages
Ответить с цитированием
  #13  
Старый 24.02.2014, 17:25
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

а если сделать так:
Код:
procedure TSplashScreen.FormCreate(Sender: TObject);
begin
nGif:=TGIFImage.Create;
nGif.LoadFromFile('img\loader.gif');
nGif.Animate:=False;
loader.Picture.Assign(nGif);
end;

procedure TSplashScreen.FormDestroy(Sender: TObject);
begin
nGif.Free;
end;

procedure TSplashScreen.FormShow(Sender: TObject);
begin
nGif.Animate:=True;
loader.Picture.Assign(nGif);
end;
выскакивает таже ошибка
Ответить с цитированием
  #14  
Старый 24.02.2014, 18:32
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Нет, столько кофе не выпить, чтоб на гуще гадать, всё равно что слона с широко закрытыми глазами общупывать - то ли брандспойт, толи швартов, не поймёшь Нужно ставить эксперимент, пробовать повторить ситуацию как у вас. Давно б уже показали весь юнит сплешскрина, как запускается и как грохается, правда, гадать надоело по крохам
Ответить с цитированием
  #15  
Старый 24.02.2014, 19:38
JeReK5542 JeReK5542 вне форума
Новичок
 
Регистрация: 18.11.2013
Сообщения: 61
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

поставил RxLib и теперь нет проблем)
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter