델파이을 처음하는 사람입니다.
문제는 책에 예제를 보고 하는데....
변수를 선언하고 그것을 이용 카운터를 만들고자 합니다.
그런데...
컴파일시키면 선언된부분은 실행이 되지 않고 넘어갑니다.
어디가 틀린건지 잘 모르겠네요
procedure TForm1.Image1Click(Sender: TObject);
var s:integer;<- s을 int로 추가했는데...
begin
s:=0 ; <-이놈은 인식을 하는데
if s=0 then
begin
s:=1 ; <-이놈은 건너뛰더라구요
Image1.width:=110;
Image1.height:=110;
end
else
begin
s:=0; <-이놈도 건너뛰더라구요
image1.Width:=300;
image1.Height:=300;
end
end;
end.
그리고 밑에 힌트나오는곳에는
[Hint] Unit1.pas(72): Value assigned to 's' never used 라고 나오는군요
어떻게 해야 하나요....
베이직하고 이건 넘 틀리네요...흐흑흑
알려주세요
변경 하는것 같은데... 맞을련지 모르겠습니다.
이 소스를 보면 's' 가 Local 변수 입니다.
그러니 그림의 크기가 항상 110 이죠..
소스상에서는 문제가 없습니다. 그렇죠?
그리고 's'에 1를 넣고 끝나면 변수가 사라지고...
아마 컴파일러가 's'에 대하여 계속 같이
할당 되니까 ... 메시지가 나오는것 같습니다.
제가 알고 있는 알고리즘맞다면 다음과 같이 해보십시오.
if image1.Width = 300 then
begin
Image1.width:=110;
Image1.height:=110;
end elsebegin
image1.Width:=300;
image1.Height:=300;
end;
이렇게 하면 그림의 크기는 계속 변하므로 이상없죠.
's'를 어떤 값으로 넣고 싶으면 전역변수 처리를하십시오.
델파이 Unit 선언부에 보면 Public 있죠...
아님 객체로 선언해서 다른 폼에서도 변수에 넣고 싶으면
var
Form1: TForm1;
s: integer;
이렇게 하는것도 방법입니다...
전역변수처럼 사용하는법은 여러가지가 있습니다.
위에 있는것은 참고 하십시오.
^^! .. 제가 제대로 설명 했는지 모르겠습니다.
즐프되세요..