亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? faxfield.bak

?? 將圖像轉(zhuǎn)換為傳真文件
?? BAK
?? 第 1 頁 / 共 5 頁
字號:
    FEditMode := Value;
    for I := fpFieldList.Count - 1 downto 0 do begin
      Field := fpFieldList[I];
      if Field.Selected and (Field is TTextField) then begin
        TTextField(Field).tfEnter(nil);
        if Value then
          TTextField(Field).SetFocus;
      end;
    end;
  end;
end;

procedure TFaxPanel.SetPageWidthInches(AWidth : Double);
begin
  if AWidth <> FPageWidthInches then begin
    FPageWidthInches := AWidth;
    {Recalc pixels per inch and post position messages if necessary}
    SetBounds(Left, Top, Width, Height);
    FNeedsSaving := True;
  end;
end;

procedure TFaxPanel.SetPageHeightInches(AHeight : Double);
begin
  if AHeight <> FPageHeightInches then begin
    FPageHeightInches := AHeight;
    {SetBounds recalcs pixels per inch and calls OnFieldPositionChange if
     necessary}
    SetBounds(Left, Top, Width, Height);
    FNeedsSaving := True;
  end;
end;  

procedure TFaxPanel.SetShowGrid(AShowGrid : Boolean);
begin
  if AShowGrid <> FShowGrid then begin
    FShowGrid := AShowGrid;
    Invalidate;
  end;
end;

procedure TFaxPanel.SetSnapToGrid(ASnapToGrid : Boolean);
var
  I         : Integer;
  NewLeft   : Integer;
  NewTop    : Integer;
  NewWidth  : Integer;
  NewHeight : Integer;
  Field     : TBaseField;
begin
  if ASnapToGrid <> FSnapToGrid then begin
    FSnapToGrid := ASnapToGrid;
    {If SnapToGrid was just turned on, force all existing fields to snap to the grid}
    if FSnapToGrid then begin
      for I := 0 to fpFieldList.Count - 1 do begin
        Field     := fpFieldList[I];
        NewLeft   := Field.Left;
        NewTop    := Field.Top;
        NewWidth  := Field.Width;
        NewHeight := Field.Height;
        {Adjust coordinates to be on grid lines}
        AdjustLeftToGrid(NewLeft);
        AdjustTopToGrid(NewTop);
        AdjustWidthToGrid(NewLeft, NewWidth);
        AdjustHeightToGrid(NewTop, NewHeight);
        Field.SetBounds(NewLeft, NewTop, NewWidth, NewHeight);
      end;
      FNeedsSaving := True;
    end;
  end;
end;

procedure TFaxPanel.SetGridSpacingX(GridSpacing : Integer);
begin
  if (GridSpacing > 0) and (GridSpacing <> FGridSpacingX) then begin
    FGridSpacingX := GridSpacing;
    fpResize(nil);  {Recalculate fpMaxGridLine}
    if FSnapToGrid then begin
      {Turn SnapToGrid off and back on to force all fields to align to the new grid size}
      SetSnapToGrid(False);
      SetSnapToGrid(True);
    end;
    if FShowGrid then
      Invalidate;
  end;
end;

procedure TFaxPanel.SetGridSpacingY(GridSpacing : Integer);
begin
  if (GridSpacing > 0) and (GridSpacing <> FGridSpacingY) then begin
    FGridSpacingY := GridSpacing;
    fpResize(nil);  {Recalculate fpMaxGridLine}
    if FSnapToGrid then begin
      {Turn SnapToGrid off and back on to force all fields to align to the new grid size}
      SetSnapToGrid(False);
      SetSnapToGrid(True);
    end;
    if FShowGrid then
      Invalidate;
  end;
end;

