delphi7的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi7的问题相关的知识,希望对你有一定的参考价值。

我是一个delphi初学者,想用delphi7做一个小软件实现一些小的功能,比如:设置3个按键 button1、button2、button3,当我点击button1时,显示内容A在窗体A中,点击button2时显示内容B在窗体A中,点击button3是显示内容C在窗体A中(注:窗体A中只显示其中一种内容,未点击按钮前,窗体A中是内容D)。请教高手赐教我该用到哪些组件,及相关代码。非常感谢!
大体上就这样子

假设你说说的内容是文本字符串。那么除了三个按钮外,再增添一个memo控件。
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Lines.Add('内容D');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Clear ;
memo1.Lines.Add('内容A');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Clear ;
memo1.Lines.Add('内容B');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
memo1.Clear ;
memo1.Lines.Add('内容C');
end;追问

内容A、B、C像一个列表,如下:
助记符 功能说明 字符数 振荡周期
MOV A,Rn 寄存器内容送入累加器 1 12
MOV A,direct 直接地址单元中的数据 1 12
.... ..... .. ..

就跟问题中的截图一样,请教怎么处理?拜谢!

参考技术A 这个没有难度啊,
如果你只是要实现按按钮就在右边显示相应的内容.直接双击按钮,在里面输入内容就可以了.这个1楼和2楼都已经回答.
如果你要维护一个数据表并从表里提取数据,这个维护数据表功能比你说的这些内容要麻烦得多.
不知道你需要的是哪个
参考技术B 你的截图里面主要用到了button控件和listview控件。
图中的列表的形式 就是用了listview的效果;追问

我的截图中用了5个button控件 2个label控件 1个richedit控件。我想要的结果就是当我按其中任何一个button时,在richedit控件里能显示截图里面的内容。不同的button所包含的内容不一样,但是都是像表格形式的。不知道怎么做才能实现。望指教!

关于delphi中照片显示的问题

我在做一个档案资料的系统
数据库是用access
现在我把照片存入access中
然后要在delphi中显示出来
请问我该怎么做....
谢谢

给你转的代码吧,现在已近很少用Access了
一、 原理介绍--流式数据的类型及其应用
在Dephi中提供了TStream来支持对流式数据的操作。TStream是万流之源。
但由于它是一个抽象类,故不能被直接使用;而要使用其相应的子类,
如:TFileStream 、TStringStream、TMemoryStream、TBlobStream、
TWinSocketStream和TOleStream。TStream提供了统一、简洁的方法来进行数据的读写。
1.)SaveToStream(Stream: TStream ); 作用:将类中的数据写到Stream的当前位置中
2.)LoadFromStream(Stream: TStream); 作用:从当前位置读入Stream里的数据
实际使用时我们基本上只要使用上面两个函数就可以了。

二、所遇到的问题及相应的解决方法
为了节省图像的存储空间和使用更加方便,决定采用JPEG这种图像格式。

(一)所遇到的问题

第一、在Delphi 5中进行画图所用到的组件是TImage,所生成的图像的格式为BMP格式,
而为了节省图像的存储空间,图像在数据库里存储的格式须为JPEG格式,这样就产生了
图像格式转化的需求;而TImage本身并不直接提供这两种图像格式之间的转化。

第二、怎样将存储在Microsoft Access数据库中的图像取出并且显示出来:在Delphi 5
中,能提供这种功能的组件是TDBImage,但该组件却存在着一个很大的缺陷:它所能显
示的图像类型只能是一些图标文件,元文件和BMP文件,而不能支持JPEG格式的图像在
该组件中的显示;但根据实际需要,在Microsoft Access数据库中所存储的图像数据却
是以JPEG格式保存的。

(二)相应的解决方法
为了解决上述两个问题,可以采用目前数据库中一种名为大二分对象(BLOB--Bina
ry Large Object),它是用来处理某些特殊格式的数据的。BLOB在数据库的表中实际上
是以二进制数据的形式存放的。为了处理BLOB字段,可以借鉴一些可视的桌面数据库的
方法。在这里,我们选择了通过内存流的方式来完成;使用内存流,可减少磁盘操作,
大大提高运行效率。
具体的过程和相关的程序代码如下:

1、如何实现在Microsoft Access数据库中的图像存储:
这里是利用TStream的子类TMemoryStream向Microsoft Access数据库中存储图像的。
下面的这段代码是在按了“保存”按钮之后所触发的事件处理程序:
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(Image.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
Table1.Edit;
TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS);
Table1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;
在这段代码里TStream的子类TMemoryStream利用内存流起到了将BMP格式转化为JPEG格式
的中间桥梁的作用。

