Einzelnen Beitrag anzeigen

Riclem

Registriert seit: 16. Mai 2014
8 Beiträge
 
#7

AW: In Image einer anderen Unit zeichnen

  Alt 17. Mai 2014, 08:01
Ach du Armer, mir kommen die Tränen Das, was du nicht in der Schule lernst, mußt du dir selbst beibringen. Es gibt zahlreiche gute Tutorials. Auch die Online-Hilfe bietet immer wieder gute Hinweise über Funktionsweisen z.B. von Properties und Ereignissen.
Bzgl. der Sache mit dem Canvas-Zeichnen habe ich schon online nach Lösungen geschaut. Bei OnChange hast du natürlich recht, da hätte ich selbst nachschauen können..das war Faulheit
Zitat von Perlsau:
Wieso schreibst du die Methode, die das Image bearbeitet, nicht einfach in die dazugehörige Unit und rufst diese Methode dann von deinem ButtonClick oder deiner OnChange-Behandlung aus auf? Benötigte Werte übergibst du dann einfach als Parameter.
Weil ich die Lösung eigentlich auch nicht soo schlecht finde, weil ich (trotz Internetrecherche) globale Procedures irgendwie nicht gebacken bekam...

Zitat von Povov:
Ich denke mir du mußt mehr veröffentlichen.
Ich habe 2 Units(Unit1, PEG) und 2 Forms(Form1, Form2). Unit1 gehört zu Form1, PEG gehört zu Form2. Form2 ist die MainUnit, die ruft dann per Form1.Show; die zweite Form auf. Das klappt auch. Wie oben schon gezeigt, ist Unit1 auch in PEG eingebunden. (Muss man nur alle Units in die Main Unit einbinden oder auch die Main Unit in allen anderen nochmal?)

Die Zeile Form1.Image1.Canvas.Pixels[1, 1] := clBlack; (das steht in PEG und bezieht sich auf Unit1/Form1) ist in eine "repeat until"-Schleife eingebunden.
In einer procedure, die in der Implementation von PEG definiert wurde, klappt das aber, dort findet er das Canvas:
Delphi-Quellcode:
with Form1.Image1.Canvas do
    begin
      //Achsen zeichnen
      Pen.Color:=clBlack;
      MoveTo(8,Form1.Image1.Height-9);
      LineTo(Form1.Image1.Width-9,Form1.Image1.Height-9);
      MoveTo(8,Form1.Image1.Height-9);
      LineTo(8,8);
      //Pfeilenden einzeichnen
      Pixels[7,9]:=clBlack; //y-Achse
      Pixels[6,10]:=clBlack;
      Pixels[5,11]:=clBlack;
      Pixels[4,12]:=clBlack;

Geändert von Riclem (17. Mai 2014 um 11:36 Uhr)
  Mit Zitat antworten Zitat