ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

15.12.2009, 18:37
|
|
Участник форума
Регистрация: 10.08.2009
Сообщений: 238
Провел на форуме: 724939
Репутация:
108
|
|
Seven[up], в разделе "Министатьи" я писал пример, как это сделать. Можешь там посмотреть. Там самая последняя на данный момент вроде.
|
|
|

15.12.2009, 18:53
|
|
Познающий
Регистрация: 24.08.2009
Сообщений: 36
Провел на форуме: 671849
Репутация:
6
|
|
номер и пасс забыл ввести))
|
|
|

15.12.2009, 19:04
|
|
Познающий
Регистрация: 10.08.2009
Сообщений: 74
Провел на форуме: 1538500
Репутация:
69
|
|
Сообщение от _s1r1us_
номер и пасс забыл ввести))
они а настройках компонента ICQClient
|
|
|

15.12.2009, 19:07
|
|
Познающий
Регистрация: 10.08.2009
Сообщений: 74
Провел на форуме: 1538500
Репутация:
69
|
|
проблему так и не решил((( м.б. кто нибудь подскажет что недостает в коде?
|
|
|

15.12.2009, 19:23
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 171
Провел на форуме: 1085601
Репутация:
110
|
|
тебе нужно дожидаться. дожидаться, когда ася войдёт. Функция login вроде асинхронно работает. Тут или на OnLogin (или как там), или циклом ждешь LoggedIn (не уверен, как оно в компоненте, но суть ты понял)
|
|
|

16.12.2009, 02:16
|
|
Познающий
Регистрация: 03.12.2008
Сообщений: 56
Провел на форуме: 140714
Репутация:
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..
|
|
|

16.12.2009, 02:31
|
|
Познающий
Регистрация: 21.01.2008
Сообщений: 85
Провел на форуме: 629558
Репутация:
52
|
|
Народ как в дельфи при достижении прогрессбаром позиции 100 (Progressbar1.Position=100) вывести меседж ?
Перепробовал кучу вариантов, в том числе с таймером ничего не получилось..
|
|
|

16.12.2009, 02:51
|
|
Познающий
Регистрация: 03.12.2008
Сообщений: 56
Провел на форуме: 140714
Репутация:
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;
|
|
|

16.12.2009, 09:56
|
|
Познающий
Регистрация: 10.08.2009
Сообщений: 74
Провел на форуме: 1538500
Репутация:
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 чудеса творятся... Днем наотрез отказался подключаться...
Спасибо 
|
|
|

16.12.2009, 12:51
|
|
Познающий
Регистрация: 19.08.2008
Сообщений: 69
Провел на форуме: 458484
Репутация:
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
---------------------------
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|