[ 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. Jes

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

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    кстати исходник ужасный...
    логинится удобнее...
    Code:
    mpfds := TIdMultiPartFormDataStream.Create(Self); 
        mpfds.AddFormField('vb_login_username', 'Вася'); 
        mpfds.AddFormField('vb_login_password', 'Пупкин'); 
       
     IdHTTP.AllowCookies:= True; 
    IdHTTP.HandleRedirects:= True; 
    idHTTP.Request.UserAgent:= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'; 
    idHTTP.Request.ContentType:='application/x-www-form-urlencoded'; 
    idHttp.Post('http://  ....   /login.php?do=login', mpfds);
     mpfds.Free;
    
    но конкретно для твоего сайта :
    HTML:
    <form action="login.php?do=login" method="post" onsubmit="md5hash(vb_login_password, vb_login_md5password, vb_login_md5password_utf, 0)">
    так-что еще md5 нада обработать...
     
    1 person likes this.
  2. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    У меня на форме, висят 100 компонентов TICQClient.
    Как можно вывести их всех 100 в онлайн, через цикл, т.е. не сидеть и писать вручную
    ICQClient1.Login();
    ICQClient2.Login();
    ICQClient3.Login();
    ...
    ICQClient100.Login();
     
    1 person likes this.
  3. KEZ

    KEZ Ненасытный школьник

    Joined:
    18 May 2005
    Messages:
    1,604
    Likes Received:
    754
    Reputations:
    397
    не, я конечно, не специалист по делфи, но на**я ты их вручную 100 раз то раскидывал по форме? :D :D :D :D
     
    #743 KEZ, 22 Nov 2007
    Last edited by a moderator: 22 Nov 2007
  4. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    Блин ребят,я фигею :)
    var
    Mass : array[0..100] of TICQClient;
    i : dword;
    begin
    for i:=0 to 100 do Mass.Login;

    Уж мозги не раскинуть для такой ерунды :(
     
  5. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    код не сработает по 1 простой причине, TICQClient не создается и в твоем примере банальная ошибка с Can't read memory (кажется)
    итак...
    ради этого скачал+установил компонент =\

    Code:
    var
    i: Byte;
    m: array [0..99] of TICQClient;
    begin
    for i:=0 to 99 do
    begin
      m[i]:=TICQClient.Create(nil);
      with m[i] do
      begin
        UIN:=00000000;
        Password:='qwerty';
        Login();
      end;
    end;
    мда... =\
     
    #745 W!z@rD, 22 Nov 2007
    Last edited: 23 Nov 2007
  6. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22

    Я это попробовал + ищо пару вариантов, но не пахает (
    З.Ы. Зачем умничать то?
     
  7. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    компонент надо исправлять...
    http://slil.ru/25115993
     
    1 person likes this.
  8. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    У меня он исправленый
     
  9. ~utQ

    ~utQ New Member

    Joined:
    24 Nov 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Для начала код:
    Code:
     
    var
      Form1: TForm1;
      ScreenDC: HDC;
      Can: TCanvas;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Timer1.Enabled:= true;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      Can:= TCanvas.Create;
      Can.Handle:= GetDC(ScreenDC);
      Image1.Canvas.CopyRect(Rect(1, 1, Image1.Width, Image1.Height), Can, Rect(1, 1, Screen.Width, Screen.Height));
      Image1.Repaint;
      ReleaseDC(Can.Handle, ScreenDC);
      Can.Free;
    end;
    
    То, что было представлено выше, показывает содержимое экрана каждую секунду (типо программы Fraps).
    А теперь вопрос:
    Я хочу сделать клиент и сервер, которые будут запущены на разных тачках в локальной сети. Сервер на 1-ой, клиент на 2-ой. 1-ая тачка должна отсылать данные с содержимым своего экрана клиенту. Программа- клиент должна содержать на форме компонент TImage, который будет отображать содержимое экрана 1-ого компьютера. Как это реализовать и как пересылать данные?
     
  10. GlOFF

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

    Joined:
    8 May 2006
    Messages:
    689
    Likes Received:
    484
    Reputations:
    4
    ~utQ Ты хочешь в реальном времени получать картинки, т.е. их обновлять, или просто получить скрин удаленного рабочего стола???
     
    1 person likes this.
  11. Jes

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

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    даж если обновлять , проще через:
    TIdTCPServer / TidTCPclient + SendStream()
    шли через:

    ImgStream := new TMemoryStream(this);
    Image1.Bitmap.SaveToStream (ImgStream);
    TIdTCPclient.SendStream(ImgStream);

    принимаешь аналогично из потока...
     
    2 people like this.
  12. ~utQ

    ~utQ New Member

    Joined:
    24 Nov 2007
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Да, хочу в реальном времени.
    Хотел узнать как раз про потоки, спасибо.
    Code:
    Image1.Bitmap.SaveToStream (ImgStream);
    
    Ошибочка. Должно быть так:
    Code:
    Image1.Picture.Bitmap.SaveToStream (ImgStream);
    
     
    #752 ~utQ, 25 Nov 2007
    Last edited: 25 Nov 2007
  13. Jes

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

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    кам кажись Image1.Picture.Bitmap
     
  14. cyber$nake

    cyber$nake Elder - Старейшина

    Joined:
    27 Mar 2007
    Messages:
    93
    Likes Received:
    11
    Reputations:
    0
    Всем здрасте!
    Поиск не дал желаемого результата по тому вопросу кот. у меня возник или я просто долблюсь в очи.

    Вопрос такой, подскажите как можно реализовать следующее:

    Написал небольшую прогу (сонсольную), дак вот как реализовать мне запуск с параметрами из строки (пример: c:\soft.exe -?),то выдал мне например по этой команде помощь, описание кот. находится в проге.

    Всем спасибо!
     
    1 person likes this.
  15. Exile1985

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

    Joined:
    10 Aug 2006
    Messages:
    124
    Likes Received:
    35
    Reputations:
    1
    Code:
    program soft;
    
    {$APPTYPE CONSOLE}
    
    uses windows;
    
    var
    parameter: string;
    begin
       parameter:=ParamStr(1);
       if parameter = '/message' then
            Writeln('Parameter /message.')
       else
            Writeln('No actual parameters.');
     write('Press key Enter for Exit');
    readln;
    end.
    думаю коментарии излишни.
     
    #755 Exile1985, 26 Nov 2007
    Last edited: 28 Nov 2007
    2 people like this.
  16. cyber$nake

    cyber$nake Elder - Старейшина

    Joined:
    27 Mar 2007
    Messages:
    93
    Likes Received:
    11
    Reputations:
    0

    спасибо большое за пример, сам допер (тупанул с утреца немнога-не выспался)
     
    1 person likes this.
  17. MegaDeth

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

    Joined:
    8 Nov 2006
    Messages:
    192
    Likes Received:
    72
    Reputations:
    13
    GetFreeDiskSpace(). что надо подключить чтобы заработало, иначе никак... я туплю..
     
    1 person likes this.
  18. Jes

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

    Joined:
    16 Apr 2007
    Messages:
    370
    Likes Received:
    391
    Reputations:
    34
    а если через fso?
    Code:
    function DiskSpace(AFileName : string) : int;
    var
     fso, drv : OleVariant;
    begin
     fso := CreateOleObject('Scripting.FileSystemObject');
     drv := fso.GetDrive(fso.GetDriveName(AFileName));
     DiskSpace := drv.AvailableSpace;
    end;
    
     
    2 people like this.
  19. cyber$nake

    cyber$nake Elder - Старейшина

    Joined:
    27 Mar 2007
    Messages:
    93
    Likes Received:
    11
    Reputations:
    0
    Таймер в консольном приложении

    возникла такая проблема:

    пишу например:

    Code:
    program MyApp;
    
    {$APPTYPE CONSOLE}
    
    uses
      ExtCtrls;
    
    var
      Timer: TTimer;
    
    procedure MyAppOnTimer(Sender: TObject);
    begin
      {}
    end;
    
    begin
      Timer := TTimer.Create(nil);
      Timer.OnTimer := MyAppOnTimer; //вот здесь ошибка.
    end;
    
    При компиляции выдает ошибку -
    "Incompatible types: 'method pointer and regular procedure'"
    Как сделать правильно?
     
  20. cyber$nake

    cyber$nake Elder - Старейшина

    Joined:
    27 Mar 2007
    Messages:
    93
    Likes Received:
    11
    Reputations:
    0

    получилось вот таким способом, но проц сильно грузит:

    Code:
    type
      ....
      TMyTimer = class(TObject)
        timTimer: TTimer;
        booTrigger: boolean;
        procedure timTimerTimer(Sender: TObject);
      end;
      ....
    
    
    procedure TMyTimer.timTimerTimer(Sender: TObject);
    begin
      booTrigger := true;
      ...
    end;
    
    procedure TimerExample;
    var
      timDemo: TMyTimer;
    begin
      with timDemo do
      begin
        timDemo := TMyTimer.Create;
        timTimer := TTimer.Create(nil);
        booTrigger := false;
        timTimer.Interval:=30000;
        timTimer.Enabled:=true;
        timTimer.OnTimer := timDemo.timTimerTimer;
        repeat
          Application.ProcessMessages;
        until booTrigger;
        Free;
      end;
    end;
    
    может ктонить предложит по проще и с меньшей нагрузкой на проц?
     
Thread Status:
Not open for further replies.