Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Eigenschaft eines Edit-Feldes fehlt


5 replies to this topic

kehren

kehren
  • Members
  • 6 posts

Posted 05 September 2005 - 11:09

Hallo,
zum Benutzen der Funktion CtrlGetText benötige ich was passendes für den Parameter nControlID. Woher finde ich das?
Wenn ich die Eigenschaften des Edit-Feld in meinen selbsterstellten Dialog durchgehe, finde ich keinen passenden Entrag, der zu dieser ID passt.
Laut Programmhilfe soll es einen Eintrag/Eigenschaft namens "Control Identifier" geben. Den habe ich nicht.

Das ganze ist ein Basic-MSI-Projekt.
Das Ziel ist ein Benutzerdefinierter Dialog, dessen Eingaben ich mit einem Script weiterverarbeiten kann.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 05 September 2005 - 15:03

Bei Basic MSI wird die Eingabe in einem Property gespeichert (dessen Namen du im Dialogeditor festgelegt hast). CtrlGetText ist nur für InstallScript-Dialoge.

kehren

kehren
  • Members
  • 6 posts

Posted 17 March 2006 - 16:55

Ok, komme aber immer noch nicht weiter.
Wie kann ich jetzt die Eingabe einer Variabel übergeben?
Ich habe einen Dialog mit einem Eingabefeld namens "Edit1".
In diesem Dialog gibt es einen Button, der ein Script startet.
In diesem Script habe ich eine String-Variabel "sPort".
Wenn im Script "sPort = Edit1" steht, gibt es die Fehlermeldung "Undefinierte ID" und "String-Wert erforderlich".

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 20 March 2006 - 07:48

Das Eingabefeld hat nicht nur einen Namen, sondern es ist auch mit einem Property verknüpft (ein Property ist so was ähnliches wie eine Variable). Dieses Property musst du verwenden, nicht den Namen des Controls.
Wenn deine beutzerdefinierte Aktion in InstallScript geschrieben ist, dann kann du den Wert des Property über die Funktion MsiGetProperty() abfragen.

kehren

kehren
  • Members
  • 6 posts

Posted 20 March 2006 - 17:09

Jetzt habe ich zwar keine Fehlermeldung mehr, bin aber trotzdem noch nicht glücklich.
Ich habe ein deutsches InstallShield; was ist ein "Property" in genau?

Mein Eingabefeld hat den Eigenschaftennamen "EINGABE". (Gross geschrieben, wie der Hinweistext empfiehlt.) Im Eigenschaften-Manager hat "EINGABE" den Wert "1234". Mein Eingabefeld ist aber zur Laufzeit leer. Auch mein im Dialogeditor zugewiesener Text (Text = 1234) steht dort nicht.
Mit
STRING sPort;
NUMBER nvSize;

nvSize = 256;
MsiGetProperty(hMSI, "EINGABE", sPort, nvSize);

ist sPort = "1234" (= Wert aus Eigenschaften-Manager)
(Es ist gewollt, das die Zahl als String abgespeichert ist.)
Meine Eingabe ins Eingabefeld wird irgnoriert.

kehren

kehren
  • Members
  • 6 posts

Posted 20 March 2006 - 17:14

Jetzt funktioniert es (Warum auch immer). Habe irgendwas rumprobiert und dann das Eingabefeld gelöscht. Nach dem Neuanlegen mit den alten Namen funktioniert es so wie gewollt.
DANKE