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

    Artist Member

    Joined:
    10 Jul 2010
    Messages:
    89
    Likes Received:
    5
    Reputations:
    0
    Видел многопоточные программы в логах действия которых отображается действие n-ого потока.
    Например:
    [1]Thread: пишет...
    [2]Thread: рисует...
    [1]Thread: рисует...
    [2]Thread: пишет...
    Как узнать какой именно поток делает данные действия?
    Или при запуске потоков надо их синхронизировать и каждому дать номер?
     
  2. php_casper

    php_casper New Member

    Joined:
    6 Jun 2010
    Messages:
    64
    Likes Received:
    1
    Reputations:
    1
    нубо вопрос, но как в delphi7 правильно сохранять проекты, а то сохраняю, открываю и выдает ошибку. приходится код в блокноте хранить)
     
  3. Timon132009

    Timon132009 Member

    Joined:
    7 Jun 2009
    Messages:
    137
    Likes Received:
    19
    Reputations:
    0
    File=>Save Project As...
     
  4. php_casper

    php_casper New Member

    Joined:
    6 Jun 2010
    Messages:
    64
    Likes Received:
    1
    Reputations:
    1
    А потом открываю, выдает что нехватает файла и т.п.
     
  5. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    В потоке сделай поле с каким нибудь именем (например, Number) и при создании потока заноси его номер в эту переменную.

    Потом в основном коде, который выполняет поток, при наступлении некоторых моментов делай дополнительные вызовы функций, которые обновляли бы лог. Тут да, нужна синхронизация.
     
    #6805 Chrome~, 13 Sep 2010
    Last edited: 13 Sep 2010
  6. Artist

    Artist Member

    Joined:
    10 Jul 2010
    Messages:
    89
    Likes Received:
    5
    Reputations:
    0
    File=>Save Project As...
    File=>Save As...
    И все в одну папку.
     
  7. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17

    Делайте отдельную папку для проэкта каждого и сохраняйте через Save Project
     
  8. finnk

    finnk New Member

    Joined:
    1 Jul 2010
    Messages:
    30
    Likes Received:
    1
    Reputations:
    0
    Доброго всем времени суток) Подскажите пожалуйста книгу по Object Pascal. Желательно чтобы как можно подробней объяснялся процесс создания классов ну и тому подобное.
     
  9. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    http://www.intuit.ru/department/pl/intdelphi/
    Как раз для новичка. Из книг читай потом Архангельского, Кэнту, Фаронова
     
  10. le-mon

    le-mon New Member

    Joined:
    11 Apr 2007
    Messages:
    50
    Likes Received:
    2
    Reputations:
    -5
    Прохожу авторизацию, но как отправить сообщение по нажатию кнопки не могу догнать.

    Привидите плиз пример отправки сообщения...

    Код авторизации:

    HTML:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Http  : TidHttp;
      CM    : TidCookieManager;
      Data  : TStringList;
      StrPage, UserID,  UserName  :  String;
      i : integer;
    begin
      try
        Http := TIdHTTP.Create(Self);
        Data := TStringList.Create;
        CM := TidCookieManager.Create(Http);
        Http.AllowCookies := true;
        Http.CookieManager := CM;
        Http.HandleRedirects := true;
    
        Http.Request.Host:='livejournal.com';
        Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
        Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
        Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
        Http.Request.Referer:='http://www.livejournal.com/';
    
        Data.Add('mode=login');
        Data.Add('user=' + Edit1.Text);
        Data.Add('password=' + Edit2.Text);
        StrPage := Http.Post('http://www.livejournal.com/login.bml?ret=1', Data);
      finally
        Data.Free;
        CM.Free;
        Http.Free;
      end;
    
      if Pos('<input class="logoutlj_hidden" id="user" name="user" type="hidden" value="'+Edit1.Text,StrPage) <> 0 then
        ShowMessage('Авторизация прошла успешно')
      else
        ShowMessage('Авторизация провалилась');
    
      Memo1.Lines.Text := StrPage;
    end;
    
    
     
  11. 0pTik

    0pTik Banned

    Joined:
    18 Jul 2010
    Messages:
    240
    Likes Received:
    85
    Reputations:
    17
    Отследить снифером запрос, и посылать , скорей всего еще придется парсить че нить
     
  12. CheatXX

    CheatXX New Member

    Joined:
    8 Jun 2009
    Messages:
    154
    Likes Received:
    2
    Reputations:
    0
    как находить хэндл кнопки и окна?
     
  13. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    HTML:
    function sis (a,c:Integer):string;
    var i:Integer;
      begin
      I:=0;
      repeat
      i:=i+1;
      Result[i]:=inttostr((a)mod(c))[1];
      a:=(a)div(c);
      until a>c;
      end;
    ругается на строчку
    HTML:
    Result[i]:=inttostr((a)mod(c))[1];
    только вот на что именно понять не могу. ведь компилируется, но когда начинаешь выполнять, выдаёт ошибку. посоветуйте.
     
  14. legaljo

    legaljo Member

    Joined:
    27 Jul 2010
    Messages:
    195
    Likes Received:
    26
    Reputations:
    7
    А что вот эта единичка [1] в конце означает? просто из интереса..
     
  15. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22

    Какбэ сначала надо выделить память под строку, она же пустая. Setlength(result, Length(result) +1);
    Код который я привел неоптимизирован, но если выделений памяти будет немного то сойдет
    ну как что, IntToStr возвращает строку string, [1] - первый символ этой строки
     
    #6815 GhostOnline, 17 Sep 2010
    Last edited: 17 Sep 2010
    1 person likes this.
  16. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    она означает, что нужен только первый символ строки, проблема с совместимостью типов была.
     
  17. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    вот про память поподробнее, что то то я неслышал что память под строчку надо выделять, что можно выделять знаю, что нужно нет.
     
  18. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ну вот ты объявил переменную s: string
    На данный момент она пустая, т.е. обращение s[1], s[2] и т.д.- некорректное, т.к. память под эти символы не выделена. Получим acess violation, и хотя ты не написал какая у тебя ошибка я полагаю что именно эта.
    А вот если сделать SetLength(s, 2) то можно обращаться к [1] и [2] (но правда они будут пустые) а вот к [3] уже нет.
    Присвоение типа s := 'ok'; тоже выделяет память под два символа и заодно заносит символы
    Для примера, на кнопке сделай такой обработчик:
    Сначала вызови так, а потом убери SetLength и разницу поймешь

    В-общем, работать со строками надо также как с динамическими массивами
     
    #6818 GhostOnline, 17 Sep 2010
    Last edited: 17 Sep 2010
  19. AGIMgal

    AGIMgal New Member

    Joined:
    9 Jun 2010
    Messages:
    66
    Likes Received:
    0
    Reputations:
    0
    спасибо, сравнил, действительно разница есть. Вроде понял как это делать.
     
  20. moodoone

    moodoone Member

    Joined:
    21 Oct 2009
    Messages:
    144
    Likes Received:
    38
    Reputations:
    5
    Есть текст вида
    PHP:
    <option  value="avtoinst">avtoinstruktor.in.ua (avtoinst)</option><option  value="avtostek">avtosteklo.kh.ua (avtostek)</option>
    Как мне спарсить оттуда сайты avtoinstruktor.in.ua, avtosteklo.kh.ua?
     
Thread Status:
Not open for further replies.