AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Prozeduren...

Ein Thema von creek · begonnen am 30. Jun 2004 · letzter Beitrag vom 1. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
creek

Registriert seit: 30. Jun 2004
2 Beiträge
 
#1

Eigene Prozeduren...

  Alt 30. Jun 2004, 23:08
Hallo allerseits,

ich programmiere schon seit einigen Monaten auch mit Delphi. Bisher verwendete ich allerdings wenig grafische Funktionen. Die meisten Dinge konnten mit Memokomponeten, diversen Editkomponenten, etc. erledigt werden.
Jetzt habe ich allerdings ein anderes Projekt vor mir, für das ich viel Grafisches brauche. Was diese Dinge angeht, bin ich ein Anfänger.

Dabei stieß ich zunächst auf folgendes Problem:

Ich will ein Koordinatensystem in eine PaintBox zeichnen. Das geht auch ganz gut, wenn ich diesen Ablauf in einer Prozedur wie Button1.Click(Sender: TObject) ausführe. Da ich diesen Ablauf aber auch in anderen Komponenten benötige, wollte ich dafür eine eigene Prozedur schreiben, die nicht erst durch einen Event ausgelöst werden muss, sonderen aufgerufen werden kann.
Wenn ich den Ablauf allerdings so ablegen will:

Delphi-Quellcode:
procedure graph;
begin
{hier kommt der Ablauf}
end;
Dann meldet er einen Fehler, sobald ich die Methode Paintbox1.canvas... verwenden will.
Wie kann ich die Canvas-Methoden auch in dieser Prozedur benutzen, bzw. wie muss ich die Prozedur deklarieren, um sie nutzen zu können?

Danke im Vorraus!

Gruß,

Timo
  Mit Zitat antworten Zitat
MCeddy
(Gast)

n/a Beiträge
 
#2

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:12
Hi. Versuche es mal so:
Delphi-Quellcode:
procedure TForm1.graph;
begin
{hier kommt der Ablauf}
end;
viele Grüße

MCeddy02
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#3

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:12
was kommt den für ein fehler?

ich schätze mal, da diese funktion global is, musst du form1.paintbox.canvas ansprechen...
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:14
Zitat von MCeddy02:
Hi. Versuche es mal so:
Delphi-Quellcode:
procedure TForm1.graph;
begin
{hier kommt der Ablauf}
end;
viele Grüße

MCeddy02
Dazu muss die Procedure in der Klasse erst einmal definiert werden.


ca so

Delphi-Quellcode:
  TForm =
    ...
  private
    procedure Graph;
  ...
  end;
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
MCeddy
(Gast)

n/a Beiträge
 
#5

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:16
Zitat von neolithos:
Dazu muss die Procedure in der Klasse erst einmal definiert werden.

(...)
Danke, Stimmt
- Schon lang nicht mehr mit Delphi gearbeitet
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#6

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:16
Zitat von MCeddy02:
Delphi-Quellcode:
procedure TForm1.graph;
begin
{hier kommt der Ablauf}
end;
Es müsste aber auch ohne das TForm1 gehen!
Simon Praetorius
Gruß
S2B
  Mit Zitat antworten Zitat
creek

Registriert seit: 30. Jun 2004
2 Beiträge
 
#7

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:20
zum Fehler an sich: es kommt, dass der Bezeichner paintbox1 unbekannt sei.

Aber deine Lösung ist korrekt. Die hatte ich auch schon versucht. Allerdings hatte ich TForm1.PaintBox... verwendet.
Was ist der Unterschied zwischen TForm1 und Form1? Denn mit dem T davor geht's nicht. Ohne geht's.

Andere Frage:
Wenn ich eine Funktion zeichnen lasse und das in einer Schleife machen lasse, bei der ich den sleep-Befehl verwende und das zu verlangsamen, damit man den Verlauf beobachten kann, reagiert das Fenster erst wieder, wenn er fertig ist. Kann ich dem Nutzer eine Abbruch-Möglichkeit oder eine Pause-Möglichkeit geben?

Gruß,

Timo

Edit: Da inzwischen so viele Beiträge kamen:

Es geht bei mir so:
Delphi-Quellcode:
procedure graph;
begin
Form1.Paintbox1.Canvas...
end;
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#8

Re: Eigene Prozeduren...

  Alt 30. Jun 2004, 23:22
TForm1 ist der Objekttyp und Form1 die Variable vom Typ TForm1...

zu dem abbruch:
mach ein Application.ProcessMessages rein
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Eigene Prozeduren...

  Alt 1. Jul 2004, 07:33
Wenn du schon auf Elemente deiner TForm-Klasse zugreifen musst, dann mach doch die Prozedur zu einer Methode selbiger. Ist etwas eleganter als überall Form1 davor zuschreiben. Macht das ganze dann auch stimmiger, finde ich.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Eigene Prozeduren...

  Alt 1. Jul 2004, 07:58
eigene proceduren ohne TFORM musst du "über" den restlichen die auf die proceduer zurückgreifen hinschreiben


also

Delphi-Quellcode:
//FALSCH
procedure TForm1.BewegeKreis(var Kreis : TKreis);
begin
  ClearMyHome;
end;

procedure ClearMyHome;
begin
  Form1.Canvas.Refresh;
end;

Delphi-Quellcode:
//RICHTIG

procedure ClearMyHome;
begin
  Form1.Canvas.Refresh;
end;

procedure TForm1.BewegeKreis(var Kreis : TKreis);
begin
  ClearMyHome;
end;
mfg

Nicodius
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:58 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