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

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    :D Зачем мне Sleep когда есть TTimer только всё равно работает программа неправильно ну как я и говорил через раз !
    Блин неужто чтобы вызвать соединение по умолчанию программно другого выхода нет ?
     
  2. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    У вас товарищ код очень кривой, но тем не менее код
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      s: PChar;
      h: HWND;
    begin
    ShellExecuteA(0,'open','rasphone.exe',nil,nil, 0);
    h:=0;
    while h=0 do begin
    h  :=  FindWindow('#32770','Ñåòåâûå ïîäêëþ÷åíèÿ');
    application.ProcessMessages;
    end;
    SendMessage(h,  WM_SYSCOMMAND,  SC_HOTKEY,  h);
       keybd_event(VK_Return, 0, 0, 0);
       keybd_event(VK_Return, 0, KeyEventF_KeyUp, 0);
       Sleep(100);
       keybd_event(VK_Return, 0, 0, 0);
       keybd_event(VK_Return, 0, KeyEventF_KeyUp, 0);
       ShowWindow(h,0);
    end;
    end.
    у меня сработал 20 из 20 раз.
     
    #3442 s0l_ir0n, 19 May 2009
    Last edited: 19 May 2009
    1 person likes this.
  3. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    Для Huligan1

    Попробуйте пожалуйста так:

    PHP:
    uses shellapi
    ...
    ...
    // Коннект
    procedure TForm1.Button1Click(SenderTObject); 
    var  
      
    cmdparfildirPChar
    begin 
      cmd 
    := 'open'
      
    fil := 'rasdial.exe'
      
    par := PChar(edtEntry.Text ' ' edtUser.Text ' ' edtPass.Text); 
      
    dir := 'C:'
      
    ShellExecute(Self.HandlecmdfilpardirSW_SHOWMINNOACTIVE); 
    end

    ...
    ...
    // Дисконнект
    procedure TForm1.Button2Click(SenderTObject); 
    var  
      
    cmdparfildirPChar
    begin 
      cmd 
    := 'open'
      
    fil := 'rasdial.exe'
      
    par := PChar(edtEntry.Text ' /DISCONNECT'); 
      
    dir := 'C:'
      
    ShellExecute(Self.HandlecmdfilpardirSW_SHOWMINNOACTIVE); 
    end
     
  4. f0rward

    f0rward New Member

    Joined:
    26 Oct 2008
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    Имеется вопрос по работе с потоками, функция BeginThread. Повторюсь, именно BeginThread, а не класс TThread.
    Нужно организовать цикл, который будет создавать n потоков и будет выполнять функцию с теми или иными параметрами.
    Через TThread это выглядит вот так :
    Code:
    ...
    var
      a:array[1..250000] of TNewThread;
    begin
      ...
      for i:=1 to thr do begin
        for j:=0 to source.Count -1 do begin
          a[i]:=TNewThread.Create(true);
          a[i].FreeOnTerminate:=true;
          a[i].Priority:=tpLOWEst;
          a[i].LoginTH:=copyLogin(Source.Strings[j]);
          a[i].passTH:=copyPass(Source.Strings[j]);
          a[i].Resume;
          application.ProcessMessages;
          if Application.Terminated then break;
          if stop then break;
        end;
      ... 
      end;
      ...
    
    Требуется это переделать под BeginThread().
    И вопрос по той же теме : как после этого по нажатии на кнопку завершить все потоки, используя endthread() ?
     
  5. Huligan1

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    Flame of Soul это слишком мудрённо но всё равно спасибо !

    s0l_ir0n Огромное тебе спасибо просто незнал что можно найти окно по названию в проводнике !=)
     
  6. a1t

    a1t New Member

    Joined:
    8 May 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    рега

    нужна помощь
    в общем во время запуска программы чтобы выходило окошко с вводом имени и пароля, логин и пароль должен храниться в проге в виде текстовика и если он совпадает то можно продолжить работу, если нет то автоматический выход
    заранее спс
     
  7. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    ы

    http://sderni.ru/33604
     
  8. Huligan1

    Huligan1 New Member

    Joined:
    4 Mar 2009
    Messages:
    26
    Likes Received:
    2
    Reputations:
    0
    :D А что составит труда выдернуть твой пасс через restorator ну максимум olly dbg
     
  9. Mosvit

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

    Joined:
    5 Mar 2007
    Messages:
    86
    Likes Received:
    16
    Reputations:
    1
    Как в делфи можно проверить существует ли файл по адрессу URL или нет?

    Нужно для проверки обновлений программы. При открытии приложения, происходит проверка существования "http://site.ru/new1.rar", если существует, то вывести сообщение со ссылкой, если нет, то ничего не делать и продолжить работу приложения.
     
  10. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Indy
     
    1 person likes this.
  11. Mosvit

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

    Joined:
    5 Mar 2007
    Messages:
    86
    Likes Received:
    16
    Reputations:
    1
    А как сам код будет выглядедть?
     
  12. f0rward

    f0rward New Member

    Joined:
    26 Oct 2008
    Messages:
    10
    Likes Received:
    2
    Reputations:
    0
    Как вариант использовать API-функцию IsValidUrl из модуля UrlMon. Смотри MSDN.
     
  13. Flame of Soul

    Flame of Soul Elder - Старейшина

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    Данная функция позволяет Вам проверить существование определённого адреса(URL) в интернете. URL может быть как с префиксом http:// так и без него - эта функция добавляет префикс http:// если он отсутствует (необходимо для функции internetOpenUrl которая так же поддерживает FTP:// и gopher:// Эта функция проверяет только два возвращаемых кода '200'(ОК) или '302' (Редирект), но Вы можете заставить проверять функцию и другие коды. Для этого достаточно модифицировать строчку "result := ".

    PHP:
    uses wininet;

    function 
    CheckUrl(urlstring): boolean;
    var
      
    hSessionhfilehRequesthInternet;
      
    dwindexdwcodelendword;
      
    dwcode: array [1..20of char;
      
    respchar;
    begin
      
    if pos('http://'lowercase(url)) = 0 then
        url 
    := 'http://'+url;
      
    Result := false;
      
    hSession := InternetOpen('InetURL:/1.0'INTERNET_OPEN_TYPE_PRECONFIGnilnil0);
      if 
    assigned(hsessionthen
      begin
        hfile 
    := InternetOpenUrl(hsessionpchar(url), nil0INTERNET_FLAG_RELOAD0);
        
    dwIndex := 0;
        
    dwCodeLen := 10;
        
    HttpQueryInfo(hfileHTTP_QUERY_STATUS_CODE, @dwcodedwcodeLendwIndex);
        
    res := pchar(@dwcode);
        
    result := (res '200') or (res '302');
        if 
    assigned(hfilethen
          InternetCloseHandle
    (hfile);
        
    InternetCloseHandle(hsession);
      
    end;
    end;
     
  14. МongBa†

    МongBa† Member

    Joined:
    12 May 2009
    Messages:
    66
    Likes Received:
    12
    Reputations:
    0
    ViP-K1LLeR
    Code:
    var str1,str2,res:string;
        i1,i2:integer;
        add:boolean;
    begin
     str1:='123456543';
     str2:='1234567890';
     res:='';
     for i2:=1 to length(str2) do
     begin
      add:=true;
      for i1:=1 to length(str1) do if str2[i2]=str1[i1] then add:=false;
      if add then res:=res+str2[i2];
     end;
     writeln(res);
     readln;
    end.
     
    1 person likes this.
  15. DTW

    DTW Banned

    Joined:
    11 May 2008
    Messages:
    221
    Likes Received:
    52
    Reputations:
    11
    Code:
    
    program case_  ;
    
     uses crt;
    
     type Coms=(hi,go);
    
     var a:Coms;
         b:byte;
    
    
    BEGIN
    
     clrscr;
    
      readln(); { Как ввести строку на проверку }
    
    {  
     readln(b);
    
    case b of
    
      1: writeln('Welcome');
    
      2: writeln('Look out');
    
      3: writeln('he-he');
    
      4: writeln('Bye');
    
    
      else
            writeln('Not here');
      end;
    
    }
    
       case a of
    
       hi: writeln('Welcome');
    
       go: writeln('Look out');
       else
       writeln('Error');
    
       end;
    
     readln;
    
    END.
    
    
    Числом вводить все понятно

    как сделать чтоб оператор case выдавал варианты из введеного слово ?
     
  16. МongBa†

    МongBa† Member

    Joined:
    12 May 2009
    Messages:
    66
    Likes Received:
    12
    Reputations:
    0
    Case со словами не работает, if-ками решай )
    можно поизвращаццо с array [0..N] of string, в цикле for искать значение = введенному и передавать ИД case-у , но это реально изврат )
     
    1 person likes this.
  17. diznt

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

    Joined:
    31 Jan 2008
    Messages:
    432
    Likes Received:
    164
    Reputations:
    -19
    Если в цикле прописать "exit;" (без ковычек) то цикл будет начинаться заного после этой команды?
     
  18. Hellsp@wn

    Hellsp@wn Elder - Старейшина

    Joined:
    29 Apr 2007
    Messages:
    401
    Likes Received:
    153
    Reputations:
    48
    diznt
    нет, можно написать continue и тогда цикл пойдёт дальше.
     
  19. Djezul

    Djezul New Member

    Joined:
    8 Dec 2008
    Messages:
    43
    Likes Received:
    2
    Reputations:
    0
    народ помогите решить 3 задачи на паскале, писал в соседнем топике но там никто не отвечает уже 3 дня, готов даже заплатить (просто срочно нужно до завтра), вот задачи:
    1. Дан текстовый файл с расширением inp, в котором каждая строка содержит последовательность действительных чисел. Выяснить, будут ли последовательности возрастающие. Результат анализа (Да или Нет) записать в выходной файл с расширением out (построчно).
    2. В данной действительной квадратной матрице порядка n отсортировать строку, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственен. Во входном файле с расширением mas, в первой строке дан размер матрицы n, а в следующих n строках и n столбцах записаны элементы матрицы. Результат выполнения программы вывести на экран.
    3. Создать типизированный файл Task5.txt с возможностью добавления, содержащий сведения о веществах: название вещества (текст(10), его удельный вес (действительное) и проводимость (проводник, полупроводник, изолятор) (текст[13]). Необходимо создать отчет (использовать подпрограммы):
    a) выписать удельные веса и названия всех полупроводников и вывести на экран с заголовком "Полупроводники";
    b) выбрать данные о проводниках с удельным весом не более 10 и вывести на экран после информации о полупроводниках, вставив заголовок "Проводники";
    c) вывести все содержимое типизированного файла в текстовый файл Task5.sol.
    Пример входного файла Task5.txt:
    Фарфор 2.3 изолятор
    Железо 7.9 проводник
    Золото 19.3 проводник
    Кремний 2.3 полупроводник
    Железо 7.9 проводник
    Стекло 2.5 изолятор
     
  20. AHTOLLlKA

    AHTOLLlKA Member

    Joined:
    1 Feb 2005
    Messages:
    225
    Likes Received:
    35
    Reputations:
    22
    подскажите...

    допустим есть файл (c:\temp\12312.tmp)
    который занят моей программой...
    и как нить можно узнать если какой либо другой процес попытается его
    открыть, изменить, удалить ???
     
Thread Status:
Not open for further replies.