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

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Unit1.pas(658) : Mетод Show не является статическим для типа Form3
    среда .net, делаю через конструктор
     
    #9701 Compton, 21 Nov 2014
    Last edited: 21 Nov 2014
  2. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    637
    Likes Received:
    246
    Reputations:
    42
    Delphi .net - это особый вид извращения?)
     
  3. BlackIce

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

    Joined:
    10 Jan 2013
    Messages:
    100
    Likes Received:
    31
    Reputations:
    27
    implementation
     
  4. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    как можно передать значение textbox из одной формы в другую?
    данные вводятся в текстбокс на первой форме, после чего по нажатию кнопки открывается вторая форма со вторым текстбоксом, в котором должно оказаться значение из текстбокса в первой форме.
    pascal abcnet
     
    #9704 Compton, 28 Nov 2014
    Last edited: 28 Nov 2014
  5. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Form2.OwnTextBox.Text := ThisTextBox.Text;
     
  6. Compton

    Compton Member

    Joined:
    31 Jan 2010
    Messages:
    290
    Likes Received:
    25
    Reputations:
    0
    Ошибка: textbox2 не объявлен в типе Form2
     
    #9706 Compton, 4 Dec 2014
    Last edited: 4 Dec 2014
  7. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Это нужно в коде первой формы писать перед вызовом второй.
     
  8. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Пытаюсь написать консольное приложение и есть вопрос
    есть функция zip, вызываю ее ZipForge(path_zip,files);
    и на этом останавливается продолжение работы кода. Почему?
     
  9. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Видимо потому, что приложение консольное, а ZipForge1 компонент VLC, так что правильнее как-то так будет:
    Code:
    program ZipFilesByMask;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils, ZipForge, Classes;
    
    var
      archiver : TZipForge;
    
    begin
      // Create an instance of the TZipForge class
      archiver := TZipForge.Create(nil);
      try
      with archiver do
      begin
        // Set the name of the archive file we want to create
        FileName := 'C:\test.zip';
        // Because we create a new archive,
        // we set Mode to fmCreate
        OpenArchive(fmCreate);
        // Set base (default) directory for all archive operations
        BaseDir := 'C:\';
        // Add files to the archive by mask
        AddFiles('*.exe');
        CloseArchive();
      end;
      except
      on E: Exception do
        begin
          Writeln('Exception: ', E.Message);
          // Wait for the key to be pressed
          Readln;
        end;
      end;  
    end.
     
  10. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Все супер.. Спасибо.
    Сделал так все работает :D
     
  11. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Рекурсивный поиск ссылок на сайте

    Еще вопрос:
    нашел код хочу переделать под себя
    суть, собирает все ссылки, типа нашел одну
    переходим по ней ищем дальше и т.д пока не проверим
    все и выводим в listbox.
    но здесь загвоздка , к примеру нашел f acebook.com и
    давай шерстить его, вообщем не могу сделать фильтр
    чтоб тока свой хост сканировал.(пробовал Pos_ом не выходит)
    Подскажите куда копать...
     
    #9711 vasykas, 15 Jan 2015
    Last edited: 17 Jan 2015
  12. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Потоки

    При нажатии на кнопку стоп не могу корректно завершить поток.
    кто что может подсказать.
     
    #9712 vasykas, 23 Jan 2015
    Last edited: 23 Jan 2015
  13. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    637
    Likes Received:
    246
    Reputations:
    42
  14. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    if Terminated then exit; правильнее поставить внутри циклов по i и j, чтобы выполнялась проверка запроса остановки потока. Ставить его в самом начале после while нет никакого смысла.
     
    1 person likes this.
  15. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Потоки

    Еще вопрос про потоки.
    Создал динамические потоки,заданные в Edit,допустим 100 потоков.
    создал
    И как их остановить?
    Может как то через ThreadID но как сделать.
    пробовал так ссылка не получается.
    подскажите куда копать.
     
  16. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    1. Не очень понятно, для чего в конце за циклом Thread := pot;
    2. По-хорошему, нужно завести глобальный массив, в который вы будете записывать ранее созданные объекты (!) потоков (TScThread - это объект).

    Т.е. как-то так:
    Code:
    var
      // это лучше объявить глобально
      aThreads: Array of TScThread;
    begin
      // ... предыдущий код
      SetLength(aThreads, pot); // устанавливаем длину массива
      for Thread:=1 to pot do
        aThreads[Thread] := TScThread.Create(False); // запоминаем созданный объект
    Когда надо завершить все потоки:
    Code:
    begin
      for Thread:=1 to pot do
        // посылаем запросы завершения всем созданным потокам
        aThreads[Thread].Terminate;
     
  17. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    И ещё, массив индексируется с нуля, поэтому кое-что в коде нужно будет поправить.
     
  18. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Все вроде поправил.
    Все работает спасибо...
    но как высвободить потоки (ссори за русский)
    aThreads[Thread]:= nil; так не то.
     
    #9718 vasykas, 31 Jan 2015
    Last edited: 31 Jan 2015
  19. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Именно, это не то. Так вы просто присвоите нулевой указатель переменной.

    Освобождать так:
    Code:
    aThreads[Thread].Free;
     
  20. vasykas

    vasykas Banned

    Joined:
    7 Mar 2011
    Messages:
    963
    Likes Received:
    137
    Reputations:
    37
    Вообщем останавливает нормально но когда
    закрываю форму ошибка 'violation'
    я думал потому что не освободил поток а
    Code:
    aThreads[Thread].Free;
    тоже дает ошибку
    'violation'
     
Thread Status:
Not open for further replies.