AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Prozedur einer anderen Unit soll auf andere Form zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Prozedur einer anderen Unit soll auf andere Form zugreifen

Offene Frage von "Wheelie"
Ein Thema von Wheelie · begonnen am 19. Feb 2004 · letzter Beitrag vom 19. Feb 2004
Antwort Antwort
Wheelie

Registriert seit: 21. Okt 2003
Ort: Dresden
177 Beiträge
 
#1

Prozedur einer anderen Unit soll auf andere Form zugreifen

  Alt 19. Feb 2004, 00:07
Tag!

Ich habe eine Prozedur, der ich bestimmte Parameter übergebe. In Abhängigkeit dieser Parameter verändert die Prozedur z.B. bestimmte Eigenschaften von Edit-Feldern und ComboBoxen. Um die Übersichtlichkeit im Projekt zu wahren, möchte ich die Prozedur in eine eigene Unit stopfen.
Wie kann ich von dieser Unit auf Komponenten in einem anderen Formular (und somit auch in einer anderen Unit) zugreifen. Wenn ich z.B. in eine ganz simple Prozedur schreibe "Edit1.Clear", dann meldet der Compiler: " Undefinierter Bezeichner: 'Edit1' ". Habe den Uses-Kopf der ersten Unit auch in die zweite Unit übernommen

Das eigentliche Problem ist hier wahrscheinlich, dass ich nicht beide Units gegenseitig in den Interface-Teil einbinden kann (-> ' Überkreuzender Bezug zweier Units auf Unit1 '
  Mit Zitat antworten Zitat
Fingolfin

Registriert seit: 8. Okt 2003
62 Beiträge
 
#2

Re: Prozedur einer anderen Unit soll auf andere Form zugreif

  Alt 19. Feb 2004, 03:48
Rein theoretisch könntest du in einer Unit, die andere erst im implementation-Teil aufführen.

Alternativ wäre auch die Übergabe der Form selbst als Parameter möglich.

Fingolfin
  Mit Zitat antworten Zitat
little-wolf

Registriert seit: 18. Feb 2004
9 Beiträge
 
#3

Re: Prozedur einer anderen Unit soll auf andere Form zugreif

  Alt 19. Feb 2004, 09:08
Hallo

ich finde, man sollte in Units, in welchen sich nur Funktionen und
Prozeduren befinden, die aufrufenden Units nicht usen...

Desshalb würde ich das Edit-Feld als variablen-Parameter übergeben:

1. Unit:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Unit2;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetEditField(Edit1,'Test');
end;

end.
2. Unit:

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Classes, Dialogs, StdCtrls;

procedure SetEditField(var vEdit:TEdit; pSText: String);

implementation

procedure SetEditField(var vEdit:TEdit; pSText: String);
begin
  vEdit.Text := pSText;
end;

end.
Das ist natürlich nur eine von vielen möglichen Varianten...

hoffe etwas weiter geholfen zu haben...


Grüsse

little-wolf
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:47 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