Announcement

Collapse
No announcement yet.

Keine Ahnung wie ich auf Reader 7.0 umstellen kann.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Keine Ahnung wie ich auf Reader 7.0 umstellen kann.

    Hallo Ihr lieben,

    ein Freund von mir hat mich gebeten ihm bei folgendem Problem zu helfen. Leider stehe ich aber selber auf dem Schlau.... habe einfach keine Ahnung von C.

    Es geht um folgendes: Wie kann man den untenstehenden Quelltext so ändern, dass er mit dem neuen Adobe Reader 7.0 funktioniert.

    Wir sind für jede Hilfe Dankbar.

    #include "pch.h"
    #pragma hdrstop

    // Iterator Abstraction
    #include "iterator\iter_t.h"

    // Collaborations
    #include "partListApp.h"

    #include "localeController.h"
    #include "unitSystemController.h"

    #include "dataProvider.h"
    #include "fldListProvider.h"
    #include "vclDataSerializer.h"
    #include "partListFldValueTranslator.h"

    // RestoreFormState
    #include "windowMessage.h"
    #include "plConstants.h"

    // About
    #include "frmAbout1.h"
    #include "frmPrintOptions1.h"

    // Statics
    String PDF_CATALOG_NAME = "Katalog.PDF";
    char PDF_CATALOG_SP[3];

    // Self
    #include "frmPartList1.h"

    // Automation Server
    #include "PLCOMMIFIMPL.H"

    // Namespace Activation
    using namespace unitSystem;

    // Observer
    #include "frmPartListLocaleObserver.h"
    #include "frmPartListUnitObserver.h"

    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma link "PdfLib_OCX"
    #pragma link "BaseGrid"
    #pragma resource "*.dfm"
    TfrmPartList *frmPartList;
    //---------------------------------------------------------------------------
    __fastcall TfrmPartList::TfrmPartList(TComponent* Owner)
    : TForm(Owner)
    {
    // Init
    ocxPDFView = 0;
    ocxPrevWidth = 0;
    atRecord = false;
    fileAvailable = false;
    catalogDisplayed = false;
    isInitialized = false;

    // Master Data
    plDataProvider = new DataProvider();
    plFldListProvider = plDataProvider->fldListProvider();

    // Locale & Unit Observer
    partListLocaleObserver = new PartListLocaleObserver(LOC(), this);
    partListUnitObserver = new PartListUnitObserver(UNITSYS(), this);

    // Data Access
    plSerializer = new VCLDataSerializer();
    plFldValTranslator = new PartListFldValueTranslator(plSerializer, plDataProvider);

    // Inits
    setColumnLabels();
    updateCaption();
    }
    //---------------------------------------------------------------------------
    __fastcall TfrmPartList::~TfrmPartList()
    {
    delete plSerializer;
    plSerializer = 0;

    delete partListUnitObserver;
    partListUnitObserver = 0;

    delete partListLocaleObserver;
    partListLocaleObserver = 0;

    delete plDataProvider;
    plDataProvider = 0;
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::FormCreate(TObject* /*Sender*/)
    {
    loadFormState();
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::Loaded(void)
    {
    sgPartList->ColumnSize->Key = APP()->iniFile();
    TForm::Loaded();

    if(APP()->isAutomationServer())
    {
    actMoveToCalc->Visible = APP()->transferModeEnabled();
    actCopyToCalc->Visible = APP()->transferModeEnabled();
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList:penFile(const String &fileName)
    {
    if(FileExists(fileName))
    {
    plSerializer->open(fileName.c_str());

    // Set current file
    APP()->currentFile(fileName);

    // Display Content
    displayData();
    updateCaption();

    atRecord = (plSerializer->size() > 0);
    fileAvailable = true;
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::setColumnLabels(void)
    {
    // Refresh aus
    sgPartList->BeginUpdate();

    try
    {
    // Anzahl der Spalten setzen
    sgPartList->UnHideColumnsAll();
    sgPartList->ColCount = 0;
    sgPartList->ColCount = plFldListProvider->size();

    // Spalten Beschriftungen setzen
    unsigned col = 0;
    auto_ptr<Pox::Iterator<FldDesc> > labelFLI(plFldListProvider->CreateIterator());
    for(labelFLI->First(); !labelFLI->IsDone(); labelFLI->Next())
    {
    FldDesc fldDsc = labelFLI->Current();

    // Feldnamen
    sgPartList->Cells[col][0] = fldDsc.displayLabel.c_str();
    sgPartList->Objects[col][0] = (TObject*)fldDsc.id;

    // Einheiten
    UnitDesc unitDsc;
    if(UNITSYS()->getDesc((Unit) fldDsc.unitId, unitDsc))
    sgPartList->Cells[col][1] = unitDsc.szUnitLbl;

    col++;
    }

    adjustVisibleColumns();

    // Spaltenbreiten wiederherstellen
    sgPartList->LoadColSizes();
    }
    catch(Exception &x)
    {
    Application->ShowException(&x);
    }

    // Refresh an
    sgPartList->EndUpdate();
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::adjustVisibleColumns(void)
    {
    // TabIndex puffern
    int tabIdx = tcColumnSelect->TabIndex;

    // Refresh aus
    sgPartList->BeginUpdate();

    try
    {
    // Auf aktuelle Registerkarte beschränken
    unsigned colCount = sgPartList->ColCount + sgPartList->NumHiddenColumns();
    for(unsigned curCol = 0; curCol < colCount; ++curCol)
    {
    FldDesc fldDsc;
    if(plFldListProvider->getFldDsc((int) sgPartList->Objects[curCol][0], fldDsc))
    {
    // Spalten die nicht der Registerkarte entsprechen oder internen Zwecken dienen, verstecken!
    // DisplayPage in der Datenbank startet ab 1! -> deshalb brauch auf tabIdx nix addiert werden
    if(!(((fldDsc.displayPage == -1) || (fldDsc.displayPage == tabIdx) || (tabIdx == 0)) && (fldDsc.displayPage != 0)))
    sgPartList->HideColumn(curCol);
    else
    sgPartList->UnHideColumn(curCol);
    }
    }
    }
    catch(Exception &x)
    {
    Application->ShowException(&x);
    }

    // Refresh an
    sgPartList->EndUpdate();
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::displayData(void)
    {
    // Refresh aus
    sgPartList->BeginUpdate();

    try
    {
    // Alten Inhalt wegwerfen
    sgPartList->ClearNormalCells();

    // Reihenanzahl anpassen (1 leere Reihe gibts immer!)
    sgPartList->RowCount = plSerializer->size() ? (plSerializer->size() + sgPartList->FixedRows) : (sgPartList->FixedRows + 1);

    // Gibts überhaupt Daten?
    plSerializer->refresh();
    if(plSerializer->size())
    {
    // Bauteile einlesen
    int curRow = sgPartList->FixedRows;
    for(plSerializer->first(); !plSerializer->eof(); plSerializer->next(), ++curRow)
    {
    // Index
    sgPartList->Cells[0][curRow] = String((curRow - sgPartList->FixedRows) + 1);
    sgPartList->Objects[0][curRow] = (TObject*)plSerializer->acquireBookmark();

    // FeldInhalte abholen
    unsigned fldCount = plFldListProvider->size();
    for(unsigned curCol = 0; curCol < fldCount; ++curCol)
    {
    FldDesc fldDsc;
    if(plFldListProvider->getFldDsc((int) sgPartList->Objects[curCol][0], fldDsc))
    {
    String dispValue("");

    // Translate & Display FieldValue
    if(plFldValTranslator->getFldValue(fldDsc, dispValue))
    sgPartList->Cells[curCol][curRow] = dispValue;
    }
    }
    }
    }
    }
    catch(Exception &x)
    {
    Application->ShowException(&x);
    }

    // Refresh an
    sgPartList->EndUpdate();
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::FormShow(TObject* /*Sender*/)
    {
    openFile(APP()->currentFile());
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::FormClose(TObject* /*Sender*/, TCloseAction &Action)
    {
    saveFormState();

    if(APP()->isAutomationServer())
    {
    Action = caNone;
    APP()->terminate();
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::saveFormState(void)
    {
    if(isInitialized)
    {
    sgPartList->SaveColSizes();
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::loadFormState(void)
    {
    if(catalogDisplayed)
    {
    ShowCatalog();
    cbCatData->Checked = true;
    }

    sgPartList->LoadColSizes();

    isInitialized = true;
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::OnLanguageMenuChange(TObject* sender)
    {
    // Sprache ändern
    TMenuItem *menuItem = dynamic_cast<TMenuItem*>(sender);
    if(menuItem)
    {
    saveFormState();

    // Über den LocaleController Sprache umsetzen
    LOC()->setCurrentLocaleSet(menuItem->Tag);
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::OnUnitSystemChange(TObject* sender)
    {
    using namespace unitSystem;

    TMenuItem *menuItem = dynamic_cast<TMenuItem*>(sender);
    if(menuItem)
    {
    // Über den UnitSystemController Einheitensystem umsetzen
    UNITSYS()->unitSystem((unitSystem::UnitSystemId) menuItem->Tag);
    }
    }
    //---------^------------------------------------------------------------------
    void __fastcall TfrmPartList::tcColumnSelectChange(TObject* /*Sender*/)
    {
    adjustVisibleColumns();
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::FileQuit1Execute(TObject* /*Sender*/)
    {
    APP()->terminate();
    }
    //---------------------------------------------------------------------------
    void __fastcall TfrmPartList::alPartListUpdate(TBasicAct

  • #2
    Wer soll was mit dem Code anfangen?

    Einbinden kann man ihn nicht, so mal per Hand durchgehen?

    Also poste Fehlermeldungen und Zeile. Dann kann man schauen.

    *kopfschüttel
    Christian

    Comment


    • #3
      sorry hast natürlich recht,

      das Problem hat sich aber schon erledigt.

      Nochmal Danke... und bitte nict böse sein!

      Comment

      Working...
      X