AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Wie kann ich auf Komponenten zugreifen,deren Index variabel.
Thema durchsuchen
Ansicht
Themen-Optionen

Wie kann ich auf Komponenten zugreifen,deren Index variabel.

Offene Frage von "Kn1bbl"
Ein Thema von Kn1bbl · begonnen am 20. Jan 2005 · letzter Beitrag vom 7. Feb 2005
 
Kn1bbl

Registriert seit: 23. Nov 2003
9 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Wie kann ich auf Komponenten zugreifen,deren Index varia

  Alt 7. Feb 2005, 17:21
So, ich habe jetzt deinen Tipp beachtet und es klappt damit auch soweit.

Code:
procedure TForm1.ImageClick(Sender: TObject);
begin
  if actualPlayer = 2 then
    Player2Draw
  else
  begin
    if Sender = Feld1 then
      DrawSymbol(Feld1)
   else if Sender = Feld2 then
     DrawSymbol(Feld2)
   else if Sender = Feld3 then
     DrawSymbol(Feld3)
   else if Sender = Feld4 then
     DrawSymbol(Feld4)
   else if Sender = Feld5 then
     DrawSymbol(Feld5)
   else if Sender = Feld6 then
     DrawSymbol(Feld6)
   else if Sender = Feld7 then
     DrawSymbol(Feld7)
   else if Sender = Feld8 then
     DrawSymbol(Feld8)
   else if Sender = Feld9 then
     DrawSymbol(Feld9);
   end;

  if actualPlayer = 1 then
    actualPlayer := 2
  else if actualPlayer = 2 then
    actualPlayer := 1;
end;

procedure TForm1.Player2Draw;
var randomfield: integer;
begin
  randomize;
  repeat
    randomfield := random(8) + 1;
  until(fields[randomfield] = 0);

  DrawSymbol(Feld+randomfield);
end;

procedure TForm1.DrawSymbol(imageSender: TObject);
begin
  TImage(imageSender).Canvas.Pen.Width := 5;

  if(fields[TImage(imageSender).Tag] = 0) then
  begin
    if actualPlayer = 1 then
    begin
      TImage(imageSender).Canvas.Pen.Color := clRed;
      TImage(imageSender).Canvas.MoveTo(0, 0);
      TImage(imageSender).Canvas.LineTo(TImage(imageSender).Width, TImage(imageSender).Height);
      TImage(imageSender).Canvas.MoveTo(TImage(imageSender).Width, 0);
      TImage(imageSender).Canvas.LineTo(0, TImage(imageSender).Height);
    end
    else
    begin
      TImage(imageSender).Canvas.Pen.Color := clBlue;
      TImage(imageSender).Canvas.Ellipse(5, 5, (TImage(imageSender).Width - 5), (TImage(imageSender).Height - 5));
    end;
    fields[TImage(imageSender).Tag] := actualPlayer;
  end
  else
    showmessage('Dieses Feld ist bereits gesetzt');
end;
Nun ist mein Problem dass clickImage alles weitergibt wie es soll und die Procedure DrawSymbol auch alles dann richtig ausführt.

Allerdings will ich nun in der Proce Player2Draw per Zufall bestimmen lassen, in welches Feld er zeichnen soll. Wie kann ich das dann an die DrawSymbol übergeben? mit 'DrawSymbol(Feld+randomfield);' geht es nicht.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz