题 (50分)

  • 主题发起人 adminmaker
  • 开始时间
A

adminmaker

Unregistered / Unconfirmed
GUEST, unregistred user!
题目:程序里有个LISTBOX1和一个BUTTON1,这个LISTBOX1里随时都有几十条数据
 
E

edren

Unregistered / Unconfirmed
GUEST, unregistred user!
可能要用到别的控件
 
D

dfw001

Unregistered / Unconfirmed
GUEST, unregistred user!
这个问题没有什么超难,你可以这样处理:
不管是否timer或线程,处理listbox中的数据时将5秒没有更新的数据做上标志,然后你在
button中就好处理。
详细代码没心思写,还是让你的老师考考你。
 
W

wwwvw

Unregistered / Unconfirmed
GUEST, unregistred user!
要用timer
 
A

adminmaker

Unregistered / Unconfirmed
GUEST, unregistred user!
只能在button1的click 事件里处理,但可以自己写函数
 
8

80x86

Unregistered / Unconfirmed
GUEST, unregistred user!
还是自己想想把,别让人家给代码,对你以后不好,我给点建议。你可以用两个循环相套,来检查数据库,将数据库中同一字段的不同值写在一个书组中,第一个循环从库里找字段值,第二循环检查是否已存在于数组中,然后将数组的内容用list的additem方法加载下拉匡中,自己动手丰衣足食!
 
A

adminmaker

Unregistered / Unconfirmed
GUEST, unregistred user!
W

wdlyc

Unregistered / Unconfirmed
GUEST, unregistred user!
数据有什么特征?????????????????
 
A

adminmaker

Unregistered / Unconfirmed
GUEST, unregistred user!
每条都不一样,不可能有相同的
每条数据大楷都是这样的
127.0.0.1,上线时间7:20,注释:同学A,编号001
 
Z

zwluban

Unregistered / Unconfirmed
GUEST, unregistred user!
var idstr:string;
在数据更新之前
将所有记录id值添加到idstr中并用,号分开
在数据更新之后
将所删除的记录id值从idstr中删除
button1的click 中将现存的ID值删除就可以了!

 
X

xshengjue

Unregistered / Unconfirmed
GUEST, unregistred user!
做一张表,存放ip,时间等,加上‘更新时间’,就可以查找5秒内没有更新的记录了,
也就可以删除
 
L

LHyForever

Unregistered / Unconfirmed
GUEST, unregistred user!
object Form1: TForm1
Left = 192
Top = 107
Width = 356
Height = 474
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object ListBox1: TListBox
Left = 24
Top = 48
Width = 273
Height = 289
ItemHeight = 13
Items.Strings = (
'127.0.0.1,'#19978#32447#26102#38388'7'#65306'21'#65292#27880#37322#65306#21516#23398'A'#65292#32534#21495'001'
'127.0.0.2,'#19978#32447#26102#38388'7'#65306'20'#65292#27880#37322#65306#21516#23398'B'#65292#32534#21495'002'
'127.0.0.3,'#19978#32447#26102#38388'7'#65306'25'#65292#27880#37322#65306#21516#23398'C'#65292#32534#21495'003'
'127.0.0.4,'#19978#32447#26102#38388'7'#65306'11'#65292#27880#37322#65306#21516#23398'D'#65292#32534#21495'004'
'127.0.0.5,'#19978#32447#26102#38388'7'#65306'18'#65292#27880#37322#65306#21516#23398'E'#65292#32534#21495'005'
'127.0.0.6,'#19978#32447#26102#38388'7'#65306'50'#65292#27880#37322#65306#21516#23398'F'#65292#32534#21495'006'
'127.0.0.7,'#19978#32447#26102#38388'7'#65306'10'#65292#27880#37322#65306#21516#23398'G'#65292#32534#21495'007'
'127.0.0.8,'#19978#32447#26102#38388'7'#65306'20'#65292#27880#37322#65306#21516#23398'H'#65292#32534#21495'008'
'127.0.1.1,'#19978#32447#26102#38388'7'#65306'10'#65292#27880#37322#65306#21516#23398'I'#65292#32534#21495'009')
TabOrder = 0
end
object Button1: TButton
Left = 112
Top = 376
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 1
OnClick = Button1Click
end
object Timer1: TTimer
OnTimer = Timer1Timer
Left = 264
Top = 376
end
end


unit Unit1;

interface

uses
Windows, Forms, ExtCtrls, StdCtrls, Classes, Controls;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

//生明一个记录来保存数据的已存放时间(time)和更改与否(change)
DataToCount = Record
Time: integer;
Change: boolean;
end;

var
Form1: TForm1;
DataArray: Array of DataToCount;//生明一个动态数组来存放时间记录

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
SetLength(DataArray,ListBox1.Items.Count);//设置数组长度
For i:=0 to ListBox1.Items.Count-1 do
begin
DataArray.Time:= 0;//将所有的数组记录中的time清零
DataArray.Change:= True;//将所有的数组记录中的change设为True
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
For i:=0 to ListBox1.Items.Count-1 do
DataArray.Time:=DataArray.Time+1;//时间每过1秒,time就加1
For i:=0 to ListBox1.Items.Count-1 do
if DataArray.Time >= 5 then //如果时间到5秒,就把change设为false
DataArray.Change:= false;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to ListBox1.Items.Count-1 do
if DataArray.Change = False then //如果Change标志为false,就删去这条记录
ListBox1.Items.Clear;
end;
//因而你每加一个数据(或更新一个数据),都要为它安排一组记录保存(或更改它的原来记录)
//并将记录的time设为0,change设为ture
end.
 
A

adminmaker

Unregistered / Unconfirmed
GUEST, unregistred user!
太感谢LHyForever;
这题目50分我自己都觉得不好意思,我决定另加150给你
请去
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2006471
拿分(你只要顺便跟个帖即可)
 
顶部