Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Undefinierter Bezeichnet TPaint1 (https://www.delphipraxis.net/33773-undefinierter-bezeichnet-tpaint1.html)

Darty 12. Nov 2004 12:08


Undefinierter Bezeichnet TPaint1
 
Diese folgende Code war zuvor in ein ButtomClick Procedure.
Als ich mit dem testen fertig war, wollte ich daraus eine D_KO_8_zeichnen Procedure machen
damit ich dann in der OnPaint dieses aufrufen kann.
Mit dem Buttomclick funktionierte es aber nach dem umändern in einer eigene Procedure nicht mehr.
Irgendwie stehe ich gerade auf der Leitung und kriege das gerade nicht hin ??

Delphi-Quellcode:
procedure D_KO_8_zeichnen();
var
s: string;
i: integer;
begin
  D_KO_8;
  i := 1;
  while i < 27 do
  begin
    s := IntToStr(Spielfeld_array[i,1]);
    DrawBox(Paintbox1.Canvas.Handle, Spielfeld_array[i,2], Spielfeld_array[i,3], s);
    inc(i);
  end;
end;

Dax 12. Nov 2004 12:11

Re: Undefinierter Bezeichnet TPaint1
 
Deine Prozedur musst du umändern, damit sie auf das Form zugreift. Es gibt zwei Varianten:
Delphi-Quellcode:
procedure TFormX.D_KO_8_zeichnen();
und
Delphi-Quellcode:
procedure D_KO_8_zeichnen();
var
s: string;
i: integer;
begin
  with FormX do
  begin
    D_KO_8;
    i := 1;
    while i < 27 do
    begin
      s := IntToStr(Spielfeld_array[i,1]);
      DrawBox(Paintbox1.Canvas.Handle, Spielfeld_array[i,2], Spielfeld_array[i,3], s);
      inc(i);
    end;
  end;
end;
Edits: Schreibfehler.. :roll:

himitsu 12. Nov 2004 12:21

Re: Undefinierter Bezeichnet TPaint1
 
Oder auf Alles, was zum Form gehört, richtig zugreifen.

z.B. statt PaintBox1 > Form1.PaintBox1 verwenden

Code:
procedure D_KO_8_zeichnen();
var
s: string;
i: integer;
begin
  D_KO_8;
  i := 1;
  while i < 27 do
  begin
    s := IntToStr(Spielfeld_array[i,1]);
    DrawBox([color=red]Form1.[/color]PaintBox1.Canvas.Handle, Spielfeld_array[i,2], Spielfeld_array[i,3], s);
    inc(i);
  end;
end;

Ach ja, wenn du die variante vom Dax verwenden willst, dann muß deine Prozedur natürlich auch in die Form-Definition eingetragen werden. (z.B. unter PRIVAT)

Darty 12. Nov 2004 20:40

Re: Undefinierter Bezeichnet TPaint1
 
Zunächst mal Danke an euch beiden für euer Hilfe. Habe die 2. Variante genommen die auch prima funktioniert hat. Hatte aber auch die 1. Variante ausprobiert, aber irgendwie bekomme ich das nicht hin obwohl ich es auch in Private definiert habe. Möglich das ich es irgendwie doch falsch gemacht hatte.
Falls Ihr wegen der 1. Variante noch was dazu sagen könnt tut das ruhig damit ich das auch "begreife". Aber in Moment tut die 2. Variante ja auch :)

Robert_G 12. Nov 2004 21:08

Re: Undefinierter Bezeichnet TPaint1
 
Ähm....
Wenn die Prozedur zur Form gehört:
Delphi-Quellcode:
procedure DeineForm.D_KO_8_zeichnen();
Wenn nicht musst du natürlich alle nötigen Verweise nitgeben:
Delphi-Quellcode:
procedure D_KO_8_zeichnen(paintBox :TPaintBox, spielFelder :TSpielFeldArray);
var
s: string;
i: integer;
begin
  D_KO_8;
  for i := 1 to 26 do // Warum auch immer 1 & 26 *?*
  begin
    s := IntToStr(spielFelder[i,1]);
    DrawBox(paintBox.Canvas.Handle,
            spielFelder[i,2],
            spielFelder[i,3],
            s);
    inc(i);
  end;
end;
:lol: Die Typen der Parameter waren wirklich C#. (gar nicht gemerkt :mrgreen: )

Dax 12. Nov 2004 21:08

Re: Undefinierter Bezeichnet TPaint1
 
Oh Robert :roll: Das hier ist Delphi, nicht C#...

Darty 13. Nov 2004 19:54

Re: Undefinierter Bezeichnet TPaint1
 
Danke Dir auch, das Problem ist hier ja nun gelöst :) Weiter gehts mit :coder2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:09 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