Methoden anderer Units nutzen

Für Fragen von Einsteigern und Programmieranfängern...

Re: Methoden anderer Units nutzen

Beitragvon tightTannic » 2. Feb 2017, 18:11 Re: Methoden anderer Units nutzen

Mathias, du hattest recht :wink:
Beim manuellen Ändern der Klassennamen TFmain zu Tmain / Tside und so weiter habe ich mich vollkommen verwurstet sodass in unit1 von TFmain und in unit2 von Tmain die Rede war...

Ich habe jetzt per "Suchen und ersetzten" alles zu Tmain geändert.

Alles klar :D hier das Projekt, hat vielleicht noch keinen so schönen Namen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
tightTannic
 
Beiträge: 20
Registriert: 31. Jan 2017, 19:46
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Jole » 2. Feb 2017, 19:25 Re: Methoden anderer Units nutzen

Mathias hat geschrieben:
Jole hat geschrieben:Was passiert eigentlich wenn in unit1 und unit2 für die Klassen ein der der selbe Bezeichner verwendet wird?


Ich weis nicht wie tightTannic das hingekriegt hat. Wen ich an 2 Forms, den gleichen Namen geben will, motzt die IDE da schon.
Und wen man es irgendwie manuell ändert, wird es spätestens in der *.lpr-Datei bei FormCreate Probleme geben.

Wenn in einer unit zwei gleichnamige Klassen deklariert werden, dann pfeift dich der Compiler an. Wenn aber zwei gleichnamige Klassen in unterschiedlichen units deklariert werden, dann hat die Klasse Priorität die die andere unit in der uses hat.
Jole
 
Beiträge: 116
Registriert: 4. Jul 2014, 13:39
OS, Lazarus, FPC: Linux | 
CPU-Target: amd64
Nach oben

Beitragvon Mathias » 2. Feb 2017, 20:21 Re: Methoden anderer Units nutzen

So wie es scheint, soll die Version im Anhang laufen.

Ich denke, dein grösste Fehler war, du wolltest selbst eine Classe in Unit2 erstellen und dafür hast du ein einfaches Copy-Paste von der Form-Classe der Unit1 gemacht.
Ich habe in der Unit2 die Klassen-Deklaration angepasst.
Und im Form1 habe ich ein Create und Destroy für deine Classe in Unit2 gemacht.
An der lfm und lpr -Datei musste ich noch manuell Anpassungen machen.

Aber jetzt sollte es laufen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon tightTannic » 2. Feb 2017, 21:45 Re: Methoden anderer Units nutzen

Mathias hat geschrieben:Ich denke, dein grösste Fehler war, du wolltest selbst eine Classe in Unit2 erstellen und dafür hast du ein einfaches Copy-Paste von der Form-Classe der Unit1 gemacht.
Mein größter Fehler überhaupt war, eine neue Unit mit Klasse zu schreiben, ohne zu wissen, wie man Klassen erstellt / handhabt x) (schön dumm)
Die Aufgabe von Klassen haben für mich bis jetzt immer Records erldigt.
Mathias hat geschrieben:Ich habe in der Unit2 die Klassen-Deklaration angepasst.
Und im Form1 habe ich ein Create und Destroy für deine Classe in Unit2 gemacht.
An der lfm und lpr -Datei musste ich noch manuell Anpassungen machen.
Danke ! Das war wohl der schnellste Weg mit auf die Sprünge zu helfen ;)

Mathias hat geschrieben:Aber jetzt sollte es laufen.
Ja funktioniert ! =) Zumindest so, als alles noch in einer Unit steckte.

Jole hat geschrieben:Wenn in einer unit zwei gleichnamige Klassen deklariert werden, dann pfeift dich der Compiler an. Wenn aber zwei gleichnamige Klassen in unterschiedlichen units deklariert werden, dann hat die Klasse Priorität die die andere unit in der uses hat.
Auch das ist gut zu wissen; also hat unit1 die Methode aus unit2 deswegen nicht gefunden, weil deren Klasse quasi überschrieben wurde =/ (Worin besteht darin überhaupt der Sinn !?)

Nagut, ich betrachte das Problem als gelöst :D
Vielen Dank für eure Hilfe.

mfG.
tightTannic
 
Beiträge: 20
Registriert: 31. Jan 2017, 19:46
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Mathias » 2. Feb 2017, 22:26 Re: Methoden anderer Units nutzen

Mein größter Fehler überhaupt war, eine neue Unit mit Klasse zu schreiben, ohne zu wissen, wie man Klassen erstellt / handhabt x) (schön dumm)
Die Aufgabe von Klassen haben für mich bis jetzt immer Records erldigt.

Wen man weis, wie Klassen funktionieren, sind diese eine sehr gute Sache.
Wen möglich, mache ich alles mit Klassen, schlussendlich hat man damit sehr sauberen Code.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3193
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 2 Gäste

porpoises-institution
accuracy-worried