AGB  ·  Datenschutz  ·  Impressum  







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

Procedure mit TForm1 in extra Unit?

Ein Thema von MCXSC · begonnen am 30. Okt 2008 · letzter Beitrag vom 30. Okt 2008
Antwort Antwort
Seite 1 von 3  1 23      
MCXSC
(Gast)

n/a Beiträge
 
#1

Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:35
Hallo!

Ich habe eine kurze Frage, irgendwie bin ich grade zu deppert dafür. Ich habe z.B. folgenden Aufbau:

TMainForm:

Delphi-Quellcode:
unit Mainform;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics [...];

type
  TMainFrm = class(TForm)
    [...]
  private
    [...]
  public
    [...]
  end;

var
  MainFrm: TMainFrm;

implementation

uses UnitXYZ, [...];

{$R *.dfm}
Nun habe ich eine Unit, wie folgt:

Delphi-Quellcode:
unit UnitXYZ;

interface

procedure TuDas(NehmeDenString: String;);

implementation

uses
  MainForm [...];

procedure TuDas(NehmeDenString: String;);
begin
with MainFrm do begin
[...]
end;
end;
Die Procedure wird aus verschiedenen anderen Forms ausgeführt. Allerdings hätte ich gerne das "with MainForm do begin ... end;" weg; die gesamte Procedure soll sich eben auf "TMainForm" beziehen. Ich bekomme es nur nicht hin...

Kann mir jemand einen Tipp geben? Ich weiß, dass die Procedur irgendwie so aussehen muss:

Delphi-Quellcode:
procedure TMainFrm.TuDas(NehmeDenString: String;);
begin
[...]
end;
Aber ich bekomm es eben nicht zum laufen, da die Procedure ja irgendwo nochmal deklariert werden muss...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:38
Übergib doch die Form als Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:40
Hi,

versuch es doch mal mit
with MainFrm do cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#4

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:42
Zitat von mkinzler:
Übergib doch die Form als Parameter
Hm?

Zitat von Sir Rufo:
Hi,

versuch es doch mal mit
with MainFrm do
Danke, aber so sieht es ja bisher aus. Ich würde das aber gerne etwas kompakter bauen.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:44
Ich wollte nur damit sagen, dass das so nicht funktioniert, bzw. so definiert überflüssig ist ...
Zitat von MCXSC:
Delphi-Quellcode:
unit Mainform;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics [...];

type
  TMainFrm = class(TForm)
    [...]
  private
    [...]
  public
    [...]
  end;

var
  MainFrm: TMainFrm;

implementation

uses UnitXYZ, [...];

{$R *.dfm}
Delphi-Quellcode:
unit UnitXYZ;

interface

procedure TuDas(NehmeDenString: String;);

implementation

uses
  MainForm [...];

procedure TuDas(NehmeDenString: String;);
begin
with MainForm do begin /// <<< Das tut aber so nicht !!!!! Hmmm, tut eigentlich schon, ist aber Quatsch ...
[...]
end;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#6

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:45
Doch tut es.

with MainFrm do ...lässt nur eine Codezeile zu, die sich auf's MainForm bezieht...

with MainFrm do begin [...] end; ...bezieht sich auf den gesamten Block zwischen begin und end...

Ich weiß, es ist sinnfrei, eine gesamte Procedure so "einzumauern", aber genau das versuche ich ja grade zu lösen^^
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:46
Zitat von MCXSC:
Doch tut es.
Hab es grad geeditet
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:52
Zitat von MCXSC:
Die Procedure wird aus verschiedenen anderen Forms ausgeführt. Allerdings hätte ich gerne das "with MainForm do begin ... end;" weg; die gesamte Procedure soll sich eben auf "TMainForm" beziehen. Ich bekomme es nur nicht hin...
So wie du das deklariert hast bezieht sich alles auf die UNIT MainForm aber nicht auf das FORMULAR MainFrm!!!

Was ist denn der tiefere Sinn dafür?

Entweder ich habe ein proc oder func, die direkt mit einem Formular verknüpft ist, dann nehme ich die in die Klasse direkt mit auf, oder die ist generisch, dann meinetwegen in eine eigene Unit und dann das Formular als Parameter mit.

Und trotzdem wirst du dann mit with ... do arbeiten werden wollen (nicht müssen).

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#9

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:56
Zitat von Sir Rufo:
So wie du das deklariert hast bezieht sich alles auf die UNIT MainForm aber nicht auf das FORMULAR MainFrm!!!

Was ist denn der tiefere Sinn dafür?
Kleinerer Fehler. MainForm = MainFrm. Hab mich beim schnellen tipseln der Procedure halt vertippt.

Zitat von Sir Rufo:
Entweder ich habe ein proc oder func, die direkt mit einem Formular verknüpft ist, dann nehme ich die in die Klasse direkt mit auf, oder die ist generisch, dann meinetwegen in eine eigene Unit und dann das Formular als Parameter mit.
Genau das versuche ich doch... o_O

Wenn ich eine eigene Funktion direkt in MainForm eingebe, reicht es, wenn ich die Procedure nochmals im "private" deklariere. *denk*
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Procedure mit TForm1 in extra Unit?

  Alt 30. Okt 2008, 20:58
Ja, reicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 05:21 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