Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zugriff auf andere Klasse (https://www.delphipraxis.net/71072-zugriff-auf-andere-klasse.html)

Fr33z0r 8. Jun 2006 13:35


Zugriff auf andere Klasse
 
Hallo!
ich habe mal eine generelle Frage zu den Klassen. Ich bin noch ein Anfänger im Programmieren mit Delphi und die Lösung meines Problem wurde mir beim Blick auf ihre pdf Datei von Luckie: "Klassen_in_Delphi" (Link) auch noch nicht deutlich.
Ich habe folgendes Problem:
Ich habe 2 Klassen. Die unit "gui" und die unit "rechner".
Die unit "gui" hat die informationen zu allen panels, buttons, usw auf Form2
Wie erschaffe ich eine Assotiotion zwischen beiden Klassen, so dass ich in der unit "rechner" methoden schreiben kann, die sich auf die buttons, usw beziehen?

ich nehm einfach mal ein simples beispiel (damit ich die lösung auch verstehen kann^^):
auf Form2 hab ich zwei edit-felder (edit1 und edit2)

Die Zahlen in diesen beiden edit felder möchte ich in der unit rechner addieren lassen.
wenn ich die methode in die unit rechner schreibe kommen fehlenmeldungen, dass edit1 und edit2 ungültige bezeichner sind.
hat jemand eine lösung für mein problem?

Zacherl 8. Jun 2006 14:22

Re: Zugriff auf andere Klasse
 
Hi,
du musst die Unit "gui" in der uses Klausel der Unit "rechner" angeben. Dann kannst du mit "Form2.Edit1" z.B. auf das Editfeld 1 zugreifen.

Florian

Fr33z0r 8. Jun 2006 15:59

Re: Zugriff auf andere Klasse
 
alles klar, danke dir!

edit: moment...

also momentan erkennt er schon die editfelder (also wenn ich Form2. schreibe werden sie schon mit aufgerufen)
ich habe jetzt eine ganz einfache methode geschrieben:

Delphi-Quellcode:
procedure TRechner.Button1Click(Sender: TObject);
var i: integer;
begin
i:= strtoint(Form2.Edit1.Text) + strtoint(Form2.Edit2.Text);
Form2.Label2.Caption:=(inttostr(i));
end;
aber es passiert nichts
ich habe 2 vermutungen

1. bei TRechner.Button1Click weiß er immer noch nicht welcher button gemeint ist
oder 2. hat es vllt was mit der sicherheit zu tun? (also private oder protected...)

(oder 3. übersehe ich einfach nur nen sehr dämlichen fehler)
könnt ihr mir helfen?

semo 8. Jun 2006 19:15

Re: Zugriff auf andere Klasse
 
postest du mal deinen projekt als anhang damit man sich das mal ansehen kann?

Fr33z0r 8. Jun 2006 21:55

Re: Zugriff auf andere Klasse
 
Liste der Anhänge anzeigen (Anzahl: 1)
bitte, das ist es!
falls er nach nem passwort fragt, ist es: 131810607

Fr33z0r 12. Jun 2006 12:04

Re: Zugriff auf andere Klasse
 
niemand ne idee?

Sidorion 12. Jun 2006 12:45

Re: Zugriff auf andere Klasse
 
Wenn Du schon die GUI und den Rechner trennst, dann mach es doch gleich richtig.
Der Rechner darf die einzelnen Edits garnicht kennen, er muss nur rechnen und das Ergebnis zurückliefern. Dazu reicht es völlig aus, dass die GUI-Unit die Rechner-Unit kennt.
Dann kannst du in der GUI-unit die methode button1.click schreiben, die dann eine funktion in der rechner-unit ruft und das Ergebnis dann in das Editfeld einträgt.
Die Trennung von GUI und Funktion, die man ja deswegen macht, damit man beides austauschen kann, ohne an dem jeweils anderen etwas zu ändern hast Du damit ad absurdum geführt. Von oben nach unten wird über Schnittstelle (die Funktionen), von unten nach oben garnicht kommuniziert. Ähnliches gilt für die Trennung von Funktion und Datenbasis.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz