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

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Как завершить поток созданный CreateThread?
    Гуглил -> не нашел
     
  2. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    TerminateThread(<Хендл потока>,<Код завершения обычно 0>)
    вот ссыль на мсдн http://msdn.microsoft.com/en-us/library/ms686717(VS.85).aspx
     
    #5042 transserg, 24 Dec 2009
    Last edited: 24 Dec 2009
  3. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Что то не работает, можно маленький пример с TerminateThread? (скорее всего что-то не так делаю)
     
  4. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    а что ты в нее передаешь? то что вернула CreateThread или ThredID это полсдений параметр CreateThread. нужно передавать Хендл потока то что вернет CreateThread или OpenThread
    Вот пример

    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
      hThrad:THAndle;
    
    implementation
    
    {$R *.dfm}
    Function Thead(P:Pointer):LongInt;
      var
        i:Integer;
      begin
        i:=0;
        while True do
          begin
            Form1.Memo1.Lines.Add(IntToStr(i));
            Inc(i);
            Sleep(1000)
          end;
      end;
    procedure TForm1.Button1Click(Sender: TObject);
      var
        thr:Cardinal;
      begin
        hThrad:=createthread(nil,0,@Thead,nil,0,thr); 
      end;
    
    procedure TForm1.Button2Click(Sender: TObject);
      begin
        TerminateThread(hThrad,0);
      end;
    
    end.
    
     
    #5044 transserg, 24 Dec 2009
    Last edited: 24 Dec 2009
    1 person likes this.
  5. n1ghtstalker

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

    Joined:
    28 Sep 2008
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    переменная x<>100 . не равна . а то у тебя получается в цикл входит только тогда х=100, а у тебя должен выходить когда x=100.
    вот собственно и всё.
     
  6. Fireblade

    Fireblade Member

    Joined:
    31 Mar 2009
    Messages:
    56
    Likes Received:
    7
    Reputations:
    0
    Как сделать в дельфи чтоб текст в Label выводился не сразу, а через какой-нибудь промежуток времени? Пример плиз приведите ))
     
  7. DimkO

    DimkO Banned

    Joined:
    16 Nov 2008
    Messages:
    28
    Likes Received:
    3
    Reputations:
    0
    процедура sleep(....),где указывается время задержки в милисек.,в данном примере задержка на 1 сек

     
    2 people like this.
  8. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Всем доброго времени суток!

    Подскажите как спрятать программку с панели задач, но чтобы форма была видна.

    По такому принципу работают виджеты.

    Заранее спасибо!

    P.S Так пробовал но не полочилось _http://delphi-faq.zoxt.net/143.htm
     
    #5048 iGlass, 25 Dec 2009
    Last edited: 25 Dec 2009
  9. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    FormOnShow
    Code:
    ShowWindow(Application.Handle, sw_Hide);
     
  10. Пуховой

    Joined:
    25 Nov 2007
    Messages:
    46
    Likes Received:
    37
    Reputations:
    0
    Indy в потоке - утечка памяти

    Доброго времени суток!

    Имею проблему с утечкой памяти.

    Код потока:
    Code:
    procedure Test.Execute;
    var
      http : Tidhttp;
      s : string;
      compressor : tIdCompressorZLib;
    begin
      http := Tidhttp.Create; http.Request.AcceptEncoding := 'gzip, deflate';
      compressor := tIdCompressorZLib.Create; http.Compressor := compressor;
    
      s := http.get ('http://yandex.ru');
    
      http.Free; compressor.Free; exit;
    end;
    После остановки, по идее, он должен освободить занимаемую память. Но этого не происходит - уже через час бесперебойной работы программы она занимает 50-60 мб. оперативной памяти, против 2 мб. при запуске. Чем дольше работает - тем больше кушает.

    Помогите разобраться в проблеме, пожалуйста - программы должны сутками бесперебойно работать, а этого не выходит.
     
  11. mr_walker

    mr_walker Member

    Joined:
    9 Aug 2009
    Messages:
    41
    Likes Received:
    34
    Reputations:
    2
    Нет, ты не понял... попытаюсь сформулировать:
    на CommandGet пишу:
    procedure Form1.CommandGet(AThread: TIdPeerThread;
    ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
    begin
    IvanetsServerMain.ServeFile(AThread, AResponseInfo,
    'd:\Server_root\www'+ARequestInfo.Document);
    end;
    мне нужно чтобы при вводе в строке браузера
    http://имя_хоста/index.php выводило полноценную пхп страницу....
     
    #5051 mr_walker, 25 Dec 2009
    Last edited: 25 Dec 2009
  12. TrueBit

    TrueBit Member

    Joined:
    21 Nov 2009
    Messages:
    71
    Likes Received:
    19
    Reputations:
    4
    Всё получилось спасибо, но как вывести в мемо код страницы, сейчас в мемо какие то иероглифы..
     
  13. Markus_13

    Markus_13 Member

    Joined:
    19 Feb 2009
    Messages:
    74
    Likes Received:
    19
    Reputations:
    0
    а так не катит?:
    Code:
    uses IdHttp;
    ...
    var s:string;h:tIdHttp;
    begin
    h:=tIdHttp.Create(nil);
    memo1.Lines.Clear;
    s:=h.Get('http://antichat.ru');
    memo1.Lines.Add(s);
    h.Free;
    ...
    имхо самый простой и удобный вариант на делфи
     
  14. TrueBit

    TrueBit Member

    Joined:
    21 Nov 2009
    Messages:
    71
    Likes Received:
    19
    Reputations:
    4
    нет, нужно на winsock
     
  15. wwalex101

    wwalex101 New Member

    Joined:
    24 Mar 2009
    Messages:
    67
    Likes Received:
    4
    Reputations:
    1
    пмогите подалуста как мне использовать функцию

    function BinToInt(Value: string): Integer;
    var
    i, iValueSize: Integer;
    begin
    Result := 0;
    iValueSize := Length(Value);
    for i := iValueSize downto 1 do
    if Value = '1' then Result := Result + (1 shl (iValueSize - i));
    end;


    в процедуре
    procedure TForm1.Button1Click(Sender: TObject);

    ???!!! понимаю google.ru ответил бы на мой вопрос но вот седян он не хочет давать мне ответа ...
     
  16. Nullsleep

    Nullsleep Member

    Joined:
    2 Jun 2009
    Messages:
    67
    Likes Received:
    26
    Reputations:
    0
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       Button1.Caption := IntToStr(BinToInt('10001010'));
    end;
    
     
    1 person likes this.
  17. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Какой пакет посылаешь?
     
  18. TrueBit

    TrueBit Member

    Joined:
    21 Nov 2009
    Messages:
    71
    Likes Received:
    19
    Reputations:
    4
    ну как в твоём примере только сайт и другие данные свои вставил..
     
  19. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    Если есть:
    Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    Accept-Language: en,ru-RU;q=0.9,ru;q=0.8
    Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
    Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0


    То убирай это, если же нет -> код в студию, я больше не могу представить что у тебя не так
     
    1 person likes this.
  20. TrueBit

    TrueBit Member

    Joined:
    21 Nov 2009
    Messages:
    71
    Likes Received:
    19
    Reputations:
    4
    даже если брать тот код что ты выложил в посте #5315 там в мемо выводяться какие то иероглифы..
     
Thread Status:
Not open for further replies.