大家快都来看看这样的问题怎么做出(50分)

  • 主题发起人 主题发起人 mylovegirl
  • 开始时间 开始时间
M

mylovegirl

Unregistered / Unconfirmed
GUEST, unregistred user!
老大们:
教教小弟怎么做出像PHOTOSHOP那样的文字输入方式,即文字大小是可以拉动的,
输入的文字,也可以更改的,如果谁有这样的控件更好,要不给点源码也好啊,
sdenf@sina,com 这里谢过了
 
你想干吗?
做时可以做的,很麻烦,要有好算法
 
hamsoft:
老大,你有办法啦,教我吧。我想做一个图片显示效果的,但必须要可以输入文字
我是一点办法没有,麻烦你赐教,感恩不尽,你让我做什么都成,求求你啦,老板催的急啊
 
hamsoft:
老大,你有办法啦,教我吧。我想做一个图片显示效果的,但必须要可以输入文字
我是一点办法没有,麻烦你赐教,感恩不尽,你让我做什么都成,求求你啦,老板催的急啊
 
以前做过 很长的一段哦 在image上画图 两种效果 背景透明或者不透明
现在找不到了 实现起来不是很难啦
 
amakusa:
我只要求可以输入文字,有可以还原更改,你可以帮帮忙吗
 
hamsoft:
你在哪里啊
 
我以前做过,这个可以做一个对象,这个对像要能保存你的图像,我还是给你一点代码,不过分太少,先给一半
unit TextRich;

interface

uses windows, graphics, math,dialogs,sysutils;

type
//TRichTextDraw = class;
TPointArry = array[0..3] of TPoint;
TRichTextDraw = class(TObject)
private
FCanvas : TCanvas; //对象的Canvas
FCoordinate : TPoint; //起始坐标(左上角)
FFont : TFont; //字体
FScapeBetween : Integer; //字间距
FText : string; //字体
FAngle : Single; //旋转角度
FHeight : Single; //字体高度
FWidth : Single; //字体宽度
FItalic : Byte; //斜体
FUnderLine : Byte; //下划线
FActive : Boolean; //激活属性
FPoint : TPointArry; //文字区域顶角坐标
FArea : HRGN; //文字区域句柄
FSWidth : Integer; //四角方框(1/2)宽度
FAngleRad : double; //旋转角度(弧度制表示)
FScale : double; //字符宽度/间距
FCenterPoint : TPoint; //对象中心点坐标
FOldAngle : Single; //旋转前对象的角度
FRadius : Double; //对象的半径(中心到任一定点的距离)
FDropPoint : Integer;
public
property Canvas : TCanvas read FCanvas write FCanvas; //读取属性
property Coordinate : TPoint read FCoordinate write FCoordinate;
property Font : TFont read FFont write FFont;
property ScapeBetween : Integer read FScapeBetween write FScapeBetween;
property Text : string read FText write FText;
property Angle : Single read FAngle write FAngle;
property Height : Single read FHeight write FHeight;
property Width : Single read FWidth write FWidth;
property Italic : Byte read FItalic write FItalic;
property UnderLine : Byte read FUnderLine write FUnderLine;
property Active : Boolean read FActive write FActive;
property Point : TPointArry read FPoint write FPoint;
property Scale : double read FScale write FScale;
property OldAngle : Single read FOldAngle write FOldAngle;
constructor Create;
destructor Destroy; override;
procedure TextDraw;
procedure CalPoint;
procedure ReverseActive;
procedure ChangeSize(X, Y, PointNum : Integer);
procedure CalWH(DragPoint : Integer);
procedure SignCircumgyrate;
procedure DrawRect;
procedure Circumgyrate(X, Y : Integer);
function IsIn(X, Y : Integer) : Boolean;
function IsOnPane(X, Y : Integer) : Integer;
function IsInCircularity(X, Y : Integer) : Boolean;
function CalAngle(X, Y : Integer) : Single;
end;

implementation
 
zytzjx:
老大,俺要的就是这个,再给你加200分好不好,俺要源码啊,拜托了,我的分可以都给你啊
救救我吧
 
关注,真像打劫
 
我给你出个馊主意,就是动态生成TLabel,并把它保存到链表中,Label是可以改变大小的
也可以改变其中的文字。
判断鼠标点击位置如果在已有的Label内就改,否则就新建一个。
hehe
 
注意虽骚,确可行,只不过文件太多是不好处理,其他各位有没有更好的办法呢
 
zytzjx:
求求你啦,回答我吧,我现在我的分可以全给你啊
 
或者添加image,在image.canvas上写textout
image是可以透明显示的,所以不会相label那样遮盖底色
而且同样可以接受鼠标事件
只是不好转动
 
后退
顶部