AGB  ·  Datenschutz  ·  Impressum  







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

Zugriff auf andere Klasse

Ein Thema von Fr33z0r · begonnen am 8. Jun 2006 · letzter Beitrag vom 12. Jun 2006
Antwort Antwort
Fr33z0r

Registriert seit: 29. Mär 2006
15 Beiträge
 
#1

Zugriff auf andere Klasse

  Alt 8. Jun 2006, 13:35
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?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Zugriff auf andere Klasse

  Alt 8. Jun 2006, 14:22
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
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Fr33z0r

Registriert seit: 29. Mär 2006
15 Beiträge
 
#3

Re: Zugriff auf andere Klasse

  Alt 8. Jun 2006, 15:59
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?
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Zugriff auf andere Klasse

  Alt 8. Jun 2006, 19:15
postest du mal deinen projekt als anhang damit man sich das mal ansehen kann?
  Mit Zitat antworten Zitat
Fr33z0r

Registriert seit: 29. Mär 2006
15 Beiträge
 
#5

Re: Zugriff auf andere Klasse

  Alt 8. Jun 2006, 21:55
bitte, das ist es!
falls er nach nem passwort fragt, ist es: 131810607
Angehängte Dateien
Dateityp: zip projekt_719.zip (221,6 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Fr33z0r

Registriert seit: 29. Mär 2006
15 Beiträge
 
#6

Re: Zugriff auf andere Klasse

  Alt 12. Jun 2006, 12:04
niemand ne idee?
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#7

Re: Zugriff auf andere Klasse

  Alt 12. Jun 2006, 12:45
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.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  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 06:05 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