unit form7_fun_unit7;

{$mode objfpc}{$H+}

interface

uses
 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls;

procedure show_shablon1();
procedure show_shablon2();
procedure show_shablon3();

implementation
 uses
  Unit7;

 procedure show_shablon3();
 begin
  Form7.SynEdit1.Lines.Clear;
  Form7.SynEdit1.Lines.Add('//Проверка быстродействия компьютера (Benchmark)');
Form7.SynEdit1.Lines.Add('import java.util.Scanner;');
Form7.SynEdit1.Lines.Add('import java.text.DecimalFormat;');
Form7.SynEdit1.Lines.Add('public class Benchmark{');
Form7.SynEdit1.Lines.Add('   public static void main(String[] args){');
Form7.SynEdit1.Lines.Add('');
Form7.SynEdit1.Lines.Add('      //Ваш код');
Form7.SynEdit1.Lines.Add('      long st = System.currentTimeMillis();');
Form7.SynEdit1.Lines.Add('      long et = st + 10000;');
Form7.SynEdit1.Lines.Add('      long index =0;');
Form7.SynEdit1.Lines.Add('      System.out.println("\n\n");');
Form7.SynEdit1.Lines.Add('      System.out.println("Проверка быстродействия компьютера");');
Form7.SynEdit1.Lines.Add('      System.out.println("Ждите...");');
Form7.SynEdit1.Lines.Add('      while (true) {');
Form7.SynEdit1.Lines.Add('          double x = Math.sqrt(index);');
Form7.SynEdit1.Lines.Add('          long now = System.currentTimeMillis();');
Form7.SynEdit1.Lines.Add('          if (now >et) {break;}');
Form7.SynEdit1.Lines.Add('          index++;');
Form7.SynEdit1.Lines.Add('      }');
Form7.SynEdit1.Lines.Add('      System.out.println();');
Form7.SynEdit1.Lines.Add('      System.out.println(new DecimalFormat( "###,###" ).format(index/10) + " циклов за одну секунду");');
Form7.SynEdit1.Lines.Add('      //Остановка закрытия окна ');
Form7.SynEdit1.Lines.Add('      Scanner s = new Scanner(System.in);');
Form7.SynEdit1.Lines.Add('      s.nextLine();');
Form7.SynEdit1.Lines.Add('   } ');
Form7.SynEdit1.Lines.Add('}');

 end;

 procedure show_shablon1();
 begin
  Form7.Memo2.Lines.Clear;
  Form7.Memo2.Lines.Add('// Демонстрация работы кнопок.');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('import java.awt.*;');
  Form7.Memo2.Lines.Add('import java.awt.event.*;');
  Form7.Memo2.Lines.Add('import javax.swing.*;');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('class ButtonDemo implements ActionListener {');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('  JLabel jlab;');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('  ButtonDemo() {');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('    // Создайте новый контейнер JFrame.');
  Form7.Memo2.Lines.Add('    JFrame jfrm = new JFrame("A Button Example");');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('    // Укажите FlowLayout для менеджера компоновки.');
  Form7.Memo2.Lines.Add('    jfrm.setLayout(new FlowLayout());');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('    // Установить начальный размер окна.');
  Form7.Memo2.Lines.Add('    jfrm.setSize(300, 100);');
  Form7.Memo2.Lines.Add('');
  Form7.Memo2.Lines.Add('    // Завершите программу, когда пользователь закроет приложение.');
  Form7.Memo2.Lines.Add('    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Создайте две кнопки');
