Delphi-PRAXiS
Seite 3 von 5     123 45   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Zur Laufzeit erstellte Elemente werden nicht angezeig (https://www.delphipraxis.net/192384-zur-laufzeit-erstellte-elemente-werden-nicht-angezeig.html)

a.def 14. Apr 2017 00:14

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Zitat:

Software der Schule.. da kann man nicht machen was man will.
Ok wusste ich nicht. Dumme Lehrer .... wie immer.

EWeiss 14. Apr 2017 00:15

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Zitat:

Zitat von a.def (Beitrag 1367586)
Zitat:

Software der Schule.. da kann man nicht machen was man will.
Ok wusste ich nicht. Dumme Lehrer .... wie immer.

Dito.. LOL

gruss

a.def 14. Apr 2017 00:20

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
An den Themenersteller:
wenn du einfach Copy-Paste machst und dann etwas nicht funktioniert ("unit project1 fehlt")... das bedeutet für mich ganz klar,
dass euer "Lehrer" euch nicht einmal die Grundlagen über den Aufbau einer Delphi-Unit beigebracht hat.

Irgendwie kommen mir diese.... "Delphi-Lehrer" alle vor die umgeschulte Köche oder Handwerker.


Programmaufbau: https://www.delphi-treff.de/object-p...rogrammaufbau/

EWeiss 14. Apr 2017 00:25

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Zitat:

Irgendwie kommen mir diese.... "Delphi-Lehrer" alle vor die umgeschulte Köche oder Handwerker.
Ach ja man ist ja genügsam und hilft gern.
Aber irgendwo habe auch ich meine grenzen.

Ich hoffe das er es noch hinbekommt.. irgendwie.
Haben alle mal angefangen.

Dein Link wird ihm wohl helfen.. ;)

gruss

a.def 14. Apr 2017 10:34

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Zitat:

Ich hoffe das er es noch hinbekommt.. irgendwie.
Ich dachte eigentlich der Themenersteller wäre der Schüler :P

Aber ja. Meinen Link mal angucken, um den Aufbau einer Unit zu verstehen. Dann sieht man auch gleich, was man Copy-Pasten darf und was eher nicht.

dummzeuch 14. Apr 2017 11:20

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Oops, habe gerade gesehen, dass es schon drei Seiten Antworten gab. Falls sid das Problem also schon erledigt hat, ignoriert mich einfach.

Zitat:

Zitat von justin.kuhn (Beitrag 1367562)
Hallo, ich hoffe, dass ich das richtige Unterthema gewählt habe. Folgendes Problem habe ich mit diesem Code:
Delphi-Quellcode:
 bt1:= TButton.Create(Main);
 bt1.Parent:= Main;

 btEnde:= TButton.Create(Main);
 btEnde.Parent:= Main;
end;

Dein Fehler liegt in der Verwendung der Variablen Main als Onwer (beim Aufruf von TButton.Create) und als Parent (in der Zuweisung). Main ist zu dem Zeitpunkt noch nicht initialisiert, so dass den Buttons als Owner und Parent NIL zugwiesen wird.

Wenn Du statt Main die implizite Variable Self verwendest, wird es funktionieren. Self ist in Methoden eines Objekts (ein Formular ist ein Objekt) immer die aktuelle Instanz des Objekts, also immer korrekt initialisiert.

twm

justin.kuhn 14. Apr 2017 13:12

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Vielen Dank für die zahlreichen Antworten. Ich werde mich am Nachmittag nochmal ausgiebig belesen und weitere Versuche starten.

a.def 14. Apr 2017 13:17

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Auch dir empfehle ich sehr gerne das Buch Delphi for Kids.
Das Buch ist zwar für Kinder aber genau deswegen ist alles sehr leicht erklärt und auch für Erwachsene verständlich die nicht gerade der IT-Ecke entspringen.

Amazon: https://www.amazon.de/Delphi-f%C3%BC...elphi+for+kids

Dalai 14. Apr 2017 14:51

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Zitat:

Zitat von dummzeuch (Beitrag 1367611)
Main ist zu dem Zeitpunkt noch nicht initialisiert, so dass den Buttons als Owner und Parent NIL zugwiesen wird.

Eigentlich nicht. Da Main das Hauptformular ist, ist das selbstverständlich mit einer Instanz belegt, auch schon im FormCreate. Außerdem würde es sonst eine AV geben, davon lese ich aber nichts.

Ich finde den Quelltext generell schwierig. Da wird schamlos auf ein anderes Formular aus einer Unit zugegriffen, bei jedem Buttonclick wird eine neue Instanz von Formular und Button erzeugt, aber an keiner Stelle wieder freigegeben (schicke Speicherlecks) usw.

Ich würde die Buttons als Felder der zweiten Formklasse machen, das Erzeugen und Freigeben läuft dann auch innerhalb dieser Form/Klasse. Oder so wie EWeiss es gezeigt hat, aber vermutlich hat der Lehrer einen Grund, eine zweite Unit/Klasse zu benutzen.

Grüße
Dalai

a.def 14. Apr 2017 15:01

AW: Zur Laufzeit erstellte Elemente werden nicht angezeig
 
Wieso nicht einfach die Buttons im Designer auf das Formular platzieren und diesen ganzen Mist mit dem Erzeugen zur Laufzeug sein lassen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 3 von 5     123 45   

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