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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? faxfield.bak

?? 將圖像轉換為傳真文件
?? BAK
?? 第 1 頁 / 共 5 頁
字號:
  P : TPoint;
begin
  P.X := X;
  P.Y := Y;
  P   := Target.ScreenToClient(Source.ClientToScreen(P));
  X   := P.X;
  Y   := P.Y;
end;


{*** TStretchHandle *}

constructor TStretchHandle.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Canvas.Brush.Color := clBlack;
  Canvas.Brush.Style := bsSolid;
  SetBounds(Top, Left, ctStretchHandleSize, ctStretchHandleSize);
end;

procedure TStretchHandle.Paint;
begin
  Canvas.FillRect(Rect(0, 0, Width, Height));
end;

{------------------------------ TBaseField ---------------------------------}

constructor TBaseField.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Brush.Color := clWindow;
  Brush.Style := bsClear;
  DragCursor  := crCross;
  DragMode    := dmManual;
  Pen.Mode    := pmCopy;
  Pen.Style   := psDashDot;
  Pen.Color   := clBlack;
  Pen.Width   := 1;
  Shape       := stRectangle;
  Visible     := False; {Caller must make visible after setting size and position}
  SetSelected(False);
end;

procedure TBaseField.bfMouseDown(Sender: TObject; Button: TMouseButton;
                                 Shift: TShiftState; X, Y: Integer);
begin
  if Parent is TPanel then begin
    {If Sender is one of the StretchHandles, convert its coordinates to our own}
    if Sender is TStretchHandle then
      ConvertCoords(Sender as TStretchHandle, Self, X, Y);
    (Parent as TPanel).OnMouseDown(Self, Button, Shift, X, Y);
  end;
end;

procedure TBaseField.bfMouseUp(Sender: TObject; Button: TMouseButton;
                               Shift: TShiftState; X, Y: Integer);
begin
  if Parent is TPanel then begin
    {If Sender is one of the StretchHandles, convert its coordinates to our own}
    if Sender is TStretchHandle then
      ConvertCoords(Sender as TStretchHandle, Self, X, Y);
    (Parent as TPanel).OnMouseUp(Self, Button, Shift, X, Y);
  end;
end;

procedure TBaseField.bfMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if Parent is TPanel then begin
    {If Sender is one of the StretchHandles, convert its coordinates to our own}
    if Sender is TStretchHandle then begin
      ConvertCoords(Sender as TStretchHandle, Self, X, Y);
      if not (ssLeft in Shift) then
        StretchMode := (Sender as TStretchHandle).HandlePosition;
    end else
      StretchMode := smDrag;
    (Parent as TPanel).OnMouseMove(Self, Shift, X, Y);
  end;
end;

procedure TBaseField.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
var
  I : Integer;
  P : TPoint;
begin
  inherited SetBounds(ALeft, ATop, AWidth, AHeight);

  {Move all StretchHandles to the proper positions}
  for I := Low(bfStretchHandles) to High(bfStretchHandles) do
    if Assigned(bfStretchHandles[I]) then
      with bfStretchHandles[I] do begin
        P := GetStretchHandleCoords(HandlePosition);
        SetBounds(P.X, P.Y, Width, Height);
      end;
end;

procedure TBaseField.SetParent(AParent: TWinControl);

  function CreateStretchHandle(WhichHandle : TStretchModes) : TStretchHandle;
  var
    P : TPoint;
  begin
    P := GetStretchHandleCoords(WhichHandle);
    Result := TStretchHandle.Create(Self);
    with Result do begin
      HandlePosition := WhichHandle;
      Parent         := AParent;
      Visible        := Selected;
      OnMouseDown    := bfMouseDown;
      OnMouseUp      := bfMouseUp;
      OnMouseMove    := bfMouseMove;
      SetBounds(P.X, P.Y, Width, Height);
    end;
  end;

const
  ctStretchHandleCorners :
    array[Low(TStretchHandleArray)..High(TStretchHandleArray)] of TStretchModes =
      (smNW, smN, smNE, smE, smSE, smS, smSW, smW);
var
  I : Integer;
begin
  if AParent <> Parent then begin
    inherited SetParent(AParent);
    if Assigned(AParent) then begin
      OnMouseDown := (AParent as TPanel).OnMouseDown;
      OnMouseUp   := (AParent as TPanel).OnMouseUp;
      OnMouseMove := (AParent as TPanel).OnMouseMove;
      {If StretchHandles already exist, destroy them}
      for I := Low(bfStretchHandles) to High(bfStretchHandles) do
        if Assigned(bfStretchHandles[I]) then begin
          bfStretchHandles[I].Free;
          bfStretchHandles[I] := nil;
        end;
      {Create new StretchHandles}
      for I := Low(bfStretchHandles) to High(bfStretchHandles) do
        bfStretchHandles[I] := CreateStretchHandle(ctStretchHandleCorners[I]);
    end else begin
      OnMouseDown := nil;
      OnMouseUp   := nil;
      OnMouseMove := nil;
    end;
  end;
end;

procedure TBaseField.SetSelected(IsSelected : Boolean);
var
  I : Integer;
begin
  if IsSelected <> FSelected then begin
    FSelected := IsSelected;
    for I := Low(bfStretchHandles) to High(bfStretchHandles) do
      with bfStretchHandles[I] do begin
        Visible := FSelected;
        {BringToFront to ensure that if this is a TImageField, StretchHandle
         isn't partially hidden behind the image}
        if FSelected then
          BringToFront;
      end;
    Refresh;
  end;
end;

function TBaseField.GetStretchHandleCoords(WhichHandle : TStretchModes) : TPoint;
  {-Returns the coordinates (Left, Top) where the StretchHandle should be drawn}
var
  Offset : Integer;
begin
  with Result do
    case WhichHandle of
      smNW : begin
               Offset := ctStretchHandleSize div 2;
               X      := Left - Offset;
               Y      := Top - Offset;
             end;
      smN  : begin
               Offset := ctStretchHandleSize div 2;
               X      := Left + (Width div 2) - Offset;
               Y      := Top - Offset;
             end;
      smNE : begin
               Offset := (ctStretchHandleSize + 1) div 2;
               X      := Left + Width - Offset;
               Offset := ctStretchHandleSize div 2;
               Y      := Top - Offset;
             end;
      smE  : begin
               Offset := (ctStretchHandleSize + 1) div 2;
               X      := Left + Width - Offset;
               Offset := ctStretchHandleSize div 2;
               Y      := Top + (Height div 2) - Offset;
             end;
      smSE : begin
               Offset := (ctStretchHandleSize + 1) div 2;
               X      := Left + Width - Offset;
               Y      := Top + Height - Offset;
             end;
      smS  : begin
               Offset := ctStretchHandleSize div 2;
               X      := Left + (Width div 2) - Offset;
               Offset := (ctStretchHandleSize + 1) div 2;
               Y      := Top + Height - Offset;
             end;
      smSW : begin
               Offset := ctStretchHandleSize div 2;
               X      := Left - Offset;
               Offset := (ctStretchHandleSize + 1) div 2;
               Y      := Top + Height - Offset;
             end;
      smW  : begin
               Offset := ctStretchHandleSize div 2;
               X      := Left - Offset;
               Y      := Top + (Height div 2) - Offset;
             end;
      else begin
        X := 0;
        Y := 0;
      end;
    end;
end;

procedure TBaseField.Read(Stream : TStream);
var
  FieldRec : TFieldRecord;
begin
  Stream.ReadBuffer(FieldRec, SizeOf(FieldRec));
  if Parent is TFaxPanel then
    with (Parent as TFaxPanel), FieldRec do begin
      Self.Left   := HorzInchesToPixels(frLeftInches);
      Self.Top    := VertInchesToPixels(frTopInches);
      Self.Width  := HorzInchesToPixels(frWidthInches);
      Self.Height := VertInchesToPixels(frHeightInches);
    end;
end;

procedure TBaseField.Write(Stream : TStream);
var
  FieldRec : TFieldRecord;
begin
  FillChar(FieldRec, SizeOf(FieldRec), 0);
  if Parent is TFaxPanel then
    with (Parent as TFaxPanel), FieldRec do begin
      frLeftInches   := HorzPixelsToInches(Self.Left);
      frTopInches    := VertPixelsToInches(Self.Top);
      frWidthInches  := HorzPixelsToInches(Self.Width);
      frHeightInches := VertPixelsToInches(Self.Height);
    end;
  Stream.WriteBuffer(FieldRec, SizeOf(FieldRec));
end;


{*** TTextField ***}

constructor TTextField.Create(AOwner: TComponent);
const
  ctDefWidth = 200;
var
  Items1:TMenuItem;
begin
  inherited Create(AOwner);

  Pen.Style := psClear;  {Don't need the TShape border because FMemo will have a border}
  FpopupMenu:=TPopupMenu.Create(self);
  Items1:=TMenuItem.Create(self);
  Items1.Caption:='載入文本';
  Items1.OnClick:=OnLoadFromFile;
  FPopupmenu.Items.Add(items1);
  FMemo := TMemo.Create(Self);
  FMemo.PopupMenu:=FPopupMenu;
  with FMemo do begin
    Ctl3D       := False;
    ParentCtl3D := False;
    WordWrap    := True;
    OnMouseDown := bfMouseDown;
    OnMouseUp   := bfMouseUp;
    OnMouseMove := bfMouseMove;
    OnDblClick  := MemoDblClick;
    OnEnter     := tfEnter;
    OnExit      := tfExit;
  end;
  FMemo.Font.Name:='宋體';
  FMemo.Font.Size:=11;
  SetBounds(Left, Top, ctDefWidth, Height);
end;

procedure TTextField.Draw(ACanvas : TCanvas);

  procedure ReplaceTags(TagStr     : string;
                  const ReplaceStr : string;
                    var TargetStr  : string);
  var
    Posn    : Integer;
    TempStr : string;
  begin
    TagStr := UpperCase(TagStr);
    repeat
      TempStr := UpperCase(TargetStr);
      Posn    := Pos(TagStr, TempStr);
      if Posn > 0 then begin
        Delete(TargetStr, Posn, Length(TagStr));
        Insert(ReplaceStr, TargetStr, Posn);
      end;
    until Posn = 0;
  end;

var
  I          : Integer;
  X, Y       : Integer;
  TextHeight : Integer;
  S          : string;
  DateStr    : string;
  TimeStr    : string;
begin
  with FMemo do begin
    ACanvas.Font := Font;
    TextHeight := GetTextHeight;

    {Format date string to use for $D replacement tag}
    DateStr := DateToStr(Date);
    {Format time string to use for $T replacement tag}
    TimeStr := TimeToStr(Time);
    Delete(TimeStr, Length(TimeStr) - 5, 4);  {Strip off the seconds}
    TimeStr := LowerCase(TimeStr); {Convert AM or PM to lower case}

    X := Round((Parent as TFaxPanel).DrawAdjustFactor * Self.Left);
    for I := 0 to Lines.Count - 1 do begin
      S := Lines[I];
      {Look for replaceable tags and do replacements as required}
      ReplaceTags('$D', DateStr, S);
      ReplaceTags('$T', TimeStr, S);
      ReplaceTags('$N', IntToStr((Parent as TFaxPanel).PageCount), S);
      ReplaceTags('$P', IntToStr((Parent as TFaxPanel).PageNumber), S);
      ReplaceTags('$F', (Parent as TFaxPanel).Sender, S);
      ReplaceTags('$R', (Parent as TFaxPanel).Recipient, S);
      ReplaceTags('$S', (Parent as TFaxPanel).PageTitle, S);
      ReplaceTags('$I', (Parent as TFaxPanel).StationID, S);

      Y := Round((Parent as TFaxPanel).DrawAdjustFactor * (Self.Top + (I * TextHeight)));
      ACanvas.TextOut(X, Y, S);
    end;
  end;
end;

procedure TTextField.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
  inherited SetBounds(ALeft, ATop, AWidth, AHeight);

  if Assigned(FMemo) then
    FMemo.SetBounds(ALeft, ATop, AWidth, AHeight);
end;

procedure TTextField.SetParent(AParent: TWinControl);
var
  NewHeight : Integer;
begin
  inherited SetParent(AParent);

  if Assigned(FMemo) then begin
    FMemo.Parent := AParent;
    {If no text has yet been entered, get the height of one row of text for the
     current font, and adjust the field height to match}
    if (FMemo.Text = '') and Assigned(AParent) then begin
      NewHeight := GetTextHeight + 4;
      {If SnapToGrid is enabled, adjust height to fall on a grid line}
      with Parent as TFaxPanel do
        if SnapToGrid then
          AdjustHeightToGrid(Top, NewHeight);
      SetBounds(Left, Top, Width, NewHeight);
    end;
    if AParent is TFaxPanel then
      FMemo.OnChange := (AParent as TFaxPanel).FieldChange;
  end;
end;

procedure TTextField.SetFocus;
begin
  FMemo.SetFocus;
end;

function TTextField.GetTextHeight : Integer;
var
  Canvas     : TCanvas;
  TextMetric : TTextMetric;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetDC(FMemo.Handle);
    try
      Canvas.Font := FMemo.Font;
      GetTextMetrics(Canvas.Handle, TextMetric);
      with TextMetric do
        Result := tmHeight + tmExternalLeading;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久久免费精品| 91一区一区三区| 成人午夜伦理影院| 欧美性色黄大片| 精品国产成人在线影院 | 一区二区三区四区激情| 日本不卡在线视频| 色视频成人在线观看免| 欧美一区二区美女| 亚洲一区二区在线观看视频| 国产中文字幕精品| 欧美群妇大交群中文字幕| 国产精品久久久久久久久果冻传媒 | 日韩av电影一区| 色婷婷综合久久久久中文| 国产欧美精品一区二区色综合 | 在线免费一区三区| 久久色.com| 理论片日本一区| 欧美精品aⅴ在线视频| 亚洲日本在线天堂| 丁香天五香天堂综合| 精品国产精品一区二区夜夜嗨| 性感美女久久精品| 91麻豆swag| 亚洲免费观看在线观看| 成人午夜视频在线| 精品av综合导航| 精品一区二区三区视频| 日韩一级高清毛片| 男女激情视频一区| 日韩一卡二卡三卡国产欧美| 天堂一区二区在线| 欧美日韩一区二区在线观看 | 日韩美女视频一区二区在线观看| 一区二区三区在线视频播放| 91免费看`日韩一区二区| 日本一区二区免费在线观看视频| 久久爱另类一区二区小说| 91精品国产一区二区三区蜜臀| 午夜精品久久久久久久99水蜜桃| 欧美体内she精视频| 亚洲午夜电影网| 欧美三级日本三级少妇99| 亚洲精品久久7777| 欧美日韩一区视频| 日本不卡一区二区三区| 精品三级在线观看| 国产激情视频一区二区三区欧美| 欧美激情一区二区三区不卡| 成人国产视频在线观看| 一区二区三区欧美激情| 欧美高清视频在线高清观看mv色露露十八 | 欧美一级理论性理论a| 激情久久五月天| 久久精品一区二区三区四区| 成人三级在线视频| 一区二区在线免费观看| 欧美精品v国产精品v日韩精品| 久久精品国产免费| 国产精品区一区二区三| 色一区在线观看| 日产国产欧美视频一区精品| 久久综合给合久久狠狠狠97色69| 成人性生交大片免费看中文网站| 亚洲精品伦理在线| 91精品国产手机| 波多野结衣欧美| 亚洲电影第三页| 久久日一线二线三线suv| 色婷婷综合中文久久一本| 奇米精品一区二区三区在线观看一| 久久综合色天天久久综合图片| 成人一区二区三区在线观看| 亚洲福利国产精品| 久久久久久久久久久久久夜| 91国内精品野花午夜精品| 韩国av一区二区三区四区| 亚洲自拍偷拍九九九| wwwwxxxxx欧美| 在线观看一区日韩| 国产精品亚洲а∨天堂免在线| 一区二区在线观看视频| 精品福利一区二区三区| 欧美系列日韩一区| 成人av在线观| 国产一区二区三区四区在线观看| 亚洲激情在线激情| 欧美激情一二三区| 精品三级av在线| 欧美日韩一级片网站| 成人午夜短视频| 捆绑调教美女网站视频一区| 亚洲成人1区2区| 亚洲人成在线播放网站岛国| 久久综合色一综合色88| 91精品国产综合久久久久久 | 福利一区二区在线观看| 看电影不卡的网站| 五月婷婷激情综合网| 亚洲毛片av在线| 国产精品亲子乱子伦xxxx裸| 欧美tk—视频vk| 欧美亚洲国产一卡| 91色.com| 91麻豆福利精品推荐| 成av人片一区二区| 国产成人自拍高清视频在线免费播放| 视频一区二区三区在线| 亚洲午夜日本在线观看| 亚洲精品欧美综合四区| 亚洲欧美日韩在线| 亚洲人成精品久久久久久| 欧美经典一区二区| 国产精品午夜免费| 国产精品人成在线观看免费| 国产女人aaa级久久久级| 国产亚洲精品资源在线26u| 2021久久国产精品不只是精品| 欧美成人一区二区三区在线观看 | 在线观看视频一区二区欧美日韩| 成人a级免费电影| 不卡的电视剧免费网站有什么| 国产成人午夜视频| 成人激情综合网站| 99这里都是精品| 99在线视频精品| 91福利在线看| 欧美精品乱人伦久久久久久| 欧美一区午夜视频在线观看| 欧美一区二区三区免费视频| 精品奇米国产一区二区三区| 久久午夜免费电影| 亚洲欧美影音先锋| 午夜欧美一区二区三区在线播放| 日韩精品电影一区亚洲| 久久99国产精品免费网站| 国产精品12区| 色狠狠av一区二区三区| 欧美久久一区二区| 2017欧美狠狠色| 亚洲精品高清视频在线观看| 亚洲成av人片在www色猫咪| 精品制服美女丁香| 成人黄色av网站在线| 精品视频在线免费看| 精品国产伦一区二区三区观看体验| 久久久99精品久久| 亚洲综合图片区| 国产另类ts人妖一区二区| 91在线一区二区三区| 91精品国产一区二区三区| 国产欧美一区二区精品仙草咪| 亚洲精品国产a| 久久99国产精品尤物| 色哟哟亚洲精品| 日韩精品一区二区三区四区| 国产精品福利av| 奇米色777欧美一区二区| 99精品1区2区| 久久夜色精品国产噜噜av| 亚洲天堂成人在线观看| 久久精品国产精品青草| 91影院在线观看| 欧美不卡一区二区三区| 玉足女爽爽91| 成人性视频免费网站| 3751色影院一区二区三区| 国产欧美日韩综合| 美女性感视频久久| 91久久精品一区二区| 久久美女高清视频 | 一区二区三区色| 韩国成人福利片在线播放| 欧美三日本三级三级在线播放| 国产亚洲va综合人人澡精品| 亚洲国产综合91精品麻豆| 不卡欧美aaaaa| 精品国产伦理网| 婷婷久久综合九色综合伊人色| 不卡一区在线观看| 久久综合一区二区| 美女久久久精品| 欧美精品成人一区二区三区四区| 中文字幕在线观看一区二区| 久久精品国产久精国产| 9191精品国产综合久久久久久| 亚洲伦在线观看| 97se亚洲国产综合自在线| 中文成人av在线| 国产成人综合在线播放| 久久综合色8888| 国产真实精品久久二三区| 日韩视频123| 青青草国产精品亚洲专区无| 欧美日韩国产成人在线91| 亚洲va中文字幕| 欧美卡1卡2卡| 日韩精品一级中文字幕精品视频免费观看 | 国产成人午夜视频|