⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iphonepad.pas

📁 iocopm3.04源码,一套很好的工控开发工具
💻 PAS
📖 第 1 页 / 共 2 页
字号:
procedure TiPhonePad.FontChange(Sender: TObject);
var
  i       : Integer;
  iButton : TiButton;
begin
  for i := 0 to FButtonList.Count-1 do
    begin
      iButton := FButtonList.Objects[i] as TiButton;
      iButton.Font.Assign(FFont);
    end;
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.SetButtonVisible0(const Value:Boolean);begin FButton0.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible1(const Value:Boolean);begin FButton1.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible2(const Value:Boolean);begin FButton2.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible3(const Value:Boolean);begin FButton3.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible4(const Value:Boolean);begin FButton4.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible5(const Value:Boolean);begin FButton5.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible6(const Value:Boolean);begin FButton6.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible7(const Value:Boolean);begin FButton7.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible8(const Value:Boolean);begin FButton8.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisible9(const Value:Boolean);begin FButton9.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisibleA(const Value:Boolean);begin FButtonA.Visible:=Value;end;
procedure TiPhonePad.SetButtonVisibleP(const Value:Boolean);begin FButtonP.Visible:=Value;end;
//****************************************************************************************************************************************************
function TiPhonePad.GetButtonVisible0: Boolean;begin Result := FButton0.Visible;end;
function TiPhonePad.GetButtonVisible1: Boolean;begin Result := FButton1.Visible;end;
function TiPhonePad.GetButtonVisible2: Boolean;begin Result := FButton2.Visible;end;
function TiPhonePad.GetButtonVisible3: Boolean;begin Result := FButton3.Visible;end;
function TiPhonePad.GetButtonVisible4: Boolean;begin Result := FButton4.Visible;end;
function TiPhonePad.GetButtonVisible5: Boolean;begin Result := FButton5.Visible;end;
function TiPhonePad.GetButtonVisible6: Boolean;begin Result := FButton6.Visible;end;
function TiPhonePad.GetButtonVisible7: Boolean;begin Result := FButton7.Visible;end;
function TiPhonePad.GetButtonVisible8: Boolean;begin Result := FButton8.Visible;end;
function TiPhonePad.GetButtonVisible9: Boolean;begin Result := FButton9.Visible;end;
function TiPhonePad.GetButtonVisibleA: Boolean;begin Result := FButtonA.Visible;end;
function TiPhonePad.GetButtonVisibleP: Boolean;begin Result := FButtonP.Visible;end;
//****************************************************************************************************************************************************
function TiPhonePad.GetButtonCaption0: String;begin Result := FButton0.Caption;end;
function TiPhonePad.GetButtonCaption1: String;begin Result := FButton1.Caption;end;
function TiPhonePad.GetButtonCaption2: String;begin Result := FButton2.Caption;end;
function TiPhonePad.GetButtonCaption3: String;begin Result := FButton3.Caption;end;
function TiPhonePad.GetButtonCaption4: String;begin Result := FButton4.Caption;end;
function TiPhonePad.GetButtonCaption5: String;begin Result := FButton5.Caption;end;
function TiPhonePad.GetButtonCaption6: String;begin Result := FButton6.Caption;end;
function TiPhonePad.GetButtonCaption7: String;begin Result := FButton7.Caption;end;
function TiPhonePad.GetButtonCaption8: String;begin Result := FButton8.Caption;end;
function TiPhonePad.GetButtonCaption9: String;begin Result := FButton9.Caption;end;
function TiPhonePad.GetButtonCaptionA: String;begin Result := FButtonA.Caption;end;
function TiPhonePad.GetButtonCaptionP: String;begin Result := FButtonP.Caption;end;
//****************************************************************************************************************************************************
procedure TiPhonePad.SetButtonCaption0(const Value: String);begin FButton0.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption1(const Value: String);begin FButton1.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption2(const Value: String);begin FButton2.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption3(const Value: String);begin FButton3.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption4(const Value: String);begin FButton4.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption5(const Value: String);begin FButton5.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption6(const Value: String);begin FButton6.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption7(const Value: String);begin FButton7.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption8(const Value: String);begin FButton8.Caption := Value;end;
procedure TiPhonePad.SetButtonCaption9(const Value: String);begin FButton9.Caption := Value;end;
procedure TiPhonePad.SetButtonCaptionA(const Value: String);begin FButtonA.Caption := Value;end;
procedure TiPhonePad.SetButtonCaptionP(const Value: String);begin FButtonP.Caption := Value;end;
//****************************************************************************************************************************************************
procedure TiPhonePad.ButtonInvalidate(Sender: TObject);
begin
  InvalidateChange;
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.ButtonClick(Sender: TObject);
var
  KeyCode : Integer;
  AChar   : Char;
