Steuerungselemente bzw. Controls beim compilieren ausschließen



  • Hi,

    wie kann man das machen, wenn man z.b. diverse Controls wie z.b. Editboxen beim compilieren entfernen kann damit die nicht im Form zu sehen sind (auch nicht, wenn man sich mit Ressourcehacker die Res-Files ansieht)?

    Ich habe das gerade mit Compilermakros getestet, dazu habe ich mir ein simples Headerfile gemacht was ich im in meinen Headerfiles (auch in denen der Forms) eingebunden habe.

    Wenn ich allerdings in der published Section dann die abfrage mach ob meine definierte Variable existiert, bekomme ich beim compilen die Fehlermeldung:

    Fehler im Modul Unit1: Falsche Felddeklaration in Klasse TForm1

    Im Headerfile hab ich letztendlich nur (zum testen):

    #define _NURTEST_
    

    Im Form Header: (in der published Sektion von der Formklasse)

    #ifdef _NURTEST_
    TButton *Button1;
    #endif
    

    Ich denke mal, dass wird so nicht gehen weil ja im DFM File auch der Button eingetragen ist, da dies ja das eigentliche Form ist.

    Wie muss ich das den machen damit ich das bewerkstelligen kann was ich machen möchte? (Sofern das geht)

    Oder bleibt mir nur übrig, die Controls von Hand zu erstellen damit ich sie (die Codezeilen) dann via Makros deaktivieren kann?

    Danke!



  • Erzeuge doch deine Buttons zur Laufzeit.



  • Braunstein schrieb:

    Erzeuge doch deine Buttons zur Laufzeit.

    Naja, hab ja nicht nur Buttons, ist schon eine gewisse Liste von Controls die ich auf dem Form habe.

    Aber scheinbar geht das nicht was ich vorhabe 😞



  • Darf man fragen, was du damit eigentlich bezweckst?



  • audacia schrieb:

    Darf man fragen, was du damit eigentlich bezweckst?

    Ich hab in meinem Programm diverse Sachen wegen Outputlogging (visuell) und paar andere Sachen die ich bereits ber Compilermakros rausnehme. Möchte eben die GUI "sauber" halten. Halt alles was nicht benötigt wird fliegt raus.

    Habe das in ein Tabsheet gepackt, aber es ist meiner Meinung nach umständlich wenn ich das immer löschen muss bevor ich das Projekt übersetze. Inbesondere deshalb, wenn ich dem Form neue Controls hinzufüge, dann müsste ich immer wieder ein Backup vom Form machen bzw. von der "Unit".

    Habe eben gehofft, dass es geht da es das ziemlich erleichtert.

    Aber so wie es aussieht, bleibt mir wohl nix anders übrig als die Sachen von Hand zu erstellen.



  • Vielleicht würde es dir was nützen alles in einen Frame zu packen (siehe Hilfe zu TFrame).



  • Braunstein schrieb:

    Vielleicht würde es dir was nützen alles in einen Frame zu packen (siehe Hilfe zu TFrame).

    Naja, an das habe ich auch schon gedacht. Nur in dem Fall muss ich immer im Projekt den Frame löschen. Gut, das ist allerdings "einfacher".



  • Frames kannst du gut im Code erstellen und nicht zur Designzeit; das ermöglicht die bedingte Kompilierung und vereinfacht die Sachlage erheblich, wenn du später mal mehrere Frames oder VFI einsetzen solltest.


Anmelden zum Antworten