Entwickler-Ecke

Dateizugriff - OleContainer in Stream speichern und laden


Guldi - So 09.03.03 23:08
Titel: OleContainer in Stream speichern und laden
Hallo

Ich Will die Daten eines OleContainers über das Netztwerk versenden und anschliessend wieder in ein OleContainer laden. Es funktioniert aber nicht so richtig. Im zweiten OleContainer ist nicht's zu sehen. Kann mir da jemand bitte weiter helfen?

Ausschnitt des Quellcodes des 1. Programmes:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
    try
      Excel := CreateOleObject('Excel.Application');
    except
      ShowMessage('Excel konnte nicht gestartet werden !');
      Exit;
    end;
    try
      Excel.Workbooks.open(datei2);
      Excel.Visible := false;   
    except
      MessageDlg('Fehler beim laden von Exceltabelle!' + #13 + #13 + 'Bitte widerholen.', mtWarning,[mbOk], 0);
    end;
    Excel.worksheets['kat_a'].range['a1:k15'].Copy;
    OleContainer1.Paste;
    Clipboard.clear;
    Excel.ActiveWorkbook.close;
    MyStream:=TMemoryStream.Create;
    OleContainer1.savetostream(MyStream);


MyStrem wird jetzt nun über das Netz versand und wird auf der anderen Seite (nach meiner Meinung) fehlerfrei empfangen.


Ausschnitt des Quellcodes des 2. Programmes:


Quelltext
1:
2:
3:
CoInitialize(NIL);
OleContainer2.LoadFromStream(MyStream);
CoUninitialize;

Ich vermute, dass der zweite OleContainer irgendwie noch initialisirt werden muss, finde aber zu diesem Thema nirgends etwas zum nachlesen.


Danke schon mal im voraus!

Guldi


Guldi - Di 11.03.03 15:08
Titel: Bereich auswählen eriner Excel Tabelle im OleContainer
Hallo

Nach langem suchen fand ich den Befehl:OleContainer.DoVerb(0);Nach diesem Befehl ist die Tabelle sichtbar.

Leider zeigt der OleContainer mehr Zellen an als erwünscht. Weiss jemand, wie man den Anzeigebereich des ExcelObjekts setzt?

Mit bestem Dank