Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Problem durch case (https://www.delphipraxis.net/156102-problem-durch-case.html)

Matze33 19. Nov 2010 21:56

Problem durch case
 
Hi,
bin grad dabei, n Programm zu schreiben, hab aber ein Problem.

Delphi-Quellcode:
begin
  n:=0;
  r:=StrtoInt(LabeledEdit2.Text);
  maxzahl:=StrtoInt(LabeledEdit1.Text);
  breite:=Image1.Picture.Width;
  hoehe:=Image1.Picture.Height;
  repeat
    x:=random(breite);
    y:=random(hoehe);
    farbe:=Image1.Canvas.pixels[x,y];
    Image1.Canvas.pen.color:=farbe;
    Image1.Canvas.brush.color:=farbe;
    //case method of
    //1:
    Image1.Canvas.ellipse(x-r,y-r,x+r,y+r);
    //2: Image1.Canvas.Rectangle(x-r,y-r,x+r,y+r);
    inc(n);
  until n>=maxzahl;
  Image1.Refresh;
end;
Wenn ich die // wegnehme (und den zugehörigen Befehl zu 1: in eine Zeile setze), komme folgende Fehler:
[Error] Unit1.pas(97): Constant expression expected
[Error] Unit1.pas(102): Statement expected but 'PROCEDURE' found

Z. 97 ist diese: "inc(n);"
Z. 102 ist der Anfang der nächsten Prozedur (procedure TForm1.BitBtn1Click(Sender: TObject);)

Kann mir jemand weiterhelfen? Ich möchte, wie man im Quelltext sieht, verschiedene Methoden benutzen können, indem ich im Menü von verschiedenen Möglichkeiten eine auswählen kann, das dann "gespeichert" wird und ich über einen separaten Button den Befehl dann ausführen kann. Wie das mit dem Auswählen geht, müsste ich auch noch mal erklärt bekomme, bitte^^

Danke und schönen Abend noch.

Matze 19. Nov 2010 21:59

AW: Problem durch case
 
Ein Case-Block endet immer mit einem "end". Nicht vergessen.

Matze33 19. Nov 2010 22:01

AW: Problem durch case
 
Das alles? Wow -.-
Man ey, wie viel Zeit hab ich dadurch jetzt verschwendet? :D

Kannst du mir das mit der Auswahl der Methode bitte noch erklären? Also, wie ich es dann mache, weiß ich auch, aber nicht, wie ich dem Menü diese Auswahlfunktion verpasse.

Matze 19. Nov 2010 22:04

AW: Problem durch case
 
Was meinst du genau?
Das hier mit dem fehlenden "end"?
Delphi-Quellcode:
case method of
  1: Image1.Canvas.ellipse(x-r,y-r,x+r,y+r);
  2: Image1.Canvas.Rectangle(x-r,y-r,x+r,y+r);
end;

Matze33 19. Nov 2010 22:12

AW: Problem durch case
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ne ne, der Abschnitt ist an sich fertig^^
Ich hab mal n Bild angehängt, wie ich das meine. Ich muss gar nicht wissen, wie man damit dann inhaltlich groß was macht, sondern nur wie man die "Oberfläche" erstellt (ich rede von den Auswahl-...punkten).

Und bevor ich es vergesse: Was gibt es noch für Formen aus Ellipse und Rectangle? Ganz egal, welche Form, nur irgendwas, das auch funktioniert^^

Matze 19. Nov 2010 22:17

AW: Problem durch case
 
Ähm zukünftig bitte pro Frage ein neues Thema erstellen, sofern die Fragen nicht direkt zusammenhängen. Sonst ist es kaum möglich über die Suchfunktion vernünftige Ergebnisse zu erhalten.

Dennoch ganz kurz zu den Fragen:

1. TMainMenu
2. Geometrische Formen (Abschnitt "Zweidimensional")

Matze33 19. Nov 2010 22:30

AW: Problem durch case
 
Alles klar, das mit dem Menü habe ich jetzt fast hinbekommen.
Delphi-Quellcode:
procedure TForm1.Kreise1Click(Sender: TObject);
begin
  begin method:=1;
  Kreise1.Checked:=True;
  end;
end;
Das hab ich jetzt als Beispiel genommen. Das bewirkt aber einen Haken vor der Auswahl im Menü. Also eine Mehrfachauswahl. Ich möchte aber nur eine Einfachauswahl.

Und zu den Figuren. Die Liste ist ja schön und gut, aber das verrät mir leider nicht, wie die Viecher in Delphi heißen und welche Parameter ich dahinter angeben muss. Ich hab eben schon mal Polygon bei Delphi gesehen, aber mir war nicht klar, was ich noch für Werte liefern soll.

Matze 19. Nov 2010 22:35

AW: Problem durch case
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Matze33 (Beitrag 1062673)
Das hab ich jetzt als Beispiel genommen. Das bewirkt aber einen Haken vor der Auswahl im Menü. Also eine Mehrfachauswahl. Ich möchte aber nur eine Einfachauswahl.

Relevant sind "GroupIndex", "AutoCheck" und "RadioItem". Demo s. Anhang.

Zitat:

Zitat von Matze33 (Beitrag 1062673)
Und zu den Figuren. Die Liste ist ja schön und gut, aber das verrät mir leider nicht, wie die Viecher in Delphi heißen und welche Parameter ich dahinter angeben muss. Ich hab eben schon mal Polygon bei Delphi gesehen, aber mir war nicht klar, was ich noch für Werte liefern soll.

Viecher, pffff.
Wenn du "Canvas." eingibst, dann siehst du ja, was es alles gibt. Das, was es dort nicht gibt, kannst du dir mittels ".Polygon" oder ".MoveTo" und ".LineTo" selbst zeichnen. Einfach bissl rumprobieren bzw. die Hilfe dazu durchlesen.

Über die Delphi-Referenz findest du fast alles, was du brauchst. Auch Beispiele zu Canvas.Polygon.

Matze33 19. Nov 2010 23:27

AW: Problem durch case
 
Danke schön. Habs jetzt soweit fertig, die Grundlagen. Dann muss ich mir nur noch mal ein paar mehr Formen einfallen lassen^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz