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

Wie geht das mit den Componenten?


1 reply to this topic

bahrr

bahrr
  • Members
  • 6 posts

Posted 14 November 2001 - 14:16

hallo installshield gemeinde !

Ich habe ein Problem mit Componenten
in IS6.3 (habe sie von IS5.5 übernommen).

Es scheint so, daß nur eine bestimmte Anzahl an Componenten zulässig sind etwa 20 Stück. Wenn ich neue Componenten dazuhänge und diese installieren möchte bekomme ich einen Transferfehler (code 0).

Vielleicht liegt es daran, daß ich das OnMoving() nicht verwende. Unten ein Codeausschnitt, der die Componenten routine zeigen soll.

Codeausschnitt meiner Transferfunkion:

function UsdefInstallFiles(strComponent)
// variablen ..
begin

//abwahl aller bestehenden componenten
ComponentSelectItem  (MEDIA,COMPONENT_PROJECTINI, FALSE);      
ComponentSelectItem  (MEDIA,COMPONENT_LAUNCH, FALSE);      
ComponentSelectItem  (MEDIA,COMPONENT_LAUNCHINI,FALSE);      
// und so weiter ....


  if (strComponent % COMPONENT_LAUNCH)      then
     ComponentSelectItem  (MEDIA,COMPONENT_LAUNCH,TRUE);
     nResult=ComponentSetTarget   (MEDIA,"<svNewDir>",g_strMainDir);

elseif(strComponent=COMPONENT_LAUNCHINI) then
ComponentSelectItem  (MEDIA,COMPONENT_LAUNCHINI,TRUE);
nResult=ComponentSetTarget   (MEDIA,"<svNewDir>",g_strMainDir);

  elseif (strComponent % COMPONENT_PROJECTINI)      then
     ComponentSelectItem  (MEDIA,COMPONENT_PROJECTINI,TRUE);
     nResult=ComponentSetTarget   (MEDIA,"<svNewDir>",g_strStrgDir);
  // und einige elseif zweige mehr ...
 endif;

   //Files kopieren
   nResult=ComponentMoveData    (MEDIA,nDisk,0);
   //Fehler eventuell auswerten
   if(nResult < 0) then
       UsdefHandleComponentError(nResult);
       return(FALSE);
   endif;

  ComponentMoveData    ("",nDisk,0);

//abwahl aller bestehenden componenten
ComponentSelectItem  (MEDIA,COMPONENT_PROJECTINI, FALSE);      
ComponentSelectItem  (MEDIA,COMPONENT_LAUNCH, FALSE);      
ComponentSelectItem  (MEDIA,COMPONENT_LAUNCHINI,FALSE);      
// und so weiter ....
  return (TRUE);
end;

Es würde mich freuen, wenn DU mir einen Rat geben könntest !

mit lieben grüssen von robert


trutmrol

trutmrol
  • Members
  • 94 posts

Posted 23 November 2001 - 14:20

Die Anzahl der Componenten habe ich noch nie 20
erreicht!
Doch versuche mal die Componenten zusammenzufassen.
d.h  |COMPONENT_LAUNCH
    +--|COMPONENT_LAUNCHINI
       +-----
     etc.
-----------------------------------------------
//Reset internal Structures
nResult = ComponentMoveData( "", nDisk, 0 );  

 nResult = ComponentMoveData( MEDIA, nDisk, 0 );
  if (nResult < 0) then
    //Fehlerbehandlung
  endif;