procedure TFaxPanel.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);

  procedure UpdateFieldPositionsAndSizes(OldWidth, OldHeight : Integer);
  var
    I           : Integer;
    NewLeft     : Integer;
    NewTop      : Integer;
    NewWidth    : Integer;
    NewHeight   : Integer;
    Field       : TBaseField;
    WidthRatio  : Double;
    HeightRatio : Double;
  begin
    if OldWidth = 0 then
      WidthRatio := 0.0
    else
      WidthRatio  := Width / OldWidth;
    if OldHeight = 0 then
      HeightRatio := 0.0
    else
      HeightRatio  := Height / OldHeight;
    for I := fpFieldList.Count - 1 downto 0 do begin
      Field := fpFieldList[I];
      with Field do begin
        NewLeft   := Round(Left * WidthRatio);
        NewTop    := Round(Top * HeightRatio);
        NewWidth  := Round(Width * WidthRatio);
        NewHeight := Round(Height * HeightRatio);
        AdjustLeftToGrid(NewLeft);
        AdjustWidthToGrid(NewLeft, NewWidth);
        AdjustTopToGrid(NewTop);
        AdjustHeightToGrid(NewTop, NewHeight);
        SetBounds(NewLeft, NewTop, NewWidth, NewHeight);
        if Selected then begin
          FieldPositionChange(Left, Top, Width, Height);
          {Set Ruler position marks to the new coordinates}
          if Self.Owner is TFaxDesigner then
            (Self.Owner as TFaxDesigner).SetMarkPositions(Left, Top, Width, Height);
        end;
      end;
    end;
  end;  

var
  OldWidth  : Integer;
  OldHeight : Integer;
begin
  OldWidth  := Width;
  Oldheight := Height;
  inherited SetBounds(ALeft, ATop, AWidth, AHeight);

  if FPageWidthInches = 0.0 then
    fpHorzPixelsPerInch := 0.0
  else
    fpHorzPixelsPerInch := Width / FPageWidthInches;
  if FPageHeightInches = 0.0 then
    fpVertPixelsPerInch := 0.0
  else
    fpVertPixelsPerInch := Height / FPageHeightInches;

  {Move and resize all fields so they retain the same relative positions and
   sizes in relation to the FaxPanel size}
  if Assigned(fpFieldList) then
    UpdateFieldPositionsAndSizes(OldWidth, OldHeight);
end;

procedure TFaxPanel.Paint;
var
  X, Y : Integer;
begin
  inherited Paint;
  if FShowGrid then begin
    X := ctGridStart;
    with Canvas do
      while X < Width do begin
        {To improve painting performance, don't draw anything that isn't
         within the current ClipRect}
        if (ClipRect.Left <= X) and (X <= ClipRect.Right) then begin
          Y := ctGridStart;
          while Y < Height do begin
            {To improve painting performance, don't draw anything that isn't
             within the current ClipRect}
            if (ClipRect.Top <= Y) and (Y <= ClipRect.Bottom) then
              Canvas.Pixels[X,Y] := clBlack;
            Y := Y + FGridSpacingY;
          end;
        end;
        X := X + FGridSpacingX;
      end;
  end;
end;

procedure TFaxPanel.fpResize(Sender : TObject);
var
  Extent      : Integer;
  NrGridLines : Integer;
begin
  {Calculate the coordinates of the rightmost and bottommost grid lines given
   the current panel size, and store the results in fpMaxGridLine}
  Extent := Width - ctGridStart;
  NrGridLines := Extent div FGridSpacingX;
  fpMaxGridLine.X := (NrGridLines * FGridSpacingX) + ctGridStart;
  Extent := Height - ctGridStart;
  NrGridLines := Extent div FGridSpacingY;
  fpMaxGridLine.Y := (NrGridLines * FGridSpacingY) + ctGridStart;
end;

procedure TFaxPanel.fpMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  {If user clicked on a field, translate the coordinates to MainPanel
   coordinates and set fpMouseAnchor to those coordinates}
  if Sender is TBaseField then begin
    ConvertCoords(Sender as TControl, Self, X, Y);
    fpMouseAnchor := Point(X, Y);
    if (Button = mbLeft) and not (ssDouble in Shift) then
      fpIsMouseDown := True;
  end else
    fpMouseAnchor := Point(X, Y);
end;

