Entwickler-Ecke

Sonstiges (Delphi) - Problem mit Form färben


GericasS - Mi 10.10.07 09:28
Titel: Problem mit Form färben
Hey,

sry schoneinmal für die schlechte Wahl des Titles aber mit ist echt nichts bessres eingefallen.

Hier das Problem bei dem folgenden Code :


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.Button1Click(Sender: TObject);
var
i : Integer ;
begin
    for i := 0 to 10 do
      begin
        Label1.caption := IntToStr(i);
        application.ProcessMessages;
        sleep(60);
end;
    begin
     IntToStr((StrToInt(label1.caption)));
     if (i >= 1 ) and (i <= 10then
      begin
        case farbe of
          1 : begin
            Form1.Color := clRed ;
                end;
          2 : begin
            Form1.Color := ClBlue ;
                end;

end;

end.


Meiner Meinung nach liegt das Problem im zweiten Teil, ich weiß nur nicht wo weil er mir nur asgt, das ein "Record, Objekt oder Klassentyp" erforderlich sei.
Sry, aber als Anfänger weiß ich hier nichht weiter :(

Grüße

GericasS


Kroko - Mi 10.10.07 09:39

(a) schau die mal Zeile 12 an
(b) zwei Zeichen Einrückung reichen
(c) end unter begin


Gausi - Mi 10.10.07 09:46

Ich sag mal so: Der Code ist kreativ. ;-)

Was willst du denn erreichen?


jasocul - Mi 10.10.07 09:48


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer ;
  farbe : integer; // fehlte
begin
  for i := 0 to 10 do
  begin
    Label1.caption := IntToStr(i);
    application.ProcessMessages;
    sleep(60);
  end;

// ein begin gelöscht
  farbe := StrToInt(label1.caption); //irgendwohin muss das Ergebnis zugewiesen werden
  if (i >= 1 ) and (i <= 10then
  begin
    case farbe of
      1 : Form1.Color := clRed ;
      2 : Form1.Color := ClBlue ;
    end;
  end// fehlte

end.

- Richtig einrücken spart die Fehlersuche
- Einrückungen üblicherweise 2 Zeichen
- Ich habe es mal so gemacht, wie ich es mir angewöhnt habe

Eigentlich willst Du doch, dass die Farbe jede Sekunde geändert wird, oder? Dann sollte der untere Block eigentlich auch in der Schleife stehen und nicht darunter. :wink:


GericasS - Mi 10.10.07 09:48

user profile iconGausi hat folgendes geschrieben:
Ich sag mal so: Der Code ist kreativ. ;-)

Was willst du denn erreichen?


Also,

eigentlich soll gar nicht so viel geschehen, nur immer wenn das label was ausgibt ( eine zahl ) soll die Farbe sich ändern. Ich hoffe das der Code überhaupt im Ansatz richtig ist.

@jasocul : Die var. farbe war global deklariert ! Aber ich danke dir für die Hilfe !