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

    fenixelite Banned

    Joined:
    7 Feb 2010
    Messages:
    294
    Likes Received:
    56
    Reputations:
    6
    Ну у меня есть консольное приложение. Я создал модуль. В основной прогге прописал в uses имя модуля. А в модуле мне что прописать то?(чтобы из модуля использовать глобальные переменные, которые объявлены в основной проге)
     
  2. Linkus

    Linkus Member

    Joined:
    20 Dec 2008
    Messages:
    168
    Likes Received:
    15
    Reputations:
    -1
    попробуй в implementation прописать uses основной_модуль;
     
  3. GhostOnline

    GhostOnline Active Member

    Joined:
    20 Dec 2008
    Messages:
    723
    Likes Received:
    110
    Reputations:
    22
    Ааа, по ходу у него ругается компилер что оба модуля ссылаются друг на друга в interface-секциях.
    Я правильно понял?
    Если да, то надо просто было сразу ошибку компиляции указать.
     
  4. qssD

    qssD New Member

    Joined:
    16 Dec 2010
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Привет парни подскажите пожалуйста, как сделать так:
    Есть Edit1 и Edit2 и Lable
    В Edit1 и Edit2 пишу число и надо чтобы в Lable выводилась произведение этих чисел!? Подскажите пожалуйста заранее спасибо.
    А при нажатии на Button1
     
  5. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    В обработчике кнопки онКлик пишеш

    label1.Caption:=IntToStr(StrToInt(edit1.text)*StrToInt(edit2.text));
     
  6. trunker

    trunker Member

    Joined:
    5 Feb 2009
    Messages:
    44
    Likes Received:
    66
    Reputations:
    1
    Code:
    procedure TForm7.Button1Click(Sender: TObject);
    const
    mininhor=60;
    polnoeTime=480;
    var
    dpm,result,HP,hor,min,alltime,yourDPM,allHP:real;
    begin
    {Кирпич}
    if bosslist.ItemIndex=0 then
       dpm:=2.08;allHP:=1000;
    {Сизый}
    if bosslist.ItemIndex=1 then
       dpm:=20.83;allHP:=10000;
    {Махно}
    if bosslist.ItemIndex=2 then
       dpm:=104.16;allHP:=50000;
    {Лютый}
    if bosslist.ItemIndex=3 then
       dpm:=208.33;allHP:=100000;
    {Шайба}
    if bosslist.ItemIndex=4 then
       dpm:=1041.66;allHP:=500000;
        HP:=StrToFloat(editHP.Text);
        hor:=StrToFloat(editHore.Text);
        min:=strtofloat(editMin.Text);
         alltime:=hor*mininhor+min;
      result:=HP/alltime;
      if  result<dpm then
      resultat.Caption:=('Победа');
        if  result>dpm then
      resultat.Caption:=('Поражение');
        LabelMustDPM.Caption:=floattostr(dpm);
        yourDPM:=(allHP-hp)/(polnoeTime-alltime);
        yourDPM:=FloatTostr(labelDpm.Caption);
    
    
    end;
    
    end.
    Подскажите пожалуйста, что в почслежней строке
    " yourDPM:=FloatTostr(labelDpm.Caption);" не правильно?
     
  7. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    labelDPM.caption тип стринг
    а FloatToSTR нужно давать флоат

    Вам нужно вместо FloatToSTR использовать StrToFloat
     
  8. qssD

    qssD New Member

    Joined:
    16 Dec 2010
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Подскажите пожалуйста ещё как сложить числа которые в Edit1 и Edit2 ? Заранеее спасибо!
     
  9. trunker

    trunker Member

    Joined:
    5 Feb 2009
    Messages:
    44
    Likes Received:
    66
    Reputations:
    1
    все нормально, но теперь он за переменную allHP постоянно берет 500000, как это поправить?
    ну кроме как если в каждый If then не пихать расчеты?
     
    #7689 trunker, 5 Feb 2011
    Last edited: 5 Feb 2011
  10. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    А сколько он должен брать?
    у вас allHP:=500000
     
  11. trunker

    trunker Member

    Joined:
    5 Feb 2009
    Messages:
    44
    Likes Received:
    66
    Reputations:
    1
    в зависимосте от выбранного bosslist.ItemIndex=
     
  12. qssD

    qssD New Member

    Joined:
    16 Dec 2010
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Подскажите пожалуйста ещё как сложить числа которые в Edit1 и Edit2 ?
    И как делить дробные числа? Подскажите пожалуйста!
     
  13. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Умножение
    label1.Caption:=IntToStr(StrToInt(edit1.text) * StrT oInt(edit2.text));
    Сложение
    label1.Caption:=IntToStr(StrToInt(edit1.text) + StrT oInt(edit2.text));
    Вычитание
    label1.Caption:=IntToStr(StrToInt(edit1.text) - StrT oInt(edit2.text));
    Деление без дроби и без остатка
    label1.Caption:=IntToStr(StrToInt(edit1.text) div StrT oInt(edit2.text));
     
  14. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Ни когда в жизни

    если на то пошло учите основы

    у вас условия по bosslist.ItemIndex выполняеться только одно действие

    писать нужно так if bosslist.ItemIndex then
    begin
    ля-ля-ля
    end;
     
  15. qssD

    qssD New Member

    Joined:
    16 Dec 2010
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    arnis спс, слушай подскажи пожалуйста как умножать дробные числа!? Заранее спасибо!
     
  16. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    Только без проверки что разделитель точка

    label1.caption:=FloatTostr(strToFloat(edit1.text) * strToFloat(edit2.text));

    если попадется разделитель запятая а не точка выкинет ошибку
     
  17. qssD

    qssD New Member

    Joined:
    16 Dec 2010
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    хм то есть только с точкой? 0.4 3.3 и.т.д
    А с запятой не будет работать получается.?
     
  18. arnis

    arnis Member

    Joined:
    30 Jan 2011
    Messages:
    280
    Likes Received:
    23
    Reputations:
    0
    с запятой в таком виде не будет.

    можно написать DecimalDelimiter:=',';

    тогда будет работать с запятой , но не будет с точкой.

    если нужно и запятая и точка то тут сложнее.

    Но лучше все при вводе в едит проверять чтобы не получилось не приятностей типа две запятые и тд
     
  19. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    будет работать только с тем разделителем, который стоит у пользователя в настройких системны. если стоит точка - не будет работать с запятой, если запятая - с точкой. Вот тут лежит пример процедуры, изменяющей системный разделитель: http://www.delphisources.ru/pages/faq/base/chg_sys_separator.html
     
  20. qssD

    qssD New Member

    Joined:
    16 Dec 2010
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Блин я с точной прибавить пытался а не получается
    label7.caption:=FloatTostr(strToFloat(edit1.text) + strToFloat(edit4.text));
     
Thread Status:
Not open for further replies.