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

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

    Joined:
    18 Jan 2008
    Messages:
    248
    Likes Received:
    155
    Reputations:
    45
    Бутон1 это кнопа а клик это процедура
     
  2. Metall

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

    Joined:
    4 Jan 2008
    Messages:
    57
    Likes Received:
    10
    Reputations:
    0
    А почему они не разделены ничем?
     
  3. Dr.KoD

    Dr.KoD Elder - Старейшина

    Joined:
    1 Mar 2008
    Messages:
    68
    Likes Received:
    22
    Reputations:
    1
    TForm1.Button1Click(Sender: TObject);
    Вот это означает, что данная кнопка находится на форме1 и принадлежит этой форме,
    а чуть выше есть вот такая штука(типы), в которой описываются компоненты и события:
    //-----------------------------------------------------
    type
    Button1: TButton;
    //чуть ниже событие нашей кнопки:
    procedure Button1Click(Sender: TObject);
    //------------------------------------------------------
    Это и означает, Button1 это именно наша кнопка и ни какая другая.
    Эта процедура(TForm1.Button1Click) называется СОБЫТИЕ на нажатие кнопки Button1.
    Если бы было просто:
    //------------------------------------------
    procedure Name;
    begin
    //выполняем какие либо действия
    end;
    //------------------------------------------
    то эта процедура не принадлежала бы к данной форме или кнопке, но могла бы относится к любоиу компоненту и процедуре данной программы и изменять их свойства, или выполнять какую либо вспомогательную функцию, вообщем об этом можно долго писать, скачай лучше книгу Фленова Библия Delphi, там все очень хорошо написано и расписано!!!
     
    1 person likes this.
  4. Dr.KoD

    Dr.KoD Elder - Старейшина

    Joined:
    1 Mar 2008
    Messages:
    68
    Likes Received:
    22
    Reputations:
    1
    что еще не разделено?
    Дело в том, что все эти события(процедуры) каждого элемента описаны(как что и к чему относится) в VCL, т.е. если на WinAPI ты должен сам позаботиться о том чтобы создать форму, разместить на ней кнопки(и что эти кнопки должны находится именно в этом месте и эта процедура должна совершаться по нажатию на кнопку), и т.д., то Delphi упрощает все это безобразие, т.е. уже многое зделано до тебя и ты уже не заморачиваешся над тем вопросом как тебе разместить кнопки(не видя их ;)), подобрать размер самой формы, потыкал мышкой туда сюда и все красиво и гланое быстро!!!
     
  5. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    x := round(x * 10) / 10
     
    1 person likes this.
  6. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Полнейший БРЕД!!!!!!


    Если посмотришь на кнопку, то в ObjectInspector'е есть вкладка ACTIONS, и на этой вкладке есть параметр OnClick. Там и описывается имя кнопочной процедуры. ПО умолчанию - это ButtonXClick, но может быть и любая другая вида "procedure TForm1.blblblbl(Sender: TObject);"
     
  7. Dr.KoD

    Dr.KoD Elder - Старейшина

    Joined:
    1 Mar 2008
    Messages:
    68
    Likes Received:
    22
    Reputations:
    1
    Actions мда и где ж там вкладка такая находится?, может это пункт вкладки Events(События)!!! И вообще человек задал вопрос почему данная процедура относится именно к этой кнопке, а не почему эта процедура так называется или где она описывается и описывается эта процедура не там, там она всеголиш указана как одно из событий данного компонента, а описывается она в другом месте ;)
    Так что не БРЕД!!!
     
  8. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Ну Events, не суть важно, меня поняли :) ...
    Вот я и ответил, почему она относится к этой кнопке: потому что она прописана в Events! И это прописано вообще в .dfm файле, а название здесь абсолютно не важно. Кнопке MyVeryGoodButton может соответствовать процедура procedure TMyFantasticForm.DisgusteringProcedure(Sender: TObject);
    Единственное условие - она должна принадлежать классу TMyFantasticForm. А если ты просто создашь процедуру
    TMyFantasticForm.MyVeryGoodButton(Sender: TObject), то просто так она ни к чему ассоциирована не будет.
     
  9. Dr.KoD

    Dr.KoD Elder - Старейшина

    Joined:
    1 Mar 2008
    Messages:
    68
    Likes Received:
    22
    Reputations:
    1
    Кароч мы говорим об одних и тех же весчах разными словами, я изобразил это в виде кода с пояснением, а ты обошелся одними пояснениями ;) :D .
    А вот на счет этого несоглашусь немного:
    Это уже будет дпугой объект формы, который может влиять на события этой кнопки и влиять на саму кнопку, как и сама кнопка будет(если в ее событии написать определенный код) влиять на этот объект. ;)
     
    1 person likes this.
  10. ForNeVeR

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

    Joined:
    1 May 2006
    Messages:
    67
    Likes Received:
    31
    Reputations:
    0
    desTiny прав, в Events можно сопоставить любому событию процедуру с любым названием. И давайте закроем эту тему, спор бессмысленен и скатывается в оффтоп.
     
  11. zl0y

    zl0y Banned

    Joined:
    13 Sep 2006
    Messages:
    371
    Likes Received:
    270
    Reputations:
    109
    У кого нибудь есть,что нибудь по парсингу url к примеру получили исходник страницы на адресу http://server.com/a/b/c/d/index.htm извлекли из него ссылки и как ссылки преобразовать в серверному виду типо
    к http://server.com/a/b/mypage.html

    я просто уже $#&*$!&* ну вы поняли :) все делаешь норм,подстраиваешь - работает,а делаешь ссылку вида /index.html или index.html уже неверно :(
     
  12. desTiny

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

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    А что мешает сделать так:
    http://server.com/a/b/c/d/index.htm
    Извлекаем всё до последнего слеша:
    http://server.com/a/b/c/d/
    Дописываем из a href'a:
    http://server.com/a/b/c/d/../../mypage.html
    Оно ДОЛЖНО работать.
     
    1 person likes this.
  13. Metall

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

    Joined:
    4 Jan 2008
    Messages:
    57
    Likes Received:
    10
    Reputations:
    0
    Всем большое спасибо! Особенно тебе, desTiny. Dr.KoD, я благодарен также тебе, но кажется, ты ошибаешься. Или я тебя просто не понял.
    Я по ней Делфи и изучаю ;)
     
    #1333 Metall, 19 Apr 2008
    Last edited: 19 Apr 2008
  14. Slanter

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

    Joined:
    9 Jan 2008
    Messages:
    120
    Likes Received:
    11
    Reputations:
    -5
    Пацы, подскажите какой компилятор для делфи лучше
    и где его скачать
     
  15. Ergoproxy

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

    Joined:
    18 Jan 2008
    Messages:
    248
    Likes Received:
    155
    Reputations:
    45
    http://www.codegear.com
    http://infostore.org/info/1721611
     
  16. shefff

    shefff New Member

    Joined:
    18 Dec 2007
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    может есть у кого программа для расчета повременной заработной платы в Delphi? если нет, то нет:)
     
  17. Dr.KoD

    Dr.KoD Elder - Старейшина

    Joined:
    1 Mar 2008
    Messages:
    68
    Likes Received:
    22
    Reputations:
    1
    Вот код, который позволяет вводить в едит только циферки(пример взят из делфи ворлд, советую иметь данную базу под рукой):
    Code:
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var 
      vrPos, vrLength, vrSelStart: byte;
    const
      I: byte = 1;
    begin
      with Sender as TEdit do
      begin
        vrLength := Length(Text);
        vrPos := Pos(',', Text); 
        vrSelStart := SelStart; курсора
      end;
      case Key of
        '0'..'9':
          begin       
            if (vrPos > 0) and (vrLength - vrPos > I) and (vrSelStart >= vrPos) then
              Key := #0; 
          end;
        ',', '.':
          begin      
            if (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0) then
              Key := #0 
            else
              Key := #44; 
          end;
        #8: ; 
      else
        Key := #0; 
      end;
    end;
    Мля а на 2 вопрос забыл ответить, а зачем тебе такие сложности? кидай Компонент Image указывай в объект инспекторе в свойствj Aling : alCient, загружай картинку в Image и усе будет в шоколаде! ;)
     
    #1337 Dr.KoD, 20 Apr 2008
    Last edited: 20 Apr 2008
    1 person likes this.
  18. Dr.KoD

    Dr.KoD Elder - Старейшина

    Joined:
    1 Mar 2008
    Messages:
    68
    Likes Received:
    22
    Reputations:
    1
    [Dezzter]Для особо страждущих вот реализация в несколько строк ;) :D :
    Code:
    begin
    case Key of
        '0'..'9',#8:
    else
    Key := #0;
    end;
    end;
     
  19. ToniKapuchon

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

    Joined:
    26 Feb 2006
    Messages:
    153
    Likes Received:
    45
    Reputations:
    -1
    Хочу что бы в одной диаграмме в excel рисовалось два графика, но чёт не получается, помогите кто знает, плз!! ---- с этим разобрался!!!

    другой вопрос : как на ох нанести мои значение!!!
     
    #1339 ToniKapuchon, 20 Apr 2008
    Last edited: 20 Apr 2008
  20. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    А почему просто не использовать записанный в Excel макросы в DELPHI???

    http://www.citforum.ru/programming/delphi/vba/
     
    1 person likes this.
Thread Status:
Not open for further replies.