panel의 색깔을 바꾸려고 하려는데 잘 안돼네요..
테이블의 3번째 필드에서 데이타가 0이면 색깔을 빨간색으로 그 이외의 값은
파란색으로 panel의 색깔을 바꾸려고 합니다.
밑에는 제가 한 건데 안돼네여..
꼭 부탁드립니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
procedure pump1;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.pump1;
var
i : integer;
begin
adoquery1.First;
for i := 1 to adoquery1.recordcount do
begin
if adoquery1.Fields[2].Value = '0' then
begin
panel1.color := clblue;
end
else
panel1.color := clred;
end;
adoquery1.next;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
application.Terminate;
end;
end.
> panel의 색깔을 바꾸려고 하려는데 잘 안돼네요..
> 테이블의 3번째 필드에서 데이타가 0이면 색깔을 빨간색으로 그 이외의 값은
> 파란색으로 panel의 색깔을 바꾸려고 합니다.
> 밑에는 제가 한 건데 안돼네여..
> 꼭 부탁드립니다.
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
> Db, ADODB, ExtCtrls, StdCtrls;
>
> type
> TForm1 = class(TForm)
> Panel1: TPanel;
> DataSource1: TDataSource;
> ADOQuery1: TADOQuery;
> Button1: TButton;
> procedure Button1Click(Sender: TObject);
>
> private
> { Private declarations }
> public
> procedure pump1;
> { Public declarations }
> end;
>
> var
> Form1: TForm1;
>
> implementation
>
> {$R *.DFM}
>
> procedure TForm1.pump1;
> var
> i : integer;
> begin
> adoquery1.First;
> for i := 1 to adoquery1.recordcount do
> begin
> if adoquery1.Fields[2].Value = '0' then
> begin
> panel1.color := clblue;
> end
> else
> panel1.color := clred;
> end;
> adoquery1.next;
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> application.Terminate;
> end;
>
> end.
>
현재 선택된 레코드의 3번째 필드 값에 의해 패널의 색상을 바꾸실려고 그러시는 건가요?
지금 현재 코딩을 보면 항상 맨 마지막 레코드의 값에 의해 색상이 결정되도록 되어 있는 것 같네요.
ADOQuery에도 AfterScroll 이벤트가 있는 것 같네요. 그 이벤트에서 색상 변경하는 루틴을 넣어주시면 될 것 같은데요.
if adoquery1.Fields[2].Value = '0' then
panel1.color := clblue;
else
panel1.color := clred;