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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2010, 06:56   #1
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию всплывающее окно(в отдельном потоке)

здравствуйте!
написал всплывающее окно но в некоторых случаях после его использования прога зависает намертво.... проблема не в окне там вообще кода 3 строки....
решил спросить тут возможно ли написать это всплывающее окно в отдельном потоке и если да может кто то написать? заранее спасибо
Virus191288 вне форума Ответить с цитированием
Старый 18.01.2010, 08:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Возможно конечно, но нужно знать четко задание, да и на каком языке писать с применением каких средств...
Так что ТЗ в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.01.2010, 09:51   #3
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

язык разумеется делфи
вот код моеи формы
Код:
unit uformz;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, sLabel, ExtCtrls, jpeg, Buttons, sBitBtn, sButton,
  acPNG;

type
  TFormz = class(TForm)
    Timer1: TTimer;
    Timer2: TTimer;
    Timer3: TTimer;
    Image1: TImage;
    sBitBtn1: TsBitBtn;
    sLabel1: TsLabel;
    sLabelFX1: TsLabelFX;
    Timer4: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer3Timer(Sender: TObject);
    procedure sBitBtn1Click(Sender: TObject);
    procedure Timer4Timer(Sender: TObject);


  private
  public
  end;

var
  fFormz: TFormz;

implementation

uses uMain;

{$R *.dfm}

procedure TFormz.Timer1Timer(Sender: TObject);
begin

 if Left>Screen.Width-251
 then begin
 left:=left-10;
 AlphaBlendValue:=AlphaBlendValue+9;
 end else begin
   AlphaBlendValue:=250;
 Timer1.Enabled:=False;
 Timer3.Enabled:=true;
 end;

end;

procedure TFormz.Timer2Timer(Sender: TObject);
begin
 if Left<Screen.Width then begin
 left:=left+10;
 AlphaBlendValue:=AlphaBlendValue-9;
 end else Close;
end;

procedure TFormz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
uMain.nom:=uMain.nom-1;
IF nom=0 then posok:=Screen.Height-40;
Action:=caFree;
end;

procedure TFormz.Timer3Timer(Sender: TObject);
begin
  Timer2.Enabled:=true;
 Timer3.Enabled:=False;
end;

procedure TFormz.sBitBtn1Click(Sender: TObject);
begin
close;
end;

procedure TFormz.Timer4Timer(Sender: TObject);
begin
close;
end;

end.
Код:
function TfMain.FormZ(name: string;text: string;const PosX: integer;const PosY: integer): string;
begin
nom:=nom+1;
 FFormz:=TFormz.Create(Application);

 FFormz.top:=posok-FFormz.Height;
 posok:=FFormz.top;
 fFormz.sLabel1.left:=PosX;
 fFormz.sLabel1.top:=PosY;

 text := StringReplace(text, '|', #13#10, [rfReplaceAll]);

 fFormz.Left:=Screen.Width;

 FFormz.sLabel1.Caption:=text;
 FFormz.sLabelFX1.Caption:=name;
 FFormz.Show;
if posok<102 then posok:=Screen.Height-40;

end;
Код:
FormZ('название!','текст!',8,20);
чтото в этом духе
примерное описание есть форма на ней картинка при вызове функции создается эта форма(выезжает с боку) висит примерно 5 секунд и заезжает обратно
Virus191288 вне форума Ответить с цитированием
Старый 18.01.2010, 10:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Не вижу я никакого тут криминала...
Разве что таймер останавливай в обработчике FormClose принудительно.
Не должно зависать...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.01.2010, 10:24   #5
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

Stilet я писал о томже в коде вообще нет проблем проблемы появляются при вызове этого окна в определенные моменты..... поэтому и прошу помочь сделать в отдельном потоке...
Virus191288 вне форума Ответить с цитированием
Старый 18.01.2010, 11:08   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Но дружище, отдельный поток только все запутает.
Я не думаю что тебе это поможет...
Не ну чесно если есть вис значит нужно вылавливать причину а не маскировать его.
Если хочешь конечно я тебе пример накину, но это не дело.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.01.2010, 18:32   #7
Virus191288
Пользователь
 
Регистрация: 06.06.2009
Сообщений: 59
По умолчанию

Stilet так проблема как раз в том что во 1 окна глючат и при вызове лагает вся прога.... во 2 в некоторых случаях например при изменении статуса(неважно юзается в проге) напрочь зависает! думаю все это исправит отдельный поток
Virus191288 вне форума Ответить с цитированием
Старый 21.01.2010, 13:27   #8
ikot
Пользователь
 
Регистрация: 29.09.2008
Сообщений: 56
По умолчанию

Используй для этих целей компонент AdvAlert. Смотри тут:http://delphiexpert.ru/view_download.php?id=62
ikot вне форума Ответить с цитированием
Старый 21.01.2010, 13:41   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Virus191288
Я бы всетки программу на твоем месте пошагово оттестировал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка данных в отдельном потоке Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 18.01.2010 23:29
Закачка файла происходит в отдельном потоке. Kyran29 Работа с сетью в Delphi 1 28.11.2009 01:19
всплывающее окно niziriska Общие вопросы Delphi 5 08.07.2009 13:27
Проблема с созданием окна(CreateWindow) в отдельном потоке Sc0rp Win Api 4 26.03.2009 22:49
Запрос к БД в отдельном потоке (Thread) tyrell lab БД в Delphi 1 14.06.2007 08:42