![]() |
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" ( ![]() 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? |
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 |
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:
aber es passiert nichts
procedure TRechner.Button1Click(Sender: TObject);
var i: integer; begin i:= strtoint(Form2.Edit1.Text) + strtoint(Form2.Edit2.Text); Form2.Label2.Caption:=(inttostr(i)); end; 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? |
Re: Zugriff auf andere Klasse
postest du mal deinen projekt als anhang damit man sich das mal ansehen kann?
|
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 |
Re: Zugriff auf andere Klasse
niemand ne idee?
|
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