längeren Codeblock als Text statt als Unter-Procedure
Hallo,
eine kurze Frage: In meinem Programm liegen 2 Arrays verschiedener Struktur mit einem identischen Record vor. Folgendes klappt nicht:
Code:
Ein Versuch, in procedure Test eine Extra-Procedure Test2
procedure Test;
begin if begingung1 then with array1 do begin else if bedingung2 then begin with array2 do begin with recordX do begin x := 1; //x ist im recordX von array1 und array2 identisch //es folgt noch ein längerer Codeblock mit Variablen, //die im recordX beider Arrays identisch sind end; zu erstellen, klappt nicht, da für recordX entweder array1 oder array2 erforderlich ist.
Code:
Meine Idee ist, den gesamten Text der Unter-Procedure als Textblock zu erstellen.
procedure Test;
begin procedure Test2; with recordX do begin x := 1; //x ist im recordX von array1 und array2 identisch //es folgt noch ein längerer Codeblock mit Variablen, //die im recordX beider Arrays identisch sind end; end; Meine Frage: Wie kann ich so einen Textblock erstellen oder habt ihr eine andere Idee? Ich freue mich über jeden Typ - vielen Dank! |
AW: längeren Codeblock als Text statt als Unter-Procedure
Hallo Enigma,
ich bin mir nicht sicher, ob ich Dich richtig verstanden habe, was Du mit „Text“ meinst. Vielleicht meinst Du, einen gemeinsamen CodeTeil in einer Textdatei z.B.
Delphi-Quellcode:
auszulagern und mittels Include-Anweisung {$i CodeTeil.inc} einzufügen?
CodeTeil.inc
Du solltest auf jeden Fall die
Delphi-Quellcode:
-Anweisungen weglassen und stattdessen qualifizierte Bezeichner verwenden, um Verwechslungen zu vermeiden und das Debuggen zu ermöglichen.
With
Gruß, Andreas |
AW: längeren Codeblock als Text statt als Unter-Procedure
Ich vermute mal, du willst so etwas machen:
Delphi-Quellcode:
Und außerdem: "Klappt nicht" ist keine Fehlerbeschreibung. Was passiert wann (oder auch nicht)?
procedure DoSomethingWithArray(recordX:TMyRecord);
begin recordX.x:=1; recordX.blabla:=irgendetwas; ... end; procedure Test; begin if begingung1 then DoSomethingWithArray(array1.recordx) else if bedingung2 then begin DoSomethingWithArray(array2.recordx); end; |
AW: längeren Codeblock als Text statt als Unter-Procedure
Vielen Dank für eure Tipps!
Manchmal hat man halt Tomaten auf den Augen ;-) |
AW: längeren Codeblock als Text statt als Unter-Procedure
Hallo Andreas,
verstehe ich dich richtig? Meinst du bei jedem Attribut den Qualifier, z.B. RecordX vorne dran zu stellen? |
AW: längeren Codeblock als Text statt als Unter-Procedure
Zitat:
z.B.
Delphi-Quellcode:
etc.
RecordX.x := 1;
Gruß, Andreas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:16 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