Win32 Anwendung mit VCL unterstützung.
-
tach leude
man kann ja beim BCB anstatt gleich ne ganze form blah etc. anwendung zu machen, ja nur eine win32 anwedung ohne formular und so. gut, man kann ja auch VCL unterstützung wählen. wie genau wende ich dann aber die komponenten an?
da es ja keine form mehr gibt kann man ja nicht einfach ne compo auf die form knallen und dann die propertys etc. machen
-
Du kannst deinem Projekt ein DataModule als Container für nicht-visuelle Komponenten hinzufügen. Du musst dann allerdings beim Programmstart selbst eine Instanz des Moduls erstellen, ein AutoCreate gibt es hier nicht.
Für die Benutzung visueller Komponenten könntest du statt des DataModule auch eine Form verwenden, aber das wäre ja absoluter Schwachsinn.
-
Original erstellt von <darocker>:
da es ja keine form mehr gibt kann man ja nicht einfach ne compo auf die form knallen und dann die propertys etc. machenKlar! Und wieso gibt es keine Form mehr? Kannst du doch alles im Quellcode erstellen.
TForm* Form = new TForm(NULL);
Und so weiter. Allerdings frage ich mich: Wozu?
Dann kannste gleich ne Standard-Anwendung machen.
-
hmm wieso kann ich nun das TRegistry object nicht in einem win32 projekt benutzen? (VCL U. ist an)
TRegistry& regkey = *new TRegistry();
fehler:
[C++ Fehler] Unit1.cpp(7): E2141 Fehler in der Deklarationssyntax
[C++ Fehler] Unit1.cpp(105): E2158 Operand von 'delete' darf kein const-Zeiger sein.in einem Formular basiertem projekt tut es aber
-
hat sich erledigt
include registry.hpp
-
TRegistry& regkey = *new TRegistry();
Aua!
-
das ist nciht von mir
habe ich von einem link aus dem board so übernommen.
-
Das macht es nicht besser gescheweige denn dass es dich entschuldigt...
-junix
-
TRegistry& regkey = *new TRegistry();
Aua!
Hmm, eigentlich nicht Aua
Sieht zwar recht ungebräuchlich bzw. ungewöhnlich aus, hat aber schon seinen Sinn. Denkt mal an das Thema Referenz. Zugegeben hab ich zunächst auch gestutzt, denn sowas hatte ich bisher auch nicht gemacht, aber es geht.TIniFile &Ini=*new TIniFile("c:\\IniTest.ini"); Ini.WriteString("Main", "String", Edit1->Text); delete &Ini;
-
Original erstellt von Peter:
[...] hat aber schon seinen Sinn [...]Naja eigentlich keinen ausser, dass man so nicht immer den Zeiger auf die klasse dereferenzieren muss um einen Punkt schreiben zu dürfen um zuzugreifen. Allerdings macht man sich das Leben eigentlich damit nur sinnlos schwer denn auf Ini zugreifen kannst du nach wie vor auch nach einem delete.
Eigentlich verschlimmerst du das Ganze nur noch. Denn während man bei einem handelsüblichen zeiger nach einem delete den Wert auf NULL setzen kann (und damit auch mit Assert oder was auch immer auf null testen (gell 1ntrud0r), kann man die Referenz gar nicht mehr neu setzen.
-junix
-
@junix
Muß Dir klar Recht geben, ich benutze sowas ja auch nicht. Wollte eigentlich nur zum Ausdruck bringen, daß so ein Konstrukt schon funktioniert, ob es nun sinnvoll ist sowas zu machen oder nicht