话题324302的标题是: 请教两个图形特效的算法 (200分)
分类:图形图象 cheka (2000-09-01 19:52:00)
1. 如何在屏幕上写尺寸很大的字符时AntiAlias ?
DirectX能做到么?
2. 如何实现翻页的效果, MSDN里提供的DXMedia的SDK里有Sample,
但必须使用需要注册的Com组件
Another_eYes (2000-09-01 21:32:00)
1. 不需要directx, 很简单的算法就成. 过去我回答过, 懒得再写一遍代码了. 去已答问题查
2. 跟一下
cheka (2000-09-01 23:10:00)
1.多谢eYes ,找到了,感兴趣的朋友可以检索“字体 显示”,
结果中Another_eYes回答的一个问题(不好意思没记下URL)
2.waiting
Another_eYes (2000-09-20 0:17:00)
踢一 脚
Another_eYes (2000-09-25 0:05:00)
再踢
loopy (2000-09-25 1:32:00)
我再踢!!
Ares (2000-09-25 15:20:00)
凑个热闹
xixi12359 (2000-09-27 15:52:00)
哈哈
z_cd (2000-09-27 15:56:00)
踢最后一脚
Another_eYes (2000-09-27 21:47:00)
如果需要象"硬纸板"那样翻页效果我会. 如果要达到象"纸张"那样的翻页效果我不会 :->
cheka (2000-09-27 23:58:00)
谢谢Another-eYes , 都可以的,请出手吧。
liuly (2000-09-28 0:12:00)
有个控件:picshow,有100多种图像特效,其中就有翻页,
带源码,可以参考一下。
cheka (2000-09-28 10:12:00)
请问哪儿有PicShow?
liuly (2000-09-28 13:17:00)
我忘了在哪儿当的,已发到cheka@yeah.net,请查收!
cheka (2000-09-29 11:30:00)
多人接受答案了。
Another_eYes-100,liuly-100,的回答最终被接受。
-------------------------------------------------------------------------------------------\
话题1162952的标题是: 如何制作翻页的效果???? (100分)
分类:图形图象 laohe (2002-06-14 12:20:00)
我看过电子名片后,我觉得他的翻页效果不错,不知道怎么制作
下面是下载地址,给源码的加100分,谢谢;
下载地址:
http://www.skycn.com/download.php?id=6569&url=http://ln.skycn.net/down/e-C11.zip
http://bright9.top263.net/e-C11.zip
laohe (2002-06-14 12:32:00)
这个效果难道没有人会吗,大侠出手吧
Bahl (2002-06-14 12:36:00)
读书软件做自己的
不知各位对E_book的读书效果是否感兴趣,它是用vb做的,其实在c++builder中也可以很轻松的实现类似效果。现在让我们step by step 吧!
1)新建工程。单元存盘为"read.cpp"
加入一个popupmenu; 窗体属性设置如下
Name: MainForm;
AutoScroll:false;
BorderStyle:bsNone;
Font:宋体,Fontsize:9;
Position:poScreenCenter;
PopupMenu:PopupMenu1;
2)添加一panel,设置为:
BevelOuter:bvNone;
BorderStyle:bsSingle;
Ctl3D:false;
Name:Panel_1;
Caption(置空);
color:0x00CE9600; (淡蓝色)可自定
3)a:把panel_1拉大(任意),在里面添加两个Panel,命名为Le_Pan,Ri_Pan;
Le_Pan:
Color:clBlack
Align:alLeft;
Width:20;
其余同Panel_1;
Ri_Pan:
Align:alRight;
其余同Le_Pan;
b:
在Panel_1内添加1个Label,设置属性为
Transparent:true;
Visible:false;
选取Label1,敲Ctrl+c一次,再敲Ctrl+V 69次,(选70个Label)
c:
在Panel_1内添加两个Image控件,命名Back_Image,Face_Image;
Back_Image的stretch 属性为true;
Back_Image可以载入你想要的背景图片;
4)添加一个Memo控件,属性为
Name:Buf_Memo;
Width:310;
Visible:false;
Enabled:false;
Ctl3D:false;
5)添加OpenDialog,OpenPictureDialog各一个;
PopMenu1中建立3个按纽。
1) caption:打开 Name:OpenN
2) caption:背景 Name:BackN
3) caption:退出 Name:CloseN;
OpenDialog1的filter属性为:文本文件|*.txt|所有文件|*.*
原理:先将文本文件内容装入memo中,再通过遍历label控件的办法把它显示出来。
以下是单元文件:
//
#include
#pragma hdrstop
#include "Read.h"
//
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
const int Page_Nums = 34; // 每页的行数
int Now_Line; // 当前行
bool End; //文章是否结束
//
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
Inin_face();
}
//
void __fastcall TMainForm::Face_ImageMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
//拖动窗口,这个技巧比较有用
if(Button == mbLeft)
{ int SC_DragMove = 61458;
ReleaseCapture();
MainForm->Perform(WM-SYSCOMMAND,SC-DragMove, 0);
}
}
//
void __fastcall TMainForm::OpenNClick(TObject *Sender)
{
if(OpenDialog1->Execute())
{ Buf_Memo->Lines->LoadFromFile(OpenDialog1->FileName);
Inin();
}
}
//
void__fastcall TMainForm::BackNClick(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
Back_Image->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
//
void __fastcallTMainForm::CloseNClick(TObject *Sender)
{
Application->Terminate();
}
//
void TMain Form::Print Page(int line_cou)
//执行print书本内容
{
const int L-TOP = Label1->Height;
//该参数用来设置行距
const int TitleLineCount = Buf-Memo->Lines->Count; //memo总行数
int LabelLeft = 40;
int LabelTop = 38;
if(line_cou < 0)
//line_cou是标记现在的行位置
line_cou = 0;
int lineInx=0;
//当前行数指针
int i=0;
bool vis=1;
int c=Panel_1->ControlCount;
// 得到Panel_1上的控件数
TLabel *pLa;
//定义TLabel类的指针
while(i {
//遍历panel_1上的所有控件,这个方法很有用,
if(Panel-1->Controls[i]->ClassNameIs("TLabel"))
//判断控件类名
{ pLa=dynamic_cast< TLabel* >(Panel_1->Controls[i]); //强行转换指针类型
pLa->Visible= vis;
if(!vis) {i ++; continue;}
//设置多余label为不可视
pLa->Top= LabelTop;
pLa->Left= LabelLeft;
pLa->Caption=Buf_Memo->Lines->Strings[lineInx+line_cou];
//用 label 显示行内容
LabelTop+=L_TOP;
}
else
//若不是想要的(label)类,继续判断下一个控件
{i++; continue;}
i++;
lineInx++;
if(LabelLeft < 300)
if(lineInx+1 == Page_Nums)
{ LabelTop = 38;
LabelLeft = 410;
}
if(lineInx+1 == 2*Page_Nums) //如果已经显示一页
vis = 0;
if(lineInx + line_cou == TitleLineCount-1) //如果全文结束
vis = 0;
}
if(lineInx + line_cou < TitleLineCount-1)
{
Now_Line = line_cou + lineInx; //记录当前行数
End = 0;
}
else
End = 1;
}
//
void TMainForm::Inin()
{
End = 0;
PrintPage(0);
}
//
void TMainForm::Inin_face()
//初始化界面
{
Width = 740;
//这里设置窗体大小
Height = 495;
Back_Image->SendToBack();
Face_Image->BringToFront();
Panel_1->Align = alClient;
ack_Image->Align = alClient;
Face_Image->Align = alClient;
//这些初始化设置,虽然有违“所见即所得”的本意,但却使得在编辑时更方便
}
//
void __fastcall TMainForm::Ri_PanClick(TObject *Sender)
{
//向前翻页
if(!End)
PrintPage(Now_Line);
}
//
void __fastcall TMainForm::Le_PanClick(TObject *Sender)
{
//向后翻页
if(End)
PrintPage(Now_Line - 2*Page_Nums + 1);
else
PrintPage(Now_Line - 4*Page_Nums + 2);
}
//
在最顶部加上
头文件
#include
生成的文件就可以导入jpg图片文件作为背景颜色
另外在头文件的public中,加上:
public: // User declarations
void PrintPage(int line_cou);
// 主执行函数
void Inin(void);
// 初始化打开的文件
void Inin_face(void);
// 初始化界面
对于初学者,需要指出的是,除了上面三个函数之外,其它的都在各自的Events(事件)页双击生成,然后写入函数主体。
注意:由于TMemo类只能支持小于大约30k的文件,所以打开较大的文件也会报错,但用TRichedit类来代替TMemo即可。因为TRichedit类涉及到很多不确定因素(比如如果装vc,把某些dll换成旧版则可能会严重出错),这里还是用TMemo 做个例子。该代码在k6-2-350,win98,c++builder4中编译通过。
laohe (2002-06-14 12:43:00)
Bahl :
delphi能不能实现那种效果
IO321 (2002-06-14 12:59:00)
那个效果能不能实现跟是不是Delphi没有关系。。要看他是怎样实现的。。
我看了一下那个电子名片的软件..
他的翻页用的是图片的x轴变化实现的。。
即翻页的按钮onclick时先将当前页面内容照成一个图片
然后改变内容 再使图片放到其上面 然后用一个for循环使图片的width随时间变小。
然后消失 再重复类似过程在另一边再来一遍。。。
以上是我看到后的猜测 ,不足之处还望大家指教。。。
就是照成图片的时候怎么照
不会是用全屏照下来在用当前程序位置rect出图片吧??。。。好麻烦!
怎样照像才能只照一个控件??
希望各位给于指教
Bahl (2002-06-14 18:03:00)
delphi能实现那种效果
laohe (2002-06-16 9:02:00)
怎么实现呢
isapple (2003-01-05 14:05:00)
这里是Delphibbs呀!虽然可以说别的,可是也应该以DELPHI为主嘛!VC中能实现的,我想
DELPHI也能实现,有哪位大侠能说说?
koolwind (2003-01-05 14:53:00)
laohe:这个网站是教你怎么样自己做这个书本翻页效果
http://rednet.eschool.com.cn/document/20001207/2000120710210101.shtml
laohe (2003-05-30 13:36:00)
多人接受答案了。
Bahl-80,koolwind-20,的回答最终被接受。
-------------------------------------------------------------------------------------------
话题2624171的标题是: fastreport怎么翻页呀? (50分)
分类:报表/统计图形 wangfujun (2004-05-24 10:12:00)
我弄了半天也没不知道fastreport怎么翻页!
我要的翻页效果是在preview是只显视一页,而不是一般fastreport里的那样,一下子把所有的页都连续的显视出来,点下一页的时候再显视下一页,说白了就是像word里的那样!
人家QR就能实现!
wangfujun (2004-05-24 10:33:40)
怎么这个问题没人会么??
虽然我不会,但我觉得这个好像不难!
wwwwb (2004-05-25 8:30:45)
自定义预览窗口试试。
wangfujun (2004-05-25 9:19:00)
我就是自定义的窗体,可以这代码可以怎么写我就不知道了,帮帮忙了!
limaodr (2004-05-25 17:59:12)
用QReport不就行啦!!!
yhwyb (2004-05-25 19:28:52)
我的可以,只是做了一点小动作,有现成的窗口,如果你还没得到解决办法,我给你
请来email:yh419@163.com
yhwyb (2004-05-25 19:34:05)
我晚上不在网,明天上午可以给你发,但你要给我e-mail,如果好用,请多给点分。
快乐的蚂蚁 (2004-05-25 20:52:29)
也想知道
wangfujun (2004-05-26 10:37:10)
我给你发了email了!
分不是问题,先谢谢你了
zyhleaves (2004-05-26 10:28:32)
我也想要,谢谢我的email:myleave@163.net
wangfujun (2004-05-26 14:59:40)
你的那个不行,不是那个效果,你仔细看看word 里面的预览看看和fastreport有什么不一样
jevonscn (2004-05-26 17:06:37)
我的也是这样
现在预览只能看到第一页,其它的页都看不到
怎么设置能打印所有记录啊?还有怎么设计打印机自动连续走纸(针式打印机),不用一张一张的放纸?请大侠指教,急!!
万分多谢!
是用fastreport做的
http://www.wujianrong.com/mt-tb.cgi/3877