[ 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. 12usver12

    12usver12 Elder - Старейшина

    Joined:
    12 Dec 2007
    Messages:
    50
    Likes Received:
    9
    Reputations:
    0
    strtofloat , floattostr тебе в помощь
     
  2. Ergoproxy

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

    Joined:
    18 Jan 2008
    Messages:
    248
    Likes Received:
    155
    Reputations:
    45
    У меня были вроде где-то сорцы калькуля сам когда-то писал, напиши вечером в ЛС тебе скину, ЗЫ щя не могу просто на работе(
     
  3. FIND_ERROR

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

    Joined:
    30 Apr 2007
    Messages:
    70
    Likes Received:
    14
    Reputations:
    0
    Taktik
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
     begin
      e:=StrToReal(Edit1.Text, 3);
      p:=StrToReal(Edit2.Text, 3);
      sum:=e+p;
      Edit3.Text:=RealToStr(sum, 3);
     end;
    
    Вобщем, насколько я знаю, в функциях RealToStr и StrToReal есть два параметра:
    1) переменная для преобразования
    2) число знаков после запятой

    p.s. код не проверял и возможно ошибаюсь писал на память Delphi под рукой нет.
     
  4. z01b

    z01b Муджахид

    Joined:
    5 Jan 2007
    Messages:
    494
    Likes Received:
    382
    Reputations:
    22
    увы ты ощибаешся, такой ф-ции - нету и не может быть. Для выполнения задачи ТС нужно использовать floattostr strtofloat ...

    Добавлено
    Такой ф-ций нету в стандартной Sysutils.dcu
     
    #1844 z01b, 15 Jul 2008
    Last edited: 15 Jul 2008
    1 person likes this.
  5. Dober'man

    Dober'man Banned

    Joined:
    16 Jul 2007
    Messages:
    70
    Likes Received:
    94
    Reputations:
    -8
    Почему???)))))) А модуль если сделать?!?!?! =)
    Ток зачем??? =)

    Taktik,
    Программы от скуки
     
    1 person likes this.
  6. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Зачем изобретать велосипед??? z01b правильно сказал)
     
    3 people like this.
  7. W!z@rD

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

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    ProgressBar1.Max:=source.Count;
    if source.Count>0 then
    begin
    ...
    ProgressBar1.StepIt;
    end;

    типа того, если я еще не забыл, то StepIt это инкремент на единицу...
     
    1 person likes this.
  8. dos999

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

    Joined:
    15 Feb 2008
    Messages:
    137
    Likes Received:
    24
    Reputations:
    0
    после ProgressBar1.StepIt; может портебоваться ещё вставить
    Application.ProcessMessages; чтоб форма перересовывалась
     
  9. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    Да не, просто парень напутал, на самом деле есть старая паскалевская процедура Str в модуле System.dcu, вот собсна из справки самой делфи:
    Code:
    Delphi syntax:
    
    procedure Str(X [: Width [: Decimals ]]; var S);
    
    Description
    
    In Delphi code, Str converts X to a string representation 
    according to the Width and Decimals formatting 
    parameters. The effect is like a call to Write except the 
    resulting string is stored in S instead of being written to 
    a text file.
    
    X is an integer-type or real-type expression. Width and 
    Decimals are integer-type expressions. S is a string-type 
    variable or a zero-based character array variable if 
    extended syntax is enabled.
    
    а вот StrToReal действительно я не знаю, это FloatToStr нада юзать.

    Taktik, делай так:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
     begin
      e:=StrToFloat(Edit1.Text);
      p:=StrToFloat(Edit2.Text);
      sum:=e+p;
      Str(sum:3, x);// отображает три символа после плавающей запятой
      Edit3.Text := x;
     end;
    
     
    #1849 t04, 18 Jul 2008
    Last edited: 18 Jul 2008
  10. warlok

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

    Joined:
    17 Feb 2008
    Messages:
    328
    Likes Received:
    142
    Reputations:
    81
    ребят раскажите как в delphi 7 добавить сылку на модуль в определеном разделе.
    Если можно то со скринами чтоб попонятней было , заранее сенкс)
     
  11. Flame of Soul

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

    Joined:
    25 May 2007
    Messages:
    185
    Likes Received:
    146
    Reputations:
    45
    Немного не поняла вопроса.

    1) Если тебе надо подключить дополнительный модуль, то прописываешь его в uses в самом верху у своей программы.

    2) А если надо добавить модуль в сам Делфи то "Component" --> "Install Component" --> Выбираешь компонент и жмешь ок --> "Жмякаешь на Compile а потом на Install"

    3) Чтобы поместить в определенный раздел юзай "Component" --> "Configure Palette или Panelle"

    Точно второй вариант не помню, но даже если и отличается то только словами, наврятли что то я пропустила.

    PS: Правильный вопрос - это половина ответа
     
    #1851 Flame of Soul, 18 Jul 2008
    Last edited: 18 Jul 2008
    1 person likes this.
  12. warlok

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

    Joined:
    17 Feb 2008
    Messages:
    328
    Likes Received:
    142
    Reputations:
    81
    Flame of Soul о я догнал))) пасиба мне надо было прописать в верху программы)
    Пшол я дальше учебник мучать :)
     
    1 person likes this.
  13. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    warlok
    в папке Projects есть папка Bpl кинь модуль в нее или кинь модуль в папку с исходником, в разделе uses напиши название модуля. только надо без расширения писать имя файла модуля.
     
    #1853 t04, 18 Jul 2008
    Last edited: 20 Jul 2008
  14. ДЖО

    ДЖО New Member

    Joined:
    23 May 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    народ, помогите пожалуйста....есть задание: Отделите корни уравнения графически и уточните один из них методом хорды с точностью до 0,001.
    уравнение: х+lgx=0.5

    может кто поможет с алгоритмом?
     
  15. Dober'man

    Dober'man Banned

    Joined:
    16 Jul 2007
    Messages:
    70
    Likes Received:
    94
    Reputations:
    -8
    1) х+lgx=0.5 может х - это аргумент, а lg - десятичный логарифм?!?!?! = х+lg(x)=0.5
    2) Корни ур-я - они же нули функции - т.е. точки на осях
    3)
    Уточнить методом хорды можно добавив 2 случайные точки - задав тем самым диапазон
    Мну первый раз такое слышит!!! =)
     
  16. ДЖО

    ДЖО New Member

    Joined:
    23 May 2008
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    да сцори, эт десятичный алгоритм

    не совсем понял, эт как?
     
  17. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    мы на втором курсе точность высчитывали производной чтоли. или чем то в этом роде. давно это было. короче учебник по МатАн'у тебе в руки. второй курс вродебы.
    ---
    могу поднять учебники если срочно что то надо. как раз за второй курс два три учебника по мат. анализу лежат
     
  18. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    событие DragDrop вызывается? установи курсор на строке if progressbar.Position > 40 then и нажми f4. если событие вызывается то программа станет на паузу и подсветит строку на которой курсор.
     
  19. FIND_ERROR

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

    Joined:
    30 Apr 2007
    Messages:
    70
    Likes Received:
    14
    Reputations:
    0
    попробуй поставить событие на OnDragOver или OnDragEnd
     
  20. t04

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

    Joined:
    10 Jan 2007
    Messages:
    137
    Likes Received:
    40
    Reputations:
    8
    да дело не в цикле, дело в том что событие он DragDrop не вызывается. ты вообще знаешь когда оно вызывается? и не понятно зачем ты делаешь драг анд дроп програесс бара? это какой то ужас.

    если я понял верно то тебе надо всего лишь выловить когда прогресс бар будет более 40? если так то обрабатывай проседуру в которой ты увеличиваешь посицию. если ничего не понял из моих слов то выкладывай код сюда, прикрепи к сообщению или залей на файлобменник какой нить и ссылку кинь.

    на самый крайний случай кинь на форму таймер, установи Timer.Interval на 50 и повесь на него код.

    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Timer1.Interval := 50;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      if progressbar.Position > 40 then
        begin
          команда
        end;
    end;
     
    #1860 t04, 21 Jul 2008
    Last edited: 21 Jul 2008
Thread Status:
Not open for further replies.