Autor Beitrag
MRX
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 17.07.02 00:32 
Die Frage ist jetz vieleicht n bisschen blöd und für die meisten von euch auch viel zu leicht aber ich hab ja gleich in meinem ersten Beitrag geschrieben das ich ein ANFÄNGER bin. Also entschuldigt bitte diese Frage :D
Ihr sprecht häufig davon das ihr euren Prog Code Dynamisch erzeugt habt....was meint ihr damit?
Danke für alle Antworten im Vorraus!
Bye Mr.X
KeinePanik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Mi 17.07.02 01:52 
Blöde Fragen gibt es Nicht !!!!!!! Nur blöde Antworten ! Und entschuldigen brauch sich niemand für seine Fragen !!!

Nun zu deiner Frage : Wo hast du das denn gelesen ???

"Dynamisch" empfinde ich deinem Posting zufolge: Eben auf alle Eventualitäten vorbereitet zu sein, und das Programm dementsprechend reagieren zu lassen .... oder !? Um mir ein genaues Bild zu machen, was DU jetzt als dynamisch meinst, müsste ich mal den Zusammenhang kennen ... Also nochmals : Wo hast du das gelesen ?

(ich hoffe das war keine blöde Antwort :D )

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 17.07.02 02:24 
Hi,

ich denke in den allermeisten fällen geht es um das erzeugen von Objekten (Komponenten).

Nehmen wir an du hast ein Delphi Programm. Nun möchtest du ein Edit Feld auf deinem Form haben. Du wirst es also nehmen und zur Entwicklungszeit, mit der Maus, auf dein Form ziehen. Alternativ kannst du es aber auch zur Laufzeit, Dynamisch von deinem Quelltext erzeugen lassen. Das sähe dann ungefer so aus (ungetestet):
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
[...]
VAR
  ed1 : tEdit;
begin
  ed1 := tEdit.Create(Form1);
  ed1.Parent := Form1;
  ed1.Text := 'Hallo Welt !';
[...]


Interssant wird die Sache immer dann, wenn du nicht weißt wieviele Objekte du benötigst. Dies ist z.B. bei MDI-Anwendungen (mehrere Kindfenster in einem Hauptfenster, wie z.B. bei WinWord) die Regel. Dort weist du meinst nicht, wieviele Kindfenster der Benutzer öffnen wird. Also kannst du auch zur Entwicklungszeit nicht sage ich erstelle mal X-Fenster und das muss reichen (mal abgesehen davon das es blöd währe X gleichartige fenster zu erstellen, wenn man mehrere Instanzen eines Fensters dynamisch erzeugen kann).

Ich hoffe das war annähernd verständlich und hat dir weitergeholfen.

Gruß
Klabautermann
KeinePanik
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 131



BeitragVerfasst: Mi 17.07.02 02:54 
Aso ... also ist "dynamisch erzeugter Programmcode" im Prinzip "nur":

Komponenten (also z.b. : "Form2: tform") zur Laufzeit erstellen ....

... obwohl der Programmcode eigentlich statisch ist und nur die 'form' dynamisch erzeugt wird .... also nicht wirklich ein dynamischer Programmcode ....

_________________
Es gibt keine dummen Fragen ... Nur blöde Antworten !!!
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 17.07.02 10:10 
Hihi... dynamisch erzeugter Programmcode, das wärs doch! :mrgreen: Einfach zur Laufzeit was dazuprogrammieren...

Spass beiseite.

Wenn ich ein "Array[1..1000] of TKunde" deklariere, dann ist das statisch. Im Speicher wird Platz für 1000 Kunden reserviert, nicht mehr, nicht weniger.
Das ist nicht gut, wenn ich nur 2 Kunden habe, richtig fatal wird es aber, habe ich davon mehr als 1000.
Daher ist es prinzipiell besser, so etwas dynamisch zu programmieren, z.B. mit einem dynamischen Array, dessen Grösse man zur Laufzeit mit dem Befehl SetLength festlegen kann. (Noch besser ist natürlich die Verwendung von TList-Objekten, aber da kommen wir dann zu einem anderen Thema).

Cu, :D
Udontknow
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mi 17.07.02 10:42 
KeinePanik hat folgendes geschrieben:
Aso ... also ist "dynamisch erzeugter Programmcode" im Prinzip "nur":

Komponenten (also z.b. : "Form2: tform") zur Laufzeit erstellen ....


Das müssen nicht umbedingt Komponenten sein, se können Datenstrukturen oder beliebige Objekte sein. Der Ausdruck "dynamisch erzeugter Programmcode" ist falsch. Das hieß sicherlich mal "Im Programmcode dynamisch erzeugt" oder so, was dann bedeuten soll "Vom eigenen Programmcode Dynamisch erzeugt".

KeinePanik hat folgendes geschrieben:
... obwohl der Programmcode eigentlich statisch ist und nur die 'form' dynamisch erzeugt wird .... also nicht wirklich ein dynamischer Programmcode ....

Wirklich dynamischer Programmcode ist mit Delphi nicht machbar. Mir ist von Prolog bekannt, das die Programme sich (nach engen regeln) "selbst weiterschreiben" können und ich vermute, das Lisp es auch kann. Aber das sind techniken, die bestenfalls bei Neuronalen Netzen interessant werden und auch mit "statischem" Code un einer guten Datenstruktur ersetzt werden können.

Gruß
Klabautermann
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 17.07.02 11:01 
Nun, natürlich kann das Delphi auch dynamisch Code ausführen. Jeder Parser ist ja sozusagen eine Möglichkeit, Code zur Laufzeit auszuführen. Vernünftigen Code vom Programm selber zur Laufzeit erzeugen zu lassen, ist da wieder eine andere Geschichte... :)
MRX Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mi 17.07.02 13:06 
Titel: DANKE!!!!!!!!!!!
Ok...das hat zum groben Verständnis gereicht...ich danke oich vielmals.
Am meisten hat mir dabei UDONTKNOW's und KLABAUTERMANS's Antwort geholfen. Jetz hab ich nur noch ein Problem, nämlich das was in meinem zweiten Beitrag steht, den ich zuerst geschrieben hab. Dazu gibt es erst 3 Antworten, die mir nich wirklich weiterhelfen. Ich denke eigentlich müsste Klaubauterman ne Antwort wissn da er mir sehr kompetent erscheint. ALSO KLABAUTERMAN...SCHREIB MIR DOCH BITTE NE ANTWORT...würd mich froin. Natürlich über alle anderen Antworten von anderen auch...sie müssen nur weiterhelfen.
Danke im Vorraus! Bye
Mr.X