Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.06.2009, 20:32
Анюта Анюта вне форума
Прохожий
 
Регистрация: 04.06.2009
Адрес: Дорогобуж
Сообщения: 3
Репутация: 10
Вопрос Нужен исходник, может есть у кого

Всем привет!!! Задача такого плана:

Реализовать обработку событий при нажатии на клавиши. Обеспечить на экран символа, соответствующего нажатой клавиши. Реализовать процедуры подсчета количества нажатий на клавиши и построить горизонтальную гистограмму количества нажатия на клавиши. Обрабатывать только буквенные клавиши. Вывод осуществлять в графическом режиме.

Или подскажите где можно такое найти, плиз. Пасиб
Ответить с цитированием
  #2  
Старый 07.06.2009, 22:59
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Хм... Никто не отвечает, а человек, вижу, приходит на форум, возможно, ещё ждёт. Если так, то предложу я чего-нибудь. =)
Задачка-то несложная. Форме задаем свойство KeyPreview=True. Кладём на нее компонент TChart, задаём тип графика в Horiz. Bar. Ну, там пару-другую компонент TLabel для отображения символа нажатой клавиши и количества нажатий. И всё — пишем обработчики.

pas-файл:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart;

type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: THorizBarSeries;
    SymbolLabel: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    PressCountLabel: TLabel;
    ResetBtn: TButton;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure ResetBtnClick(Sender: TObject);
  private
    { Private declarations }
    PressCount: Cardinal;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if not ((Key >= Ord('A')) and (Key <= Ord('Z'))) then Exit;
  SymbolLabel.Caption := Chr(Key);
  Inc(PressCount);
  PressCountLabel.Caption := IntToStr(PressCount);
  Chart1.Series[0].XValue[Key - Ord('A')] := Chart1.Series[0].XValue[Key - Ord('A')] + 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Char;
begin
  PressCount := 0;
  Chart1.Series[0].Clear;
  for i := 'a' to 'z' do Chart1.Series[0].AddXY(0, Ord(i), i, clGreen);
end;

procedure TForm1.ResetBtnClick(Sender: TObject);
var
  i: Char;
begin
  PressCount := 0;
  Chart1.Series[0].Clear;
  for i := 'a' to 'z' do Chart1.Series[0].AddXY(0, Ord(i), i, clGreen);
end;

end.

dfm-файл:
Код:
object Form1: TForm1
  Left = 192
  Top = 114
  Width = 696
  Height = 497
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  KeyPreview = True
  OldCreateOrder = False
  OnCreate = FormCreate
  OnKeyDown = FormKeyDown
  DesignSize = (
    688
    463)
  PixelsPerInch = 96
  TextHeight = 13
  object SymbolLabel: TLabel
    Left = 592
    Top = 392
    Width = 89
    Height = 65
    Alignment = taCenter
    Anchors = [akRight, akBottom]
    AutoSize = False
    Font.Charset = RUSSIAN_CHARSET
    Font.Color = clWindowText
    Font.Height = -48
    Font.Name = 'MS Sans Serif'
    Font.Style = []
    ParentFont = False
  end
  object Label2: TLabel
    Left = 592
    Top = 376
    Width = 89
    Height = 13
    Alignment = taCenter
    Anchors = [akRight, akBottom]
    AutoSize = False
    Caption = 'Symbol:'
  end
  object Label3: TLabel
    Left = 464
    Top = 376
    Width = 113
    Height = 13
    Alignment = taCenter
    Anchors = [akRight, akBottom]
    AutoSize = False
    Caption = 'Key pressing count:'
  end
  object PressCountLabel: TLabel
    Left = 464
    Top = 392
    Width = 113
    Height = 25
    Alignment = taCenter
    Anchors = [akRight, akBottom]
    AutoSize = False
    Caption = '0'
  end
  object Chart1: TChart
    Left = 0
    Top = 0
    Width = 688
    Height = 369
    BackWall.Brush.Color = clWhite
    BackWall.Brush.Style = bsClear
    Title.Text.Strings = (
      'TChart')
    Title.Visible = False
    BottomAxis.Automatic = False
    BottomAxis.AutomaticMinimum = False
    Legend.Visible = False
    View3D = False
    Align = alTop
    TabOrder = 0
    Anchors = [akLeft, akTop, akRight, akBottom]
    object Series1: THorizBarSeries
      Marks.ArrowLength = 20
      Marks.Visible = True
      SeriesColor = clGreen
      BarWidthPercent = 100
      XValues.DateTime = False
      XValues.Name = 'Bar'
      XValues.Multiplier = 1.000000000000000000
      XValues.Order = loNone
      YValues.DateTime = False
      YValues.Name = 'Y'
      YValues.Multiplier = 1.000000000000000000
      YValues.Order = loNone
    end
  end
  object ResetBtn: TButton
    Left = 488
    Top = 432
    Width = 75
    Height = 25
    Anchors = [akRight, akBottom]
    Caption = 'Reset'
    TabOrder = 1
    OnClick = ResetBtnClick
  end
end
Пойдет?
Ответить с цитированием
  #3  
Старый 07.06.2009, 23:42
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Nyctos Kasignete вроде бы всё правильно, но наверное в след раз прикрепляй сразу архив с исходником. Не все (новички) смогут по дфм и пасу собрать программку.
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #4  
Старый 09.06.2009, 22:53
Анюта Анюта вне форума
Прохожий
 
Регистрация: 04.06.2009
Адрес: Дорогобуж
Сообщения: 3
Репутация: 10
Подмигивание

Во во, правда архива и не хватает, повторите плиз и архивчик если моно.ПЖ
Ответить с цитированием
  #5  
Старый 10.06.2009, 14:03
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Моно... ПЖ.

Последний раз редактировалось Nyctos Kasignete, 25.02.2010 в 00:48.
Ответить с цитированием
  #6  
Старый 10.06.2009, 22:22
Анюта Анюта вне форума
Прохожий
 
Регистрация: 04.06.2009
Адрес: Дорогобуж
Сообщения: 3
Репутация: 10
По умолчанию

Пасибки большое!!!!!!!!
Ответить с цитированием
  #7  
Старый 14.01.2011, 20:25
Ден Ден вне форума
Прохожий
 
Регистрация: 14.01.2011
Адрес: Смоленск
Сообщения: 1
Репутация: 10
Восклицание

А может кто-нибудь скинуть этот архивчик еще раз, оч надо в ближайшее время
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:32.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter