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

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Спасибо!
    Не подскажите если я запускаю главную программу(загрузчик) из под Администратора, то когда я запускаю дочерние приложения из него вот так они тоже имеют привилегии администратора?
    Code:
             ShellExecute(AutoRunners.Handle,'open', PChar(dirProgramm+'Handy\1.lnk'),nil,nil,SW_Normal);
    Так же нужна помощь.
    Задача перейти на вкладку Авто и нажать на Кнопку Запустить
    [​IMG]

    Пробую вот так

    Code:
    procedure TAutoRunners.btn1Click(Sender: TObject);
    var Hnd, HndBtn:HWND;
    begin
    Hnd:=FindWindow(nil,'FreeTMGameBot 0.1.2.2');
      if Hnd <> 0 then
      ShowMessage('Найдено главное окно')
      else
      ShowMessage('Не найдено главное окно');
      HndBtn := FindWindowEx(Hnd, 0, 'TabControl', 'Авто');
      if HndBtn <> 0 then
      ShowMessage('Найдено первое дочернее окно')
      else
      ShowMessage('Не найдено первое дочернее окно');
    //HndBtn:=FindWindowEx(Hnd,0,'Button','Авто');
    SendMessage (HndBtn, BM_Click, 0, 0);
    end;
    
    Пишет что дочернее окно не найдено.
    Хотя судя по исходнику http://www.sendspace.com/file/68ndlm
    Все идет именно в таком порядке. В чем я ошибся?
     
    #9281 Rastamanka, 15 Aug 2012
    Last edited: 15 Aug 2012
  2. Stanhack

    Stanhack New Member

    Joined:
    10 Aug 2012
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Нужно создать массив к значению каждого было прикреплено слово например
    Code:
    q:='Привет';
    z:='Добрый день';
    w:='Hi';
    e:='Пока';
    x:='До встречи';
    r:='bye';
    
    И потом создать процедуру поиска в Мемо
    Code:
    i:=0;
    randomize;
    for i to(Memo1.Lines.Count-1)do
    if pos(q or z,memo1.Lines[i])<>0 then
    q or z:=w;
    
    Чтобы процедура проверяла наличие текста на вид слова и заменяло его на другое.
    Помогите пожалуйста, ато не получается.
     
  3. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Подскажите как сохранить данные в реестр в двоичный параметр.
    Пробую так. Но записывается другое совсем.
    В str хочу указывать данные типа hex в этом же виде их сохранять.
    Code:
           
    str := '00 11 22';
    reg.WriteBinaryData('CaptionFont',  str, sizeof(str));
    
     
  4. alexey-m

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

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    Code:
    var
      reg: TRegistry;
      S: String;
      P: Pointer;
      cdLen: Integer;
    const
      data: array[0..5] of Byte = ($00,$11,$22,$33,$44,$55);
    begin
      reg:= TRegistry.Create;
      try
        reg.RootKey:= HKEY_CURRENT_USER;
        if reg.OpenKey('Software\MyRoot', True) then begin
    
          S:= #$00#$11#$22; P:= @S[1];
          cdLen:= Length(S);
          // если в качестве данных строка:
          reg.WriteBinaryData('myBinary', S[1], cdLen);
          // если через указатель на данные, то так:
          reg.WriteBinaryData('myBinaryPointer', P^, cdLen);
          P:= @data; cdLen:= sizeof(data);
          reg.WriteBinaryData('myBinaryData', P^, cdLen);
        end;
      finally
        reg.Free;
      end;
    end;
    
     
    #9284 alexey-m, 16 Aug 2012
    Last edited: 16 Aug 2012
  5. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    модуль DateUtils, функция DaysBetween
     
  6. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Код потока:
    PHP:
    while True do
       
    begin
         CS
    .Enter;
           
    CurrLnk := Sl[0];
             if 
    SL.Count 0
               then
                 begin
                   B 
    := False;
                   
    CS.Leave;
                   
    CS.Free;
                   Exit;
                 
    end;
           
    SL.Delete(0);
         
    CS.Leave;
    Так Создаю:

    PHP:
    procedure TForm1.Button2Click(SenderTObject);
    var 
    ArrThrd: Array[1..10of ParsThrd;
        
    iinteger;
    begin
    CS 
    := TCriticalSection.Create;
     for 
    := 1 to StrToInt(Edit3.Text) do
      
    begin
       ArrThrd
    [i] := ParsThrd.Create(false);
      
    end;

    end;
    При запуске к примеру 10 потоков, все 10 в первом проходе цыкла используют одно значение из SL, далее все идет нормально. Что не так?
    SL - TStringList
    CurrLnk - String

    ______

    Решил
     
    #9286 shadowrun, 23 Aug 2012
    Last edited: 23 Aug 2012
  7. Duskly

    Duskly Banned

    Joined:
    5 Jan 2012
    Messages:
    68
    Likes Received:
    2
    Reputations:
    -5
    как антикапчу вставить?
     
  8. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Выделяешь антикапчу, далее Ctrl+C, Ctrl+V. Все норм вставляется.

    P. S. http://antigate.com/?action=api
     
  9. accounts

    accounts New Member

    Joined:
    16 Oct 2011
    Messages:
    0
    Likes Received:
    4
    Reputations:
    10
    shadowrun, попробуйте так:

    Code:
    cs.enter;
    if sl.count <> 0 then
    begin
      currlnk := sl[0];
      sl.delete (0);
      cs.leave;
    end else
    begin
      cs.leave;
      // если поток последний - freeandnil (cs);
      exit;
    end;
    Если список большой, так:

    Code:
    cs.enter;
    c := sl.count;
    if c <> 0 then
    begin
      currlnk := sl[c - 1];
      sl.delete (c - 1);
      cs.leave;
    end else
    begin
      cs.leave;
      // если поток последний - freeandnil (cs);
      exit;
    end;
     
    #9289 accounts, 24 Aug 2012
    Last edited: 24 Aug 2012
    2 people like this.
  10. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    accounts, написано же:
    Описанная проблема могла быть тогда, например, когда CurrLnk была не локальной, а глобальной переменной.
     
  11. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Именно :cool:
     
  12. DEMONTER

    DEMONTER New Member

    Joined:
    10 May 2012
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    задание. Дан целочисленный массив А размером n. Построить массив В, со
    держащий элементы массива А, значение которых больше среднего арифмети
    ческого элементов массива А. Отсортировать массив В по возрастанию.

    собственно надо только: Построить массив В, со
    держащий элементы массива А, значение которых больше среднего арифмети
    ческого элементов массива А
    остальное понятно... Хелп ми гайс
     
  13. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    PHP:
    const 10;


    var 
    A: Array[1..nof real;
        
    B: Array[1..nof real;
        
    SrArfReal;
        
    iinteger;
        
    jinteger 0;
    begin
     Randomize
    ;
      for 
    := 1 to n do
       
    A[i] := Random(25);

     for 
    := 1 to n do
       
    SrArf := SrArf A[i];
     
    SrArf := SrArf n;

     for 
    := 1 to n do
      if 
    A[i] > SrArf
        then
           begin
             Inc
    (j);
             
    B[j] := A[i];
           
    end;


     for 
    := 1 to n do
      
    Writeln(A[i]:1:1);
      
    Writeln(SrArf:1:1);
     for 
    := 1 to j do
       
    Writeln(B[i]:1:1);
      
    Readln;
    end.
     
  14. MaxFast

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

    Joined:
    12 Oct 2011
    Messages:
    575
    Likes Received:
    149
    Reputations:
    94
    Как вычислить, счастливый билет или нет?
    Есть шестизначное число, допустим 123123, как мне проверить, равна ли правая сторона левой, и вывести YES при условии что номер счастливый or NO если обыкновенный.
     
  15. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Как вариант IntToStr, copy.
    Конвертируем число в строку->копируем 0-2 символ, 3-5 символ, сравниваем.
     
  16. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Либо битовыми операциями...
     
  17. logger

    logger New Member

    Joined:
    15 Jan 2010
    Messages:
    32
    Likes Received:
    3
    Reputations:
    0
    Запущенный поток управляет цветом Panel1, рандомно меняя его. Нужно что бы при показе определенного цвета сделать запуск секундомера и считать секунды и мили секунды пока не нажмут кнопку. Так вот как создать этот секундомер и как синхронизировать нажатие кнопки с ним.
     
  18. logger

    logger New Member

    Joined:
    15 Jan 2010
    Messages:
    32
    Likes Received:
    3
    Reputations:
    0
    Здравствуйте, почему код:
    PHP:
    var
    timeTSystemTime;
    begin
    Memo1
    .Lines.Add(IntToStr(Time.wMilliseconds));
    Memo1.Lines.Add(IntToStr(Time.wSecond));
    end;
    Выдает:
    PHP:
    73
    42775
    Даже если я 30 раз нажму на кнопку.
     
  19. ZdezBilYa

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

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    GetSystemTime(time); забыли
     
  20. logger

    logger New Member

    Joined:
    15 Jan 2010
    Messages:
    32
    Likes Received:
    3
    Reputations:
    0
    да разобрался уже:

    PHP:
    var
    timeTSystemTime;
    begin
    GetSystemTime
    (time);
    Memo1.Lines.Add('День-'+IntToStr(time.wDay));
    Memo1.Lines.Add('Час-'+IntToStr(time.wHour));
    Memo1.Lines.Add('Минуты-'+IntToStr(time.wMinute));
    Memo1.Lines.Add('Секунды-'+IntToStr(time.wSecond));
    Memo1.Lines.Add('Миллисекунды-'+IntToStr(time.wMilliseconds));
     
Thread Status:
Not open for further replies.