procedure TFaxPanel.fpMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  IsFieldSelected : Boolean;
begin
  case Button of
    mbRight : if Sender is TControl then begin
                ConvertCoords(Sender as TControl, Self, X, Y);
                fpMouseAnchor := Point(X, Y);
              end;
    mbLeft :
      begin
        DeselectAllFields;
        IsFieldSelected := False;  {No fields are currently selected}

        {If user clicked on a field, mark it as selected}
        if Sender is TBaseField then begin
          IsFieldSelected := True;
          fpIsMouseDown   := False;
          with Sender as TBaseField do begin
            Selected := True;
            {Set Ruler position marks to the new coordinates}
            (Self.Owner as TFaxDesigner).SetMarkPositions(Left, Top, Width, Height);
          end;
        end else
          {Turn Ruler position marks off since no fields are selected}
          (Self.Owner as TFaxDesigner).SetMarkPositions(-1, -1, -1, -1);

        FieldSelectionChange(IsFieldSelected);
        if IsFieldSelected then
          with Sender as TBaseField do
            FieldPositionChange(Left, Top, Width, Height);
      end;
  end;
end;

procedure TFaxPanel.fpMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  XDiff     : Integer;
  YDiff     : Integer;
  OldLeft   : Integer;
  OldTop    : Integer;
  NewLeft   : Integer;
  NewTop    : Integer;
  NewWidth  : Integer;
  NewHeight : Integer;