2、如何将图像从Microsoft Access数据库中取出并显示出来:
下面的这段代码是在按了“查看图像”按钮之后所触发的事件处理程序:
procedure TForm1.Button1Click(Sender: TObject);
var tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create('');
TBlobField(Query1.FieldByName('Image')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
这段代码的主要作用是:首先将查询结果中的JPEG图像格式数据保存到TStringStream中去,
然后设置数据指针在TStringStream中的位置为0;接着从TStringStream中读入相关数据,
并把它们赋给TDBImage.Picture.Bitmap,这样一来就实现了将数据库中所存储的JPEG格式的
数据转化为BMP格式,并在TDBImage中将图像显示出来。最后将TStringStream和TJPEGImage
这两个对象释放掉。特别要注意的是不能在设计阶段设置TDBImage的DataField属性,而只能
通过写代码的形式在运行阶段把利用流式数据所转化过来的新格式的图像数据赋给
TDBImage.Picture.Bitmap。

2003-10-7 11:10:00
发表评语»»»

2003-10-7 11:11:44 BMP格式转化为JPEG格式uses Jpeg;

procedure CopyBmpToJpeg(BmpFile,JpegFile:string);
var
Bmp:TBitmap;
Jpeg:TJPEGImage;
begin
Bmp:=TBitmap.create;
Jpeg:= TJpegImage.Create;
try
Bmp.LoadFromFile(BmpFile);
Jpeg.Assign(Bmp);
Jpeg.SaveToFile(JpegFile);
finally
Bmp.Free;
Jpeg.Free;
end;
end;

2003-10-7 14:28:34 图片缩放Var B:Tbitmap; //临时位图
Begin
B:=Tbitmap.Create; //建立临时位图
B.Assign(YourBitmap); //采用相同色彩深度
With B do
Begin
Width:=90; //临时位图的大小为90x90
Height:=90;
End;
B.canvas.StretchDraw(B.canvas.Cliprect,YourBitmap); //缩放适应
B.SavetoFile(YourFileName); //保存
B.Free;
End; //搞定

2003-10-22 10:33:33 JPEG和BMP同时存入,两种不同的方法,文件流和内存流procedure TForm1.Button1Click(Sender: TObject);
var
fs:TFileStream;
MS: TMemoryStream;
Bmp:TBitmap;
MYJpeg:TJPEGImage;
begin
if OpenPictureDialog1.Execute then
begin
if ExtractFileExt(OpenPictureDialog1.FileName) = '.bmp' then
begin
Bmp:=TBitmap.create;
MYJpeg:= TJpegImage.Create;
MS:=TMemoryStream.create;
try
Bmp.LoadFromFile(OpenPictureDialog1.FileName);
with MYJpeg do
begin
Assign(Bmp);
MS.Position:=0;
SaveToStream(MS);
Table1.Edit;
TBlobField(Table1.FieldByName('ZGZP')).LoadFromStream(MS);
Table1.Post;
end;
finally
Bmp.Free;
MYJpeg.Free;
MS.Free;
end;
end
else
begin
fs:=TFileStream.Create(OpenPictureDialog1.FileName,fmOpenRead);
Try
Table1.Edit;
TBlobField(Table1.FieldByName('ZGZP')).LoadFromStream(fs);
Table1.Post;
Finally
fs.free;
end;
end;
end;

2003-11-13 21:03:18 图片的缩放procedure TForm1.Button1Click(Sender: TObject);
var
b: TBitmap;//原图片
nb: TBitmap;//Resize以后的图片
r: TRect;
begin
b := TBitmap.Create;

if OpenDialog1.Execute then
begin
b.LoadFromFile(OpenDialog1.FileName);
nb := TBitmap.Create;

//你可以自己定义高度和宽度,这里是都变成一半
nb.Height := b.Height div 2; //高度变为原来的一半
nb.Width := b.Width div 2; //宽度变为原来的一半
r.TopLeft := Point(0, 0);
r.BottomRight := Point(nb.Width, nb.Height);

with nb.Canvas do
begin
Pen.Style := psDash;
Brush.Style := bsClear;
Rectangle(0, 0, nb.Width, nb.Height);
StretchDraw(r, TGraphic(b));
end;
if SaveDialog1.Execute then nb.SaveToFile(SaveDialog1.FileName);
nb.Free;
end;
b.Free;
end;
参考技术A 远程协助吧!在这打字很累,你也不容易看明白吧。哈。
简单的说,DELPHI操作二进制的对象类型,显示可以使用IMAGE的组件。
QQ:5397859本回答被提问者采纳

以上是关于delphi7的问题的主要内容,如果未能解决你的问题,请参考以下文章

Delphi7装控件失败后打不开delphi7,怎么决解呢

delphi7 提示注册过期问题

delphi7 WebServices 读取数据

让delphi2010操作界面回到delphi7模式

Delphi7 安装ICS

Borland delphi7 安装完之后运行,就马上弹出一个名为“Error”对话框