Additional 팔레트에 있는 ValueListEditor 를 사용하려합니다.
질문 제목처럼 DB 나 txt 화일에서 동적으로 내용을 가져와 ValueListEditor에 넣으려 합니다.
StringGrid와 비슷할 것 같은데..
될듯될듯 잘 안되는군여,....
txt 화일에서 읽어오는 방식이나 아님..
DB에서 읽어오는 방식
두가지 모두..
1줄밖에 읽어오지 못하겠네여..
여러줄을 읽어 오려면 어떻게 해야하려나 .. ㅠ.ㅠ
도와 주세여 ~~
##### txt 에서 불러올 경우..######
procedure TForm1.ReadClick(Sender: TObject);
var
TextfileStr : TStringList;
S : String;
T : Textfile;
idx : integer;
begin
TextfileStr := TStringList.Create;
Assignfile(T, 'D:value.txt');
ReSet(T);
while not Eof(T) do
begin
Readln(T, S);
ExtractStrings([';'], ['|'], PChar(S), TextfileStr); <== ; 구분자로 구별을 하나 1줄만 됨. ㅠ.ㅠ
idx := TextfileStr.Count;
for idx := 0 to TextfileStr.Count -1 do
begin
Editor.Cells[idx, Editor.RowCount-1] := TextfileStr.Strings[idx];
end;
end;
CloseFile(T);
end;
##### DB에서 읽어올 경우 #####
procedure TForm1.Button1Click(Sender: TObject);
var
i, j : Integer;
begin
with Query do
begin
Close;
Sql.Clear;
Sql.Add('select * from mst');
Sql.Add('where serno=''366''');
Open;
if Not Eof then
begin
// Editor.RowCount := RecordCount + 1; <== 열고 컴파일 시 읽기 속성이라는 에러 발생.
with Editor do
begin
for i := 1 to RowCount - 1 do
begin
Cells[0,i] := FieldByName('ekcode').AsString;
Cells[1,i] := FieldByName('serno').AsString;
Next;
end;
end;
end;
end;
end;
for i := 1 to RowCount - 1 do
begin
Cells[0,i] := FieldByName('ekcode').AsString;
Cells[1,i] := FieldByName('serno').AsString;
Next;
end;
이렇게 바꾸시면 될것같네요.....
for i := 1 to RowCount - 1 do
begin
InsertRow(FieldByName('ekcode').AsString, FieldByName('serno').AsString, True);
Next;
end;
즉
ValueListEditor 의 InsertRow 함수를 이용하시면 될거예요...
이상 쉬운답변만 하는 KDDG_09 였습니다....^^
그럼 즐코하세요!!!