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

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

    Joined:
    25 May 2007
    Messages:
    99
    Likes Received:
    12
    Reputations:
    0
    и еще один вопрос, допустим я пишу программу, ввести например цифру одну из 5 тоесть либо 1 либо 2 и т.д до 5, ставлю условие,как сделать так, чтоб когда срабатывало else, было выведено то значение, котороя я вводил, тоесть я вписал 6, сработало елсе, ну например "введите цифру от 1 до 5 а не "N" " - так вот, n - это 6, а как сделать шоб оно выводило его, если пользователь напишет там 125 и т.д.
     
  2. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Это не форум экстрасенсов , иди учись правильно задавать вопросы..

    =========

    Там код чепуха полная...
     
    #2162 De-visible, 25 Oct 2008
    Last edited: 25 Oct 2008
  3. Sinay

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

    Joined:
    1 Sep 2007
    Messages:
    356
    Likes Received:
    365
    Reputations:
    20
    case of-оператор выбора,посмотри
     
  4. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    De-visible и не форум школы где учаться и указывают
     
  5. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Че то не могу вспомнить.. Вот мне в процессе выполнения надо создать новый компонент, будь то любой батон, или едит ..)
     
  6. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    Code:
    var button:TButton;
    begin
     button:=TButton.Create(self);
     with button do begin
      Top:=50;
      Left:=50;
      Visible:=true;
      Parent:=Form1;
      Caption:='button';
      Height:=70;
      Width:=70;
     end;
    end;
     
  7. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Знающие люди подскажите в чем моя ошибка?
    Пишу флудер для гостевухи... (особо ее не флудить... я так для набива рук написал)

    Это потоки:

    Code:
    procedure Fluder.Execute;
    var
     list:TStringList;
     a,b,c,d,e,r:string;
    begin
     randomize;
     a:='оаыве';
     b:='нецйг';
     c:='зъхлр';
     d:='кунуй';
     e:='иьпар';
     r:=a[Random(Length(a))]+b[Random(Length(b))]+d[Random(Length(c))]+e[Random(Length(e))]+c[Random(Length(c))];
     idhttp1.Create(nil);
     list:=TStringList.Create;
     list.Add('name='+r);
     list.Add('txt='+r);
     list.Add('send=1');
     IdHTTP1.Post('http://www.ko-luch.ru/cgi-bin/gbform.cgi',list);
     list.Free;
    end;
    
    procedure Fluder.IdHTTP1Redirect(Sender: TObject; var dest: String;
      var NumRedirect: Integer; var Handled: Boolean;
      var VMethod: TIdHTTPMethod);
    begin
     Handled:= TRUE;
    end;
    Это форма:

    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
     i,count:integer;
     Potoki:array of fluder;
    begin
     count:=strtoint(edit1.Text);
     SetLength(Potoki,count);
     for i:=0 to count-1 do
      begin
      Potoki[i]:=fluder.Create(true);
      Potoki[i].resume;
      Potoki[i].Priority:= tpLower;
      end;
    end;
    Ругаеться на строку idhttp1.Create(nil); (в потоках) когда я жмякаю на кнопку (на форме)

    ЗЫ особо не ругайте за мой тупой рандомайз/рандом
     
    #2167 diznt, 26 Oct 2008
    Last edited: 26 Oct 2008
  8. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    idhttp1:=idhttp1.Create(nil);
     
  9. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    Как в потоки передавать параметры?
    Что-то типа брутера, спамера
     
  10. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    W!z@rD не хочет...
    все такая же ошибка... даже делал idhttp1:=Tidhttp1.create(nil);
     
  11. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    попробуй без idhttp1:=Tidhttp1.create(nil);
     
  12. bons

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

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    а вот так: idhttp1:=Tidhttp1.create(self);
     
  13. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    bons аж не комплируеться
    cylaaaan смысла тода вообще нету....
     
  14. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    недавно прогу писал. Я лично не делал create(nil);
    просто бросил IdHTTP1 на форму
    и передаю параметры
    IdHTTP1.Post('',data,Adata);
     
  15. Joker-jar

    Joker-jar Elder - Старейшина

    Joined:
    11 Mar 2007
    Messages:
    581
    Likes Received:
    205
    Reputations:
    37
    Через глобальные переменные. Либо, если на API, то можно через указатель (параметр callback-функции)
     
  16. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    cylaaaan а мне надо создать!!1 то есть create а не хз как!
    Вообще кто не в курсе о чем я то не пишите и не засоряйте форум и мои мозги
     
  17. cremator (c)

    cremator (c) Elder - Старейшина

    Joined:
    20 Jun 2008
    Messages:
    258
    Likes Received:
    72
    Reputations:
    0
    Сделал программу которая решает анаграммы по словарю, т.е. ищет все слова с таким же набором букв. Теперь встала проблема, где найти словарь чтобы там было много слов ? То есть текстовый файл : одна строчка - одно слово. Если у кого есть скиньте плиз.
     
  18. nilux

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

    Joined:
    19 Aug 2005
    Messages:
    100
    Likes Received:
    33
    Reputations:
    0
    посмотри в разделе форумы- расшифровка хэшей, там найдёшь словарь
     
  19. cylaaaan

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

    Joined:
    31 Aug 2006
    Messages:
    0
    Likes Received:
    44
    Reputations:
    8
    >> Через глобальные переменные. Либо, если на API, то можно через указатель (параметр callback-функции)

    Я видел, что делали constructor для процедуры
     
  20. vid

    vid Member

    Joined:
    16 Aug 2006
    Messages:
    20
    Likes Received:
    5
    Reputations:
    0
    2diznt - код вообще не верный. много багов.
    Чтобы данные передавать сделай вот так к примеру:

    Code:
    unit threadHTTP;
    
    interface
    
    uses
      Classes, SysUtils, IdHTTP, Dialogs,HTTPApp;
    
    type
      TGrabThread = class(TThread)
      private
    
      protected
        procedure Execute; override;
      public
        http: TIdHTTP;
        url: string;
        html: string;
        count : Integer;
        ResponseCode : Integer;
        procedure Sync;
        constructor Create(Suspended: boolean);
      end;
    
    implementation
    Uses main;
    constructor TGrabThread.Create(Suspended: boolean);
    begin
    
      inherited Create(Suspended);
    
    end;
    
    procedure TGrabThread.Execute;
    begin
      http := TIdHTTP.Create(nil);
      http.ConnectTimeout := 30000;
      http.ReadTimeout := 30000;
      html := '';
      try // в треде делаем запрос к нашему урлу
        html:=http.Get(url);
      finally
        http.Free;
      end;
      Synchronize(Sync); // возвращаем результат в главный тред
    end;
    
    procedure TGrabThread.Sync;
    begin
      // Здесь у нас есть переменные url и html
      // делаем с ними что хотим
      // если html = '' then не удалось получить страницу
    end;
    
    end.
    
    
    Ну и это в основном потоке:
    Code:
        with TGrabThread.Create(true) do // создаём тред
        begin
          url:='http://www.google.ru';
          FreeOnTerminate := true;
          Count := 13;
          Resume; // запускаем тред
        end;
    
    
    Да и на блоге у меня много примеров многопоточного кода на дельфях. ;)
     
Thread Status:
Not open for further replies.