ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #5211  
Старый 15.12.2009, 18:37
=Zeus=
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
С нами: 8817310

Репутация: 108
По умолчанию

Seven[up], в разделе "Министатьи" я писал пример, как это сделать. Можешь там посмотреть. Там самая последняя на данный момент вроде.
 
Ответить с цитированием

  #5212  
Старый 15.12.2009, 18:53
_s1r1us_
Познающий
Регистрация: 24.08.2009
Сообщений: 36
С нами: 8796992

Репутация: 6
По умолчанию

Цитата:
где ошибка???
номер и пасс забыл ввести))
 
Ответить с цитированием

  #5213  
Старый 15.12.2009, 19:04
Seven[up]
Познающий
Регистрация: 10.08.2009
Сообщений: 74
С нами: 8817073

Репутация: 69
По умолчанию

Цитата:
Сообщение от _s1r1us_  
номер и пасс забыл ввести))
они а настройках компонента ICQClient
 
Ответить с цитированием

  #5214  
Старый 15.12.2009, 19:07
Seven[up]
Познающий
Регистрация: 10.08.2009
Сообщений: 74
С нами: 8817073

Репутация: 69
По умолчанию

проблему так и не решил((( м.б. кто нибудь подскажет что недостает в коде?
 
Ответить с цитированием

  #5215  
Старый 15.12.2009, 19:23
crystalbit
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
С нами: 9436571

Репутация: 110
По умолчанию

тебе нужно дожидаться. дожидаться, когда ася войдёт. Функция login вроде асинхронно работает. Тут или на OnLogin (или как там), или циклом ждешь LoggedIn (не уверен, как оно в компоненте, но суть ты понял)
 
Ответить с цитированием

  #5216  
Старый 16.12.2009, 02:16
StealthMaster
Познающий
Регистрация: 03.12.2008
Сообщений: 56
С нами: 9176827

Репутация: 29
По умолчанию

Цитата:
Сообщение от Seven[up]  
проблему так и не решил((( м.б. кто нибудь подскажет что недостает в коде?
Код:
procedure TForm1.bConnectClick(Sender: TObject);
begin
  ICQClient1.Login();
end;

procedure TForm1.bSendMessageClick(Sender: TObject);
begin
  with ICQClient1 do
    if LoggedIn then
      SendMessage(361796, edText1.Text + ':' + edText2.Text);
end;
Либо, как вариант использовать таймер, чтобы каждые N секунд проверять, удалось установить подключение или нет.

Код:
procedure TForm1.bConnectClick(Sender: TObject);
begin
  ICQClient1.Login();
  Timer1.Enabled := true;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with ICQClient1 do
    if LoggedIn then
      begin
        SendMessage(361796, edText1.Text + ':' + edText2.Text);
        Timer1.Enabled := false;
      end;
end;
Хотя с компонентом IcqClient чудеса творятся... Днем наотрез отказался подключаться...

Последний раз редактировалось StealthMaster; 16.12.2009 в 02:53..
 
Ответить с цитированием

  #5217  
Старый 16.12.2009, 02:31
AlexGT
Познающий
Регистрация: 21.01.2008
Сообщений: 85
С нами: 9633481

Репутация: 52
По умолчанию

Народ как в дельфи при достижении прогрессбаром позиции 100 (Progressbar1.Position=100) вывести меседж ?
Перепробовал кучу вариантов, в том числе с таймером ничего не получилось..
 
Ответить с цитированием

  #5218  
Старый 16.12.2009, 02:51
StealthMaster
Познающий
Регистрация: 03.12.2008
Сообщений: 56
С нами: 9176827

Репутация: 29
По умолчанию

Цитата:
Сообщение от AlexGT  
Народ как в дельфи при достижении прогрессбаром позиции 100 (Progressbar1.Position=100) вывести меседж ?
Перепробовал кучу вариантов, в том числе с таймером ничего не получилось..
Можно в процедуре, где происходит изменение свойства Position у ProgressBar'a сравнивать новое значение с 100.

Код:
procedure SomeThing;
var
   Position: integer;
begin
   // вычисление нового значения Position
   ...
   form1.Progressbar1.position := Position;
   if (Position = 100) then
      ShowMessage('lalala');
end;
 
Ответить с цитированием

  #5219  
Старый 16.12.2009, 09:56
Seven[up]
Познающий
Регистрация: 10.08.2009
Сообщений: 74
С нами: 8817073

Репутация: 69
По умолчанию

Цитата:
Сообщение от StealthMaster  
Код:
procedure TForm1.bConnectClick(Sender: TObject);
begin
  ICQClient1.Login();
end;

procedure TForm1.bSendMessageClick(Sender: TObject);
begin
  with ICQClient1 do
    if LoggedIn then
      SendMessage(361796, edText1.Text + ':' + edText2.Text);
end;
Либо, как вариант использовать таймер, чтобы каждые N секунд проверять, удалось установить подключение или нет.

Код:
procedure TForm1.bConnectClick(Sender: TObject);
begin
  ICQClient1.Login();
  Timer1.Enabled := true;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
  with ICQClient1 do
    if LoggedIn then
      begin
        SendMessage(361796, edText1.Text + ':' + edText2.Text);
        Timer1.Enabled := false;
      end;
end;
Хотя с компонентом IcqClient чудеса творятся... Днем наотрез отказался подключаться...
Спасибо
 
Ответить с цитированием

  #5220  
Старый 16.12.2009, 12:51
Uname-A
Познающий
Регистрация: 19.08.2008
Сообщений: 69
С нами: 9329667

Репутация: 31
По умолчанию

Приветствую.

Собственно прошу помочь разобраться с динамической загрузкой дллки bass.dll

До сего дня юзал статический способ(aka простой) но этот способ требовал обязательного наличия дллки рядом с программой Что само по себе мне не подходит

Начал смотреть в сторону динамической загрузки Но почему то код на отрез отказывается работать=(

Прошу знающих людей посмотреть и сказать что не так(код не самый красивый и удобный Это всего лишь пробный вариант)

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  BASS_Init : function(device: LongInt; freq, flags: DWORD; win: HWND; clsid: PGUID): Boolean;
  BASS_StreamCreateFile : function(mem: BOOL; f: Pointer; offset, length: Int64; flags: DWORD): DWORD;
  BASS_ChannelPlay: function(handle: DWORD; restart: BOOL): BOOL;
  DLLInstance : THandle;
var stream:TStream;
mem: Pointer;
Channel1:HWND;
begin
  stream:=TResourceStream.Create(hinstance,PChar('doorup'),PChar('sounds'));
  GetMem(mem, stream.size);
  stream.Read(mem^, stream.Size);
  DLLInstance := LoadLibrary(PChar('bass.dll'));
  if (DLLInstance = 0) then
  begin
    MessageDlg('Невозможно загрузить DLL', mtError, [mbOK], 0);
    Exit;
  end;
  try
      @BASS_Init := GetProcAddress(DLLInstance, 'BASS_Init');
    @BASS_StreamCreateFile := GetProcAddress(DLLInstance, 'BASS_StreamCreateFile');
    @BASS_ChannelPlay := GetProcAddress(DLLInstance, 'BASS_ChannelPlay');
    if Assigned(@BASS_StreamCreateFile) and (Assigned(@BASS_ChannelPlay)) and (Assigned(@BASS_Init)) then
    begin
    showmessage('uuu');
     if BASS_Init(-1, 44100, 0, Application.Handle, nil) then
     begin
     Channel1:=BASS_StreamCreateFile(true,mem,0,stream.Size,0);
     BASS_ChannelPlay(Channel1, true);  // timeisout
     end;
     end
    else
      MessageDlg('Не найдена искомая процедура!.', mtError,[mbOK], 0);
  finally
    FreeLibrary(DLLInstance);
  end;
end;
ПЫ СЫ: bass.dll версии 2.4, ошибка появляется на строчке которую я выделил Текст ошибки ниже:

Код:
 ---------------------------
Debugger Fault Notification
---------------------------
Project C:\Documents and Settings\Admin\Рабочий стол\Test\Project1.exe faulted with message: 'access violation at 0x0000c35d: read of address 0x0000c35d'. Process Stopped. Use Step or Run to continue.
---------------------------
OK   
---------------------------
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2571 20.06.2026 14:48
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.