AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls alle Objecte der Hauptform an andere Unit übergeben?
Thema durchsuchen
Ansicht
Themen-Optionen

alle Objecte der Hauptform an andere Unit übergeben?

Ein Thema von SimStar001 · begonnen am 3. Jul 2009 · letzter Beitrag vom 4. Jul 2009
Antwort Antwort
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#1

alle Objecte der Hauptform an andere Unit übergeben?

  Alt 3. Jul 2009, 18:54
hallo,

ich wollte viele Functions und Procedures der hauptform auslagern in eine extra unit, zur Programmübersichtlichkeit.

Ich möchte gerne mit allen Objecten (Labels ScrollBoxes usw.) etwas anstellen in der Unit, nur nicht jedes einzellen Object übergeben.

Wie kann man es anstellen, dass ich alle Objecte der Hauptform an die zweite Form übergeben kann?

Falls es schon nen Beitrag zu diesem Problem gibt, dann bitte den Link Posten!

Vielen Dank!

LG Marco!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.115 Beiträge
 
Delphi 12 Athens
 
#2

Re: alle Objecte der Hauptform an andere Unit übergeben?

  Alt 3. Jul 2009, 19:21
* du kannst die ganze Form übergeben, oder nur ein Panel, wo alles drauf ist



* du kannst auch einfach nur die Unit übergeben, also die Unit der Form in die Usesklausel der anderen Unit aufnehmen, dann kannst du über die globale "Form"-Variable (siehe Form1) auf alles zugreifen
Delphi-Quellcode:
unit Unit1;

interface
  type TForm1 = Class(TForm)
    Button1: TButton;
    ...
  end;

  var Form1: TForm1;
und du kannst (wenn du alles in der anderen Unit in eine Klasse kapselst) direkt die Ereignisse zuweisen
Delphi-Quellcode:
unit Unit2;

interface
  uses Unit1;

  type TMyClass = class
    procedure MyButtonClick(Sender: TObject);
  end;

implementation
  //uses Unit1; // oder bei Kreuzverweis hier

  begin
    Form1.Button1.Caption := 'hier klicken';
    Form1.Button1.OnClick := MyButtonClick;
  end;



* ansonsten wird dir nicht erübrigt bleiben, alles selber (einzeln) zu übergeben
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#3

Re: alle Objecte der Hauptform an andere Unit übergeben?

  Alt 3. Jul 2009, 19:29
Naja irgendwie sind alle Objecte bei Übergabe der Form und Eintragung in die uses klausel der Unit keine Objecte verfügbar, die sich auf der Form befinden.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

Re: alle Objecte der Hauptform an andere Unit übergeben?

  Alt 4. Jul 2009, 16:17
Du redest hier wohl von Controls (Steuerlemente).
Dann ist es sinnvoll ein Objekt der Klasse TWinControl an die 2. Unit weiterzugeben.
Delphi-Quellcode:
Unit Unit2;

interface

procedure MachAlleEditsGruen(c:TWinControl);

implementation

procedure MachAlleEditsGruen(c:TWinControl);
var i : integer;
begin
  if not Assigned(c) then Exit;
  if c is TEdit then
    TEdit(c).Color := clGreen;
  for i := 0 to c.ControlCount-1 do
     MachAlleEditsGruen(c.Controls[i]);
end;
Der Aufruf im Formular wäre:
MachAlleEditsGruen(self);
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#5

Re: alle Objecte der Hauptform an andere Unit übergeben?

  Alt 4. Jul 2009, 16:30
Himitsu, ich mag Deine Beiträge ansonsten sehr, aber solcher Code dürfte durch die Qualitätsrichtlinien von DelphiPraxis gar nicht durchgeleitet werden.
Solche Codebeispiele zeigt man keinem Anfänger. Das ist die falsche Herangehensweise.
und von einer Unit mit exakter Namensbezeichung auf ein Formular zuzugreifen, ist noch schlechter.

Ich nenne dies "Buttonclick" Programmieung.
Ich muss gestehen, ich habe auch so angefangen, auch mit auf Grund schlechter Codebeispiele.



Wenn solche Fragen, wie vom Threadersteller auftauchen, dann hat das ganze Programm einen planungsmäßigen Fehler.
Viel besser wäre für ihn, wenn er sich ein bischen auf den Hosenboden setzt und die Kunst des Programmierens lernt.

MVC Modell wäre sein ertes Stichwort, mit dem er sich beschäftigen sollte. Damit kommt man schon recht weit.

http://de.wikipedia.org/wiki/Model_View_Controller


Seine Frage riecht förmlich danach, dass er visuelle Darstellungen total vermischt hat, mit wichtigen Berechnungen.
Daher auch der Name Button-Click Programmierung. Es wird alles in der Buttonclick procedure des Formulars erledigt.
soviel Code gibts nämlich gar nicht in visuellen Forms, dass der Platz nicht ausreichen würde.


Wichtig für ihn wäre zu lernen, dass man Visualisierung von den Grundlagen trennt.
Ein Form zeigt nur an, sonst nix .. und kann unter umständen durch eine Textanzeige ersetzt werden.
Bzw entwickeln wir Code erstmal nur mit Textausgaben. die Visualisierung in forms kommt ganz zum Schluss.
Jede Klasse hat eine ToString Funktion zu erhalten. wo eventuell auch die komplette Liste von Elemente ausgegeben wird.
Ganz zum Schluss erst kann man mal darüber nachdenken, ob man nicht auch was in einer Stringgrid anzeigen möchte.

Nun .. ich denke, darüber wurde schon oft diskutiert hier. Aber man kann es gar nicht oft genug sagen und wiederholen...
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#6

Re: alle Objecte der Hauptform an andere Unit übergeben?

  Alt 4. Jul 2009, 16:36
Zitat:
Wie kann man es anstellen, dass ich alle Objecte der Hauptform an die zweite Form übergeben kann?
ansonsten würden sich noch Frames anbieten, nicht in der üblichen Verwendung, da sind sie grauenhaft. Ich bin da nicht mit glücklcih geworden.
Nur zum designen .. Man packt alles auf ein Fram.
Übergibt die Daten, die es anzeigen soll usw.

zum Schluss createt man alle verfügbaren Frames per Quellcode und selbst per Hand, und positioniert sie auf ein Panel im Hauptformular.

Das ist das beste, was man sein Programm Modulweise aufbauen kann ...
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  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 23:57 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