[gelöst] Form an eine externe Prozedur übergeben?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mulcheo
Beiträge: 57
Registriert: Do 1. Aug 2013, 15:11

[gelöst] Form an eine externe Prozedur übergeben?

Beitrag von mulcheo »

Hallo,

mir fällt kein griffiger Name für das Topic ein, aber darum geht's:
Ich habe eine Unit, die bestimmte Textausgabefunktionen erfüllt (unit Blocksatz) - irgendwo in dieser Unit steht ...

Code: Alles auswählen

procedure BlockText(x,y: integer; InputString: string);
begin
  BlockSet(InputString);
  Form1.Canvas.TextOut(x,y,InputString); // <-- darum geht's!
  BlockReset;
end;
 


ich würde nun gerne auch von Form2 und evtl. Form3 auf diese procedure zurückgreifen also irgendwie beim Prozeduraufruf neben den Koordinaten x,y und dem string auch die Form übergeben, auf welcher das Canvas.Textout dann ausgeführt wird... ist das möglich? und wenn ja, wie?

Danke schonmal
Zuletzt geändert von mulcheo am So 29. Jun 2014, 21:46, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10867
Registriert: Mo 11. Sep 2006, 19:01

Re: Form an eine externe Prozedur übergeben?

Beitrag von theo »

Das würde man besser so lösen:

Code: Alles auswählen

procedure BlockText(ACanvas:TCanvas;x,y: integer; InputString: string);
begin
  BlockSet(InputString);
  ACanvas.TextOut(x,y,InputString); // <-- darum geht's!
  BlockReset;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  BlockText(Form1.Canvas,10,10,'test');
end;    
Ich weiss aber nicht ob es schlau ist, das ausserhalb des OnPaint Ereignisses zu machen...

mulcheo
Beiträge: 57
Registriert: Do 1. Aug 2013, 15:11

Re: Form an eine externe Prozedur übergeben?

Beitrag von mulcheo »

Mensch, das löst wesentlich mehr Probleme, als ich zunächst gedacht hätte; u.a. auch dieses hier http://www.lazarusforum.de/viewtopic.php?f=55&t=7832 - ich kann nun alle Zirkelreferenzen meiner Hilfsunits tilgen, super!

Antworten