아래소스인데여
리스박스에서는 자료가 처리되는데 테이블에는 변화가 전혀 없음니다.
그리구 버튼클릭하면 자료처리결과를 바로 볼수 있으면 좋겠는데 리스트박스에 변화된자료를 볼려면 tabsheet를 다른데 갔다 와야 보이거든여
어케하면 좋을까여....
부탁함당.. 쩝
그럼 수고하시구여....
procedure TForm1.TabSheet1Show(Sender: TObject);
var
data1 : string; // 사용자명
data2 : string; // 비밀번호
data3 : string; // 사용자종류 코드
data4 : string; // 사용자종류
begin
RadioButton2.checked := true;
RadioButton4.checked := true;
edit3.text := '2';
edit4.text := '1';
with table1 do
begin
try
first;
listbox1.clear;
while not eof do
begin
data1 := fieldbyname('user_name').asstring; // 사용자명
data2 := fieldbyname('user_password').asstring; // 비밀번호
data3 := fieldbyname('user_kind').asstring; // 운영자종류 코드
if data3 = '1' then
data4 := '주사령'
else if data3 = '2' then
data4 := '선사령'
else data4 := '보수사령';
listbox1.Items.add(data1 + #32 + data2 + #32 + data4);
next;
end;
except
cancel;
raise;
end;
end;
end;
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
size1, size2, size3, tab_pos : integer;
col1, col2, col3 : trect;
d : string;
begin
size1 := 70;
size2 := 70;
size3 := 70;
col1 := rect;
col2 := rect;
col3 := rect;
col1.right := size1;
col2.Left := col1.right + 1;
col2.right := col2.left + size2;
col3.left := col2.Right + 1;
col3.right := col3.left + size3;
d := tlistbox(control).items[index];
with tlistbox(control).canvas do
begin
fillrect (rect);
tab_pos := pos(#32, d);
textrect(col1, col1.left, col1.top, copy(d, 1, tab_pos - 1));
d := copy(d, tab_pos + 1, length(d) - tab_pos + 1);
tab_pos := pos(#32, d);
textrect(col2, col2.left, col2.top, copy(d , 1, tab_pos - 1));
d := copy(d, tab_pos + 1, length(d) - tab_pos + 1);
textrect(col3, col3.left, col3.top, d);
end;
end;
function substr(buf : string; const position : integer;
const delimiter : string = ',') : string;
var
strlen, zeichenidx, subidx, kompos : integer;
begin
result := '';
buf := buf + delimiter;
strlen := length(buf);
zeichenidx := 1;
subidx := 1;
while zeichenidx <= strlen do
begin
kompos := pos(delimiter, buf);
if kompos <> 0 then
begin
if subidx = position then
begin
result := copy(buf, 1, kompos - 1);
break;
end;
delete(buf, 1, kompos);
inc(subidx);
end;
inc(zeichenidx);
end;
end;
procedure TForm1.ListBox1Click(Sender: TObject);
var
i : integer;
buf, id, pw, kind, kindint : string;
begin
i := listbox1.itemindex;
buf := listbox1.Items[i];
id := substr(buf, 1, #32);
pw := substr(buf, 2, #32);
kind := substr(buf, 3, #32);
if kind = '주사령' then
kindint := '1'
else if kind = '선사령' then
kindint := '2'
else if kind = '보수사령' then
kindint := '3';
edit1.text := id;
edit2.text := pw;
edit3.text := kindint;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if (edit1.text <> '') and (edit2.text <> ' ') then
begin
case strtoint(edit4.text) of
1 :
begin
table1.SetKey;
table1.FieldByName('user_name').asstring := edit1.text;
if not table1.gotokey then
begin
table1.append;
table1.fieldbyname('user_name').asstring := edit1.text;
table1.fieldbyname('user_password').asstring := edit2.text;
table1.fieldbyname('user_kind').asstring := edit3.text;
table1.post;
end
else
showmessage('이미 있습니다.');
listbox1.Refresh;
end;
2 :
begin
table1.first;
table1.SetKey;
table1.FieldByName('user_name').asstring := edit1.text;
if table1.gotokey then
begin
table1.edit;
table1.fieldbyname('user_name').asstring := edit1.text;
table1.fieldbyname('user_password').asstring := edit2.text;
table1.fieldbyname('user_kind').asstring := edit3.text;
table1.post;
end
else
showmessage('사용자가 없습니다.');
listbox1.Refresh;
end;
3 :
begin
table1.SetKey;
table1.FieldByName('user_name').asstring := edit1.text;
if table1.gotokey then
begin
table1.delete;
end
else
showmessage('사용자가 없습니다.');
end;
end;
end
else
showmessage('값을 입력하시요');
end;
end.