begin
  if Sender is TBaseField then begin
    if fpIsMouseDown and (ssLeft in Shift) then begin
      if fpDragging then
        Exit;
      fpDragging := True;
      try
        case (Sender as TBaseField).StretchMode of
          smDrag :
            begin
              {TextFields can't be moved while in Edit Mode}
              if FEditMode and (Sender is TTextField) then
                Exit;
              ConvertCoords(Sender as TControl, Self, X, Y);
              Constrain(X, 0, Width);
              Constrain(Y, 0, Height);
              XDiff := X - fpMouseAnchor.X;
              YDiff := Y - fpMouseAnchor.Y;
              with Sender as TBaseField do begin
                NewLeft := Left + XDiff;
                NewTop  := Top + YDiff;
                {Ensure field remains entirely within Self}
                Constrain(NewLeft, 0, Self.Width  - Width);
                Constrain(NewTop,  0, Self.Height - Height);

                if FSnapToGrid then begin
                  {Adjust NewLeft and NewTop to be on grid lines if necessary}
                  AdjustLeftToGrid(NewLeft);
                  AdjustTopToGrid(NewTop);

                  {Make sure we haven't moved past the rightmost or bottommost grid line}
                  if NewLeft + Width - 1 > fpMaxGridLine.X then
                    NewLeft := NewLeft - FGridSpacingX;
                  if NewTop + Height - 1 > fpMaxGridLine.Y then
                    NewTop := NewTop - FGridSpacingY;
                end;

                OldLeft := Left;
                OldTop  := Top;
                SetBounds(NewLeft, NewTop, Width, Height);
              end;
              {Set fpMouseAnchor to new mouse position, but ONLY if the field
               position has changed. If SnapToGrid is enabled, the field position
               might not have changed even though the mouse position did.}
              fpMouseAnchor.X := fpMouseAnchor.X + NewLeft - OldLeft;
              fpMouseAnchor.Y := fpMouseAnchor.Y + NewTop - OldTop;
            end;
          smE :
            with Sender as TBaseField do begin
              NewWidth := X;
              Constrain(NewWidth, 0, Self.Width - Left);
              AdjustWidthToGrid(Left, NewWidth);

              SetBounds(Left, Top, NewWidth, Height);
              if Width <= 1 then
                StretchMode := smW;
            end;
          smW :
            with Sender as TBaseField do begin
              NewLeft := Left + X;
              {Prevent creeping to right when switching from smW to smE}
              Constrain(NewLeft, 0, Left + Width);
              AdjustLeftToGrid(NewLeft);

              NewWidth := Width + Left - NewLeft;
              Constrain(NewWidth, 0, Self.Width - NewLeft);
              AdjustWidthToGrid(NewLeft, NewWidth);

              SetBounds(NewLeft, Top, NewWidth, Height);
              if Width <= 1 then
                StretchMode := smE;
            end;
          smS :
            with Sender as TBaseField do begin
              NewHeight := Y;
              Constrain(NewHeight, 0, Self.Height - Top);
              AdjustHeightToGrid(Top, NewHeight);

              SetBounds(Left, Top, Width, NewHeight);
              if Height <= 1 then
                StretchMode := smN;
            end;
          smN :
            with Sender as TBaseField do begin
              NewTop := Top + Y;
              {Prevent creeping down when switching from smN to smS}
              Constrain(NewTop, 0, Top + Height);
              AdjustTopToGrid(NewTop);

              NewHeight := Height + Top - NewTop;
              Constrain(NewHeight, 0, Self.Height - NewTop);
              AdjustHeightToGrid(NewTop, NewHeight);

              SetBounds(Left, NewTop, Width, NewHeight);
              if Height <= 1 then
                StretchMode := smS;
            end;
          smNE :
            with Sender as TBaseField do begin
              NewTop := Top + Y;
              {Prevent creeping down when switching from smN? to smS?}
              Constrain(NewTop, 0, Top + Height);
              AdjustTopToGrid(NewTop);

              NewWidth := X;
              Constrain(NewWidth, 0, Self.Width - Left);
              AdjustWidthToGrid(Left, NewWidth);

              NewHeight := Height + Top - NewTop;
              Constrain(NewHeight, 0, Self.Height - NewTop);
              AdjustHeightToGrid(NewTop, NewHeight);

              SetBounds(Left, NewTop, NewWidth, NewHeight);
              if Width <= 1 then begin
                if Height <= 1 then
                  StretchMode := smSW
                else
                  StretchMode := smNW;
              end else if Height <= 1 then
                StretchMode := smSE;
            end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区不卡在线播放| 精品免费日韩av| 亚洲精选在线视频| 91小视频免费看| 亚洲精品免费在线观看| 91高清视频免费看| 亚洲大尺度视频在线观看| 欧美老年两性高潮| 免费xxxx性欧美18vr| 久久精品夜夜夜夜久久| 成人动漫中文字幕| 亚洲一区精品在线| 日韩一区二区三区视频在线| 激情偷乱视频一区二区三区| 国产校园另类小说区| 91老师国产黑色丝袜在线| 日韩精品乱码免费| 国产视频911| 91成人国产精品| 免费观看成人av| 国产精品久久久久毛片软件| 欧美日韩国产区一| 国产精品99久久久久久久vr| 亚洲男人电影天堂| 欧美大白屁股肥臀xxxxxx| 成人免费观看视频| 日产国产欧美视频一区精品| 国产女同互慰高潮91漫画| 91传媒视频在线播放| 国产麻豆欧美日韩一区| 亚洲电影一级黄| 久久久久久久久久久久电影| 欧美亚洲日本一区| 国产精品1区2区3区在线观看| 一区二区三区精品| 国产午夜精品福利| 69堂精品视频| www.日本不卡| 韩日精品视频一区| 亚洲国产日韩在线一区模特| 国产亚洲欧美色| 欧美久久久久中文字幕| 97精品国产97久久久久久久久久久久 | 伊人开心综合网| 亚洲精品一区在线观看| 欧美丝袜丝交足nylons| 99精品视频一区二区三区| 免费日韩伦理电影| 亚洲国产精品久久久久婷婷884 | 日韩一区二区在线观看| 在线免费不卡电影| av资源网一区| 欧美一区二区观看视频| 色激情天天射综合网| 成人午夜激情视频| 国产精品一卡二| 久久国产三级精品| 日韩av电影免费观看高清完整版在线观看| 国产精品国产馆在线真实露脸| 日韩精品在线一区| 51精品久久久久久久蜜臀| 91福利小视频| 在线观看一区不卡| 色女孩综合影院| 91在线你懂得| 99精品偷自拍| a4yy欧美一区二区三区| 成人网男人的天堂| 风间由美一区二区av101| 国产一区二区在线电影| 久久电影国产免费久久电影| 秋霞成人午夜伦在线观看| 天天亚洲美女在线视频| 亚洲国产成人av| 日韩不卡一区二区三区| 日韩高清不卡一区二区三区| 亚洲h精品动漫在线观看| 香蕉加勒比综合久久| 婷婷激情综合网| 日本午夜一区二区| 狠狠色丁香久久婷婷综| 激情久久五月天| 国产成人一级电影| 成人aaaa免费全部观看| 色视频欧美一区二区三区| 欧美视频一区二区三区| 欧美日韩国产系列| 精品少妇一区二区三区在线视频| 精品福利一区二区三区| 国产日产欧美精品一区二区三区| 欧美激情在线看| 亚洲美女电影在线| 性做久久久久久久免费看| 日本成人在线视频网站| 国内外成人在线| 99精品欧美一区二区三区小说 | 日韩欧美精品三级| 精品国产在天天线2019| 国产精品网曝门| 亚洲免费资源在线播放| 日日摸夜夜添夜夜添国产精品| 毛片av中文字幕一区二区| 国产精品正在播放| 91欧美激情一区二区三区成人| 欧美日韩精品三区| 久久久午夜精品理论片中文字幕| 国产精品久久久久毛片软件| 亚洲图片欧美综合| 久久精品国产99| 色综合天天视频在线观看| 这里只有精品视频在线观看| 国产欧美日韩不卡免费| 亚洲综合一二区| 极品少妇xxxx偷拍精品少妇| 国产成人av影院| 欧美日韩在线精品一区二区三区激情| 日韩美女一区二区三区四区| 国产精品黄色在线观看| 欧美a级一区二区| 2024国产精品| 伊人婷婷欧美激情| 激情深爱一区二区| 欧美日韩一卡二卡三卡| 国产性天天综合网| 日韩不卡一二三区| 成人免费看的视频| 日韩欧美在线一区二区三区| 亚洲色欲色欲www在线观看| 久久er99热精品一区二区| 一本大道久久精品懂色aⅴ| 日韩一级成人av| 亚洲影院免费观看| 懂色av中文一区二区三区| 69堂成人精品免费视频| 亚洲黄色性网站| 国产999精品久久久久久绿帽| 欧美日韩日日摸| 亚洲欧美电影一区二区| 国产经典欧美精品| 日韩美女在线视频| 日韩成人午夜电影| 欧美亚男人的天堂| 国产精品国模大尺度视频| 韩国精品主播一区二区在线观看 | 欧美在线观看18| 欧美极品另类videosde| 韩国成人精品a∨在线观看| 欧美在线观看一区| 中文字幕一区二区三中文字幕| 国产麻豆精品在线| 精品理论电影在线| 日本午夜精品一区二区三区电影| 色哦色哦哦色天天综合| 成人欧美一区二区三区1314| 国产精品亚洲一区二区三区在线 | 国产精品女同一区二区三区| 精品一区二区久久久| 在线播放国产精品二区一二区四区| 亚洲乱码一区二区三区在线观看| 国产成人日日夜夜| 久久久精品影视| 国产自产2019最新不卡| 欧美电影免费观看高清完整版| 午夜免费欧美电影| 欧美婷婷六月丁香综合色| 亚洲黄色性网站| 欧美日韩亚洲综合一区二区三区| 一区二区三区**美女毛片| 日本精品裸体写真集在线观看| 亚洲区小说区图片区qvod| 色婷婷av一区二区| 亚洲国产精品久久艾草纯爱| 欧美日韩精品免费观看视频| 五月天婷婷综合| 5858s免费视频成人| 日本欧美久久久久免费播放网| 91精品国产欧美日韩| 加勒比av一区二区| 国产亚洲一区二区三区在线观看| 高清国产一区二区三区| **欧美大码日韩| 欧美影视一区二区三区| 欧美日韩一区二区在线视频| 亚洲一区精品在线| 欧美一区二区三区在线| 国模大尺度一区二区三区| 久久综合久久综合久久综合| 国产99久久久国产精品免费看 | 久久久久久亚洲综合影院红桃| 懂色av中文一区二区三区| 亚洲欧美怡红院| 欧美人体做爰大胆视频| 久久99国产精品久久99| 国产精品美女久久久久久久| 欧洲中文字幕精品| 久久精品久久精品| 国产精品乱码人人做人人爱| 91成人国产精品| 精品在线一区二区三区| 中文字幕一区二区三中文字幕|