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

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    как можно подсчитать строчки в memo? (текст туда добавляется посредством OpenDialog)
     
    1 person likes this.
  2. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    Code:
     
    function TForm1.ByName(FieldName: string; Value: string): Boolean;
     var
       i, j: Integer;
       FormItem: Variant;
    begin
     Result := False;
    if WebBrowser.OleObject.Document.all.tags('FORM').Length = 0 then
     begin
       Exit;
     end;
    for I := 0 to WebBrowser.OleObject.Document.forms.Length - 1 do
     begin
       FormItem := WebBrowser.OleObject.Document.forms.Item(I);
       for j := 0 to FormItem.Length - 1 do
       begin
         try
         if FormItem.Item(j).Name = FieldName then
           begin
             if Value = 'Click' then
               FormItem.Item(j).Click
             else
               FormItem.Item(j).Value := Value;
             Result := True;
           end;
         except
           Exit;
         end;
       end;
     end;
    end;
    
    аналогично можеш сделать TForm1.ByValue и TForm1.ByScr

    Вызов
    ByName('login', 'Товой логин');
    ByName('pass', 'Твой пароль');
    ByName('submit', 'Click'); //Клик по кнопке
    {
    реализуй ByScr и вызывай
    ByScr('http://', 'Click')
    }
    ЗЫ. Юзайте поиск, я уже как минимум уже 2 раза отвечал на такие вопросы.
     
    1 person likes this.
  3. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    Nightmarе спс
     
    #3663 Nizhegorodets, 25 Jun 2009
    Last edited: 25 Jun 2009
  4. Areeeees

    Areeeees New Member

    Joined:
    23 Jun 2009
    Messages:
    9
    Likes Received:
    0
    Reputations:
    0
    dos999, спасибо! Ну как начал ковыряться возникли вопросы... Когда действие происходит в мэим фрейме все прекрасно работает, но если поля находятся не в мэин фрейме то почему-то то, что нужно туда не втыкается...
    Этот случай сканирует всю страницу, или только мэин фрейм? Или мб я чего туплю...
    Вот из кода фрейма:
    Code:
    <input onkeyup=\"_feProc(0)\" size=2 name=\"gte\" type=\"text\" value=\"0\" class=\"field\">
    
    Или мб тут что нить особенное....
    Предыдущий код выполняется внутри джава скрипта:
    Code:
    <script language="JavaScript"> тут задаются поля ввода и кнопки </script>
    
    Вот что тут не так?....
     
  5. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    В IE или Opera при нажатии клавиши Tab выделяется следующий элемент странички
    типа нажал выделилось поле ввода , еще раз, выделилась кнопка и т.д.
    Как реализовать тоже самое в компоненте WebBrowser, а то делаю браузер и хочу внести в него такую фуннкцию...
    ------------------------------------------------------------
    все разобрался нужно просто щелкнуть на WebBrowser1 и Tab начинает работать,но тут же появился новый вопрос можно ли как нибудь активировать WebBrowser не нажимая на него ЛевКнопкуМыши???
    пробовал вот так
    WebBrowser1.setfocus;
    но ничего не получилось ,Tab все равно не работает...
     
    #3665 Nizhegorodets, 25 Jun 2009
    Last edited: 25 Jun 2009
  6. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    Areeeees Кинь линк на страничку
     
  7. zeppe1in

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

    Joined:
    12 Jul 2006
    Messages:
    343
    Likes Received:
    66
    Reputations:
    18
    Nizhegorodets может Sendmessage BM_CLICK, хотя по идее и сетфокус должен работать.
     
  8. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    как сэмулировать нажатие на клавишу Enter?
    вот например нажимаем на Tab
    keybd_event(VK_TAB, 0, 0, 0);
    а какой код для enter?
     
    1 person likes this.
  9. Vish

    Vish Banned

    Joined:
    12 Jun 2009
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    Code:
    procedure TForm1.Button2Click(Sender: TObject);
    begin
     Timer1.Enabled:=true;
    Timer1.Interval :=60;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    ProgressBar1.Position := ProgressBar1.Position + 1;
    end;
    
    1)подскажите как сделать, чтобы по оканчанию загрузки TProgressBar выполнялась команда MessageBox ?

    2)Есть Label, Button. Как сделать, чтобы при нажатии на батон, происходила проверка текста в лейбле? ну если в лейбле например введен определённый текст, который я ввёл в коде проги, то при нажатии на батон, вылетит сообщение "Верно", а если текст иной, то вылетит "Не верно" ?
     
    #3669 Vish, 26 Jun 2009
    Last edited: 26 Jun 2009
  10. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    VK_RETURN


    >>1)подскажите как сделать, чтобы по оканчанию загрузки TProgressBar выполнялась команда MessageBox ?

    это не команда
    вот код в таймере:
    PHP:
    ProgressBar1.StepIt;
    if (
    ProgressBar1.Position ProgressBar1.Maxthen ShowMessage('a');
    >>2)Есть Label, Button. Как сделать, чтобы при нажатии на батон, происходила проверка текста в лейбле? ну если в лейбле например введен определённый текст, который я ввёл в коде проги, то при нажатии на батон, вылетит сообщение "Верно", а если текст иной, то вылетит "Не верно" ?

    PHP:
    if (Label1.Caption 'abc'then ShowMessage('true') else ShowMessage('false');
     
    #3670 W!z@rD, 26 Jun 2009
    Last edited: 26 Jun 2009
  11. Vish

    Vish Banned

    Joined:
    12 Jun 2009
    Messages:
    8
    Likes Received:
    1
    Reputations:
    0
    PHP:
    ProgressBar1.StepIt;
    if (
    ProgressBar1.Position ProgressBar1.Maxthen ShowMessage('a');  
    если добавляю такой код в таймер, то ProgressBar начинает бегать с другой скоростью + доходит до конца и начинается всё с начала + сообщение 'a' вылетает постояно, не возможно закрыть =**

    как это исправить? нужно чтобы просто ProgressBar дошёл до конца и вылетело сообщение и всё
     
  12. Тихий

    Тихий New Member

    Joined:
    4 Oct 2008
    Messages:
    22
    Likes Received:
    2
    Reputations:
    0
    Почему не работает код из этой статьи: http://www.xakep.ru/magazine/xA/050/052/2.asp
    У меня не работает вот эта строка
    Code:
    lbAddConnect.Items.Add(AThread.Connection.Binding.PeerIP); // определение IP подсоединившегося
     
  13. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    шедевр, а Timer1.Enable:=False; добавить никак?
     
  14. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    всем привет! есть парочка вопросов!
    1. возможно ли в программе сделать горячии клавиши типа cntrl+a+s+e или cntrl+win+f+i
    2. если создавать форму на winapi то как или чем создать ресурс с формой и компонентами на ней?
    3. есть ли api для работы с процессами(чтоб узнать инфу о процессе)?
    4. вопрос неоднакратно поднимался но ответов ненаходил, как безепасно отключить НУЖНОЕ USB устройство в частности флешку! желательно без использования реестра!
    всем ответившим заранее спасибо!
     
  15. s0l_ir0n

    s0l_ir0n Active Member

    Joined:
    14 Mar 2009
    Messages:
    399
    Likes Received:
    144
    Reputations:
    18
    1 - да
    2 - блокнот
    3 - есть
    4 - хз :cool:
     
  16. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    s0l_ir0n
    улыбнуло . а можно по подробней?
     
  17. Тихий

    Тихий New Member

    Joined:
    4 Oct 2008
    Messages:
    22
    Likes Received:
    2
    Reputations:
    0
    1) Насчёт горячих клавиш. У пунктов меню MainMenu есть такое свойство: ShortCut. Вот там и выбираешь горячие клавиши. Можно ещё в св-ве Caption перед нужной буквой поставить знак &. Тогда при нажатии Alt+той буквы(которая идёт после &) будет вызываться эта команда. Вот сделал исходник: http://webfile.ru/3739845
     
  18. transserg

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

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    Тихий спасибо за пример но не много не то =) а если программа свернута и ее окно не активно то такие клавиши не сработают! поэтому и нужно использовать глобальные клавиши
    вот к примеру клавиши
    Code:
     const
    //----------------------------------------------------------------------------------------
       MOD_ALT = 1;
       MOD_CONTROL = 2;
       MOD_SHIFT = 4;
       MOD_WIN = 8;
    //----------------------------------------------------------------------------------------
    
    регистрируем так
    Code:
            id:=GlobalAddAtom('HotKey');
            RegisterHotKey(hWnd, id,   MOD_ALT+MOD_CONTROL,VK_A);
    
    мы зарегистрировали глобальную CNTRL+ALT+A
    а если написать так
    Code:
            id:=GlobalAddAtom('HotKey');
            RegisterHotKey(hWnd, id,   MOD_ALT+MOD_CONTROL,VK_A+VK_B);
    
    VK_A=65;
    VK_B=66;
    VK_A+VK_B=131
    код 131 соответствует клавише VK_F20 = 131 (ток на клаве что то нет ее =) )
    тем самым получается что просто так не получится зарегистрирова горячуюю клавишу вида CNTRL+ALT+A+R+(еще n'е количество букв), вопрос в том реально ли это сделать без "изврата"
     
    #3678 transserg, 27 Jun 2009
    Last edited: 27 Jun 2009
  19. MAESTRO

    MAESTRO New Member

    Joined:
    15 Oct 2007
    Messages:
    14
    Likes Received:
    2
    Reputations:
    0
    Доброго времени суток всем. Помогите разобраться, люди добрые=) Вобщем есть форма, на ней кнопка одна и лейбл один. Мне нужно, чтоб при нажатии на кнопку выводилось в лейбл первое значение массива, при повторном нажатии второе значение и так далее. Массив заранее уже заполнен. У меня постоянно выводится только последнее значение, при этом использую for. Заранее благодарю за помощь.
     
  20. H1Z

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

    Joined:
    23 Mar 2007
    Messages:
    103
    Likes Received:
    61
    Reputations:
    6
    in button click:
    .....
    i:=i+1;
    lblLabel.caption:=IntToStr(mas);
    .....
    where i:integer; and mas your array =)
     
Thread Status:
Not open for further replies.