Unit1.pas(658) : Mетод Show не является статическим для типа Form3 среда .net, делаю через конструктор
как можно передать значение textbox из одной формы в другую? данные вводятся в текстбокс на первой форме, после чего по нажатию кнопки открывается вторая форма со вторым текстбоксом, в котором должно оказаться значение из текстбокса в первой форме. pascal abcnet
Пытаюсь написать консольное приложение и есть вопрос есть функция zip, вызываю ее ZipForge(path_zip,files); и на этом останавливается продолжение работы кода. Почему?
Видимо потому, что приложение консольное, а 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.
Рекурсивный поиск ссылок на сайте Еще вопрос: нашел код хочу переделать под себя суть, собирает все ссылки, типа нашел одну переходим по ней ищем дальше и т.д пока не проверим все и выводим в listbox. но здесь загвоздка , к примеру нашел f acebook.com и давай шерстить его, вообщем не могу сделать фильтр чтоб тока свой хост сканировал.(пробовал Pos_ом не выходит) Подскажите куда копать...
if Terminated then exit; правильнее поставить внутри циклов по i и j, чтобы выполнялась проверка запроса остановки потока. Ставить его в самом начале после while нет никакого смысла.
Потоки Еще вопрос про потоки. Создал динамические потоки,заданные в Edit,допустим 100 потоков. создал И как их остановить? Может как то через ThreadID но как сделать. пробовал так ссылка не получается. подскажите куда копать.
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;
Все вроде поправил. Все работает спасибо... но как высвободить потоки (ссори за русский) aThreads[Thread]:= nil; так не то.
Именно, это не то. Так вы просто присвоите нулевой указатель переменной. Освобождать так: Code: aThreads[Thread].Free;
Вообщем останавливает нормально но когда закрываю форму ошибка 'violation' я думал потому что не освободил поток а Code: aThreads[Thread].Free; тоже дает ошибку 'violation'