Autor Beitrag
cs-schukki
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 26.05.08 17:55 
Hallo, ich möchte eine Prozedur zum Erstellen eines Koordinatensystems im Image_Koord mit Hilfe von Canvas zeichnen.

Hierzu mein Quelltext

ausblenden volle Höhe 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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
var i:integer;
begin
  with Image_Koord.canvas do
  For i:=1 to 20 do
  begin
    Pen.Color := clMedGray;      //Farbe der Hilfslinien
    Pen.Width :=1;               //Breite der Linien
    moveto(50+i*25,0);
    lineto(50+i*25,300);         //Einzeichnen der Hilfslinien in y-Richtung ohne y-Achse
  end;

  with Image_Koord.canvas do
  For i:=0 to 11 do
  begin
    moveto(50,10+i*20);
    lineto(500,10+i*20);         //Einzeichnen der Hilfslinien in x-Richtung über x-Achse
  end;

  with Image_Koord.canvas do
  For i:=13 to 15 do
  begin
    moveto(50,10+i*20);
    lineto(500,10+i*20);         //Einzeichnen der Hilfslinien in x-Richtung unter x-Achse
  end;

  with Image_Koord.canvas do
  begin
    Pen.Width :=3;            //Stiftbreite
    Pen.Color := clBlack;
    moveto(40,250);
    lineto(500,250);          //Zeichnen der x-Achse
    moveto(50,0);
    lineto(50,300);           //Zeichnen der y-Achse

    For i:=0 to 25 do
    begin
      moveto(50+i*50,247);    //Einteilung der x-Achse
      lineto(50+i*50,253);
      moveto(47,10+i*20);     //Einteilung der y-Achse
      lineto(53,10+i*20);
    end;

    For i:=1 to 25 do
    begin
      Textout(40+i*50,252,inttostr(i*50));        //Beschriftung x-Achse
    end;

    For i:=20 downto 1 do
    begin
      Textout(20,245-i*20,inttostr(i*20));        //Beschriftung y-Achse
      Textout(20,245,inttostr(0));
    end;
end;
end;


Momentan wird es noch Formcreate erstellt.
Nun habe ich eine Prozdedur "ZeichneKoordinatensystem" mit genau dem gleichen Quelltext unter dem Implementation-Teil erstellt. Nun plötzlich kann er mit dem Image_Koord (im Quelltext markiert) nichts mehr anfangen und sagt "Undefinierter Bezeichner"

Meine Fragen:
1. Kann das damit zusammenhängen, dass ich im Implementationteil schon eine Komonente zugreifen will, die er noch nicht "kennt"?

2. Was kann ich anders machen, damit er das Image_Koord erkennt?

3. Bitte nicht über meinen Quelltext aufregen, der ist etwas lang und umständlich, aber mit meinen Kenntnissen hinzubekommen...

Vielen Danl für eine schnelle Antwort.
cs
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 765
Erhaltene Danke: 130



BeitragVerfasst: Mo 26.05.08 18:15 
Du hast gerade den Teil des Quelltextes geschrieben, der richtig ist, den vermutlich falschen aber nicht mit kopiert.
Mein Blick auf die Zauberkugel lässt mich vermuten, dass der Quelltext einer selber geschriebenen Prozedur stammt und diese Prozedur kennt Deine Image-Komponente nicht, da es ja eine Komponente des Formulars ist.
Ein möglicher Ausweg zur Lösung: Mache doch Deine Prozedur zu einer Prozedur (Methode) des Formulars (TForm1. davor schreiben und oben in der Typdeklaration eintragen), dann sollte es gehen.

ub60
cs-schukki Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 26.05.08 18:43 
Dankeschön, hat wunderbar geklappt!!!!
cs-schukki Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Mo 26.05.08 19:34 
Ich hab noch eine Frage.

Angenommen ich lass die Funktion zeichnen und möchte mit einem anderen Button zb: Button:Abbrechen alle momentan laufenden Prozesse abbrechen. Also das Programm soll einfach aufhörern zu zeichnen und mir die Eingabe neuer Werte in ein Editfeld ermöglichen. Z.B. Wenn ich erst während des Zeichnen gemerkt hab, dass ich falsche Werte eingegeben habe. Gibt es sowas?

vielen Dank
cs
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Mo 26.05.08 20:12 
also das Zeichnen wird nicht solange dauern, dass du noch nen AbbruchButton klicken kannst :D
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Mo 26.05.08 20:23 
Hallo,

bitte erstelle für jede deiner Fragen ein separates Topic, da die Diskussion mehrerer Fragen in einem Topic für gewöhnlich für Verwirrung und Durcheinander sorgt. Daher:

*geschlossen*


Viele Grüße,
AXMD
Dieses Thema ist gesperrt, Du kannst keine Beiträge editieren oder beantworten.

Das Thema wurde von einem Team-Mitglied geschlossen. Wenn du mit der Schließung des Themas nicht einverstanden bist, kontaktiere bitte das Team.