[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. total90

    total90 Elder - Старейшина

    Joined:
    30 Sep 2009
    Messages:
    90
    Likes Received:
    85
    Reputations:
    12
    прописать end. :D
     
  2. xtra

    xtra New Member

    Joined:
    11 Mar 2007
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    вопрос снят))
     
    #4942 xtra, 14 Dec 2009
    Last edited: 14 Dec 2009
  3. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    как сделать бы при нажатии на Button1 информация введенная в edit1 и edit2 отправлялась на icq в формате edit1;edit2?
     
    #4943 Seven[up], 15 Dec 2009
    Last edited: 15 Dec 2009
  4. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    эх... еще один фейк делается ((((
    Бери TICQClient и там всё поймеш по примеру
     
  5. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    Надо же с чего то начинать :) Чегодня первый день в дельфи, надо как то ознакомиться, фейки поделать :D Спс щас гляну...
     
  6. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    где ошибка???
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ICQClient, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        ICQClient1: TICQClient;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ICQClient1.Login;
      ICQClient1.SendMessage(361796, Edit1.text+':'+Edit2.text);
      ICQClient1.Disconnect;
    end;
    
    end.
     
  7. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    Если первый день в дельфи, то нужно с другого начинать. :(
     
  8. =Zeus=

    =Zeus= Member

    Joined:
    10 Aug 2009
    Messages:
    213
    Likes Received:
    54
    Reputations:
    5
    Seven[up], в разделе "Министатьи" я писал пример, как это сделать. Можешь там посмотреть. Там самая последняя на данный момент вроде.
     
  9. _s1r1us_

    _s1r1us_ New Member

    Joined:
    24 Aug 2009
    Messages:
    6
    Likes Received:
    2
    Reputations:
    0
    номер и пасс забыл ввести))
     
  10. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    они а настройках компонента ICQClient
     
  11. Seven[up]

    Seven[up] Banned

    Joined:
    10 Aug 2009
    Messages:
    45
    Likes Received:
    36
    Reputations:
    0
    проблему так и не решил((( м.б. кто нибудь подскажет что недостает в коде?
     
  12. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    тебе нужно дожидаться. дожидаться, когда ася войдёт. Функция login вроде асинхронно работает. Тут или на OnLogin (или как там), или циклом ждешь LoggedIn (не уверен, как оно в компоненте, но суть ты понял)
     
  13. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Code:
    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 секунд проверять, удалось установить подключение или нет.

    Code:
    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 чудеса творятся... Днем наотрез отказался подключаться...
     
    #4953 StealthMaster, 16 Dec 2009
    Last edited: 16 Dec 2009
  14. AlexGT

    AlexGT Banned

    Joined:
    21 Jan 2008
    Messages:
    1
    Likes Received:
    18
    Reputations:
    0
    Народ как в дельфи при достижении прогрессбаром позиции 100 (Progressbar1.Position=100) вывести меседж ?
    Перепробовал кучу вариантов, в том числе с таймером ничего не получилось..
     
  15. StealthMaster

    StealthMaster Member

    Joined:
    3 Dec 2008
    Messages:
    52
    Likes Received:
    11
    Reputations:
    0
    Можно в процедуре, где происходит изменение свойства Position у ProgressBar'a сравнивать новое значение с 100.

    Code:
    procedure SomeThing;
    var
       Position: integer;
    begin
       // вычисление нового значения Position
       ...
       form1.Progressbar1.position := Position;
       if (Position = 100) then
          ShowMessage('lalala');
    end;
    
     
    1 person likes this.
  16. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    Приветствую.

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

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

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

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

    Code:
    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');
    [COLOR=DarkRed]     [b]if BASS_Init(-1, 44100, 0, Application.Handle, nil) then[/b][/COLOR]
         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, ошибка появляется на строчке которую я выделил Текст ошибки ниже:

    Code:
     ---------------------------
    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   
    ---------------------------
    
     
  17. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    как управиться с устройством?

    подскажите как в delphi узнать что:
    1) у устройства, допустим сетевой карты значок желтый в диспетчере устройств, ну который у сбойных устройств появляется или у тех, что не имеют драйверов.
    2) как включить\выключить устройство
    p.s. подсказки заюзать ту или иную статью msdn также приветствуются
     
  18. Uname-A

    Uname-A Elder - Старейшина

    Joined:
    19 Aug 2008
    Messages:
    73
    Likes Received:
    12
    Reputations:
    5
    посмотри может поможет.... http://www.cyberguru.ru/programming/delphi/windows-devices-page2.html
     
  19. ErrorNeo

    ErrorNeo Elder - Старейшина

    Joined:
    2 May 2009
    Messages:
    923
    Likes Received:
    838
    Reputations:
    402
    Задача:
    требуется прочесть на почтовом ящике заголовки писем, и если есть письмо, содержащее фразу "Hello Vasiliy" - удалить его.

    единственный вариант, который пока что увидел -
    через POP3 сделать запрос LIST и потом поочередно юзать
    RETR 1 - RETR list

    Как методами SMTP или же POP3 получить одни лишь заголовки писем?
    (не найду нужной команды:( )
     
  20. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Команда POP3 протокола

    TOP [сообщение] [количество строк]

    Сервер возвращает заголовки указанного сообщения, пустую строку и указанное количество первых строк тела сообщения.
    Аргументы
    [сообщение] — номер сообщения.
    [количество строк] — сколько строк нужно вывести.
    Ограничения
    Доступна после успешной идентификации.
    Возможные ответы
    +OK n octets
    -ERR no such message
     
    1 person likes this.
Thread Status:
Not open for further replies.