Form7.Memo2.Lines.Add('    JButton jbtnFirst = new JButton("Первый");');
Form7.Memo2.Lines.Add('    JButton jbtnSecond = new JButton("Второй");');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    jbtnFirst.setActionCommand("First");');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Добавьте слушателей дсобытий.');
Form7.Memo2.Lines.Add('    jbtnFirst.addActionListener(this);');
Form7.Memo2.Lines.Add('    jbtnSecond.addActionListener(this);');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Добавьте кнопки на панель содержимого.');
Form7.Memo2.Lines.Add('    jfrm.add(jbtnFirst);');
Form7.Memo2.Lines.Add('    jfrm.add(jbtnSecond);');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Создайте текстовую метку');
Form7.Memo2.Lines.Add('    jlab = new JLabel("Press a button. Press a button.");');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Дабавте текстовую метку на панель содержимого.');
Form7.Memo2.Lines.Add('    jfrm.getContentPane().add(jlab);');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Отобразите окно');
Form7.Memo2.Lines.Add('    jfrm.setVisible(true);');
Form7.Memo2.Lines.Add('  }');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('  // Обработка событий кнопок.');
Form7.Memo2.Lines.Add('  public void actionPerformed(ActionEvent ae) {');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    if(ae.getActionCommand().equals("First"))');
Form7.Memo2.Lines.Add('      jlab.setText("First button was pressed.");');
Form7.Memo2.Lines.Add('    else');
Form7.Memo2.Lines.Add('      jlab.setText("Second button was pressed. ");');
Form7.Memo2.Lines.Add('  }');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('  public static void main(String args[]) {');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('    // Создайте фрейм в потоке диспетчеризации событий.');
Form7.Memo2.Lines.Add('    SwingUtilities.invokeLater(new Runnable() {');
Form7.Memo2.Lines.Add('      public void run() {');
Form7.Memo2.Lines.Add('        new ButtonDemo();');
Form7.Memo2.Lines.Add('      }');
Form7.Memo2.Lines.Add('    });');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('  }');
Form7.Memo2.Lines.Add('}');

 end;
 procedure show_shablon2();
 begin
  Form7.Memo2.Lines.Clear;
  Form7.Memo2.Lines.Add('// Adapters.java');
Form7.Memo2.Lines.Add('// Использование адаптеров вместо интерфейсов');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('import javax.swing.*;');
Form7.Memo2.Lines.Add('import java.awt.event.*;');
Form7.Memo2.Lines.Add('import java.awt.*;');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('public class Adapters extends JFrame {');
Form7.Memo2.Lines.Add('  public Adapters() {');
Form7.Memo2.Lines.Add('    super("Adapters");');
Form7.Memo2.Lines.Add('    // при закрытии окна - выход');
Form7.Memo2.Lines.Add('    setDefaultCloseOperation(EXIT_ON_CLOSE);');
Form7.Memo2.Lines.Add('    // регистрируем слушателя');
Form7.Memo2.Lines.Add('    addMouseListener(new MouseL());');
Form7.Memo2.Lines.Add('    // выводим окно на экран');
Form7.Memo2.Lines.Add('    setSize(300, 300);');
Form7.Memo2.Lines.Add('    setLocation(200,200);');
Form7.Memo2.Lines.Add('    setVisible(true);');
Form7.Memo2.Lines.Add('  }');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('  // наследуем от адаптера');
Form7.Memo2.Lines.Add('  class MouseL extends MouseAdapter {');
Form7.Memo2.Lines.Add('    // следим за щелчками мыши в окне');
Form7.Memo2.Lines.Add('    @Override');
Form7.Memo2.Lines.Add('    public void mouseClicked(MouseEvent e) {');
Form7.Memo2.Lines.Add('      JOptionPane.showMessageDialog (null, e, "Нажатие мыши", JOptionPane.INFORMATION_MESSAGE);');
Form7.Memo2.Lines.Add('    }');
Form7.Memo2.Lines.Add('  }');
Form7.Memo2.Lines.Add('');
Form7.Memo2.Lines.Add('  public static void main(String[] args) {');
Form7.Memo2.Lines.Add('    SwingUtilities.invokeLater(');
Form7.Memo2.Lines.Add('        new Runnable() {');
Form7.Memo2.Lines.Add('          public void run() {');
Form7.Memo2.Lines.Add('            new Adapters();');
Form7.Memo2.Lines.Add('          }');
Form7.Memo2.Lines.Add('        });');
Form7.Memo2.Lines.Add('  }');
Form7.Memo2.Lines.Add('}');

 end;
end.