begin
  KeyCode := 0;
  AChar   := '0';
  if      Sender = FButton0 then begin KeyCode :=  0; AChar := '0'; end
  else if Sender = FButton1 then begin KeyCode :=  1; AChar := '1'; end
  else if Sender = FButton2 then begin KeyCode :=  2; AChar := '2'; end
  else if Sender = FButton3 then begin KeyCode :=  3; AChar := '3'; end
  else if Sender = FButton4 then begin KeyCode :=  4; AChar := '4'; end
  else if Sender = FButton5 then begin KeyCode :=  5; AChar := '5'; end
  else if Sender = FButton6 then begin KeyCode :=  6; AChar := '6'; end
  else if Sender = FButton7 then begin KeyCode :=  7; AChar := '7'; end
  else if Sender = FButton8 then begin KeyCode :=  8; AChar := '8'; end
  else if Sender = FButton9 then begin KeyCode :=  9; AChar := '9'; end
  else if Sender = FButtonA then begin KeyCode := 10; AChar := '*'; end
  else if Sender = FButtonP then begin KeyCode := 11; AChar := '#'; end;

  if Assigned(FOnKeyClick) then FOnKeyClick(Self, KeyCode, AChar);
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.iMouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  i           : Integer;
  iButton     : TiButton;
  ScreenPoint : TPoint;
begin
  if (csDesigning in ComponentState) then exit;
  if Button <> mbLeft                then exit;
  SetFocus;
  ScreenPoint := ClientToScreen(Point(X, Y));

  for i := 0 to FButtonList.Count-1 do
    begin
      iButton := FButtonList.Objects[i] as TiButton;
      if not iButton.Visible then Continue;
      if PtInRect(iButton.DrawRect, Point(X, Y)) then
        begin
          FMouseDownObject := iButton;
          FMouseDownObject.iMouseDown(Button, Shift, X, Y, ScreenPoint.X, ScreenPoint.Y);
        end;
    end;
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.iMouseMove(Shift: TShiftState; X, Y: Integer);
begin

end;
//****************************************************************************************************************************************************
procedure TiPhonePad.iMouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  ScreenPoint : TPoint;
begin
  if (csDesigning in ComponentState) then exit;

  ScreenPoint := ClientToScreen(Point(X, Y));

  if Assigned(FMouseDownObject) then
    begin
      FMouseDownObject.iMouseUp(Button, Shift, X, Y, ScreenPoint.X, ScreenPoint.Y);
      FMouseDownObject := nil;
    end;
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.iDoKillFocus;
var
  i : Integer;
begin
  if (csDesigning in ComponentState) then exit;

  for i := 0 to FButtonList.Count-1 do
    (FButtonList.Objects[i] as TiButton).MouseDown := False;
  inherited;
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.CalcRects;
var
  PixelsPerPercent : Double;
  ALeft            : Integer;
  ATop             : Integer;
begin
  PixelsPerPercent := Width / (3 + 2*FOuterMargin + 2*FButtonSpacing);

  FSpacingHorz := Round(PixelsPerPercent * FButtonSpacing);
  FButtonWidth := Round(PixelsPerPercent * 1.00          );

  FMarginHorz  := (Width - 3*FButtonWidth - 2*FSpacingHorz) div 2;

  PixelsPerPercent := Height / (4 + 2*FOuterMargin + 3*FButtonSpacing);

  FSpacingVert  := Round(PixelsPerPercent * FButtonSpacing);
  FButtonHeight := Round(PixelsPerPercent * 1.00          );

  FMarginVert   := (Height - 4*FButtonHeight - 3*FSpacingVert) div 2;

  ALeft := FMarginHorz;
  ATop  := FMarginVert;

  FButton1.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton2.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton3.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);

  ALeft := FMarginHorz;
  ATop  := ATop + FButtonHeight + FSpacingVert;

  FButton4.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton5.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton6.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);

  ALeft := FMarginHorz;
  ATop  := ATop + FButtonHeight + FSpacingVert;

  FButton7.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton8.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton9.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);

  ALeft := FMarginHorz;
  ATop  := ATop + FButtonHeight + FSpacingVert;

  FButtonA.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButton0.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);ALeft := ALeft+FButtonWidth+FSpacingHorz;
  FButtonP.DrawRect := Rect(ALeft, ATop, ALeft+FButtonWidth, ATop+FButtonHeight);
end;
//****************************************************************************************************************************************************
procedure TiPhonePad.iPaintTo(Canvas: TCanvas);
var
  i      : Integer;
  ARect  : TRect;
  Button : TiButton;
begin
  with Canvas do
    begin
      CalcRects;
      DrawBackGround(Canvas, BackGroundColor);
      Font.Assign(FFont);
      Brush.Style := bsClear;

      for i := 0 to FButtonList.Count-1 do
        begin
          Button := (FButtonList.Objects[i] as TiButton);

          if not Button.Visible then Continue;

          Brush.Style := bsSolid;
          Brush.Color := BackGroundColor;
          with Button.DrawRect do
            Rectangle(Left, Top, Right, Bottom);

          Button.Draw(Canvas);
        end;

      if HasFocus and FShowFocusRect then
        begin
          ARect := Rect(0, 0 ,Width, Height);
          if BorderStyle <> ibsNone then InflateRect(ARect, -3, -3);
          Brush.Style := bsSolid;
          iDrawFocusRect(Canvas, ARect, BackGroundColor);
        end;
    end;
end;
//****************************************************************************************************************************************************
end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -