AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Office-Objekte übers Internet verschicken
Thema durchsuchen
Ansicht
Themen-Optionen

Office-Objekte übers Internet verschicken

Ein Thema von Admirandis · begonnen am 10. Nov 2008 · letzter Beitrag vom 22. Nov 2008
Antwort Antwort
Seite 2 von 2     12   
Kalfany

Registriert seit: 28. Feb 2008
Ort: München
153 Beiträge
 
Delphi 2007 Professional
 
#11

Re: Office-Objekte übers Internet verschicken

  Alt 11. Nov 2008, 15:08
ich find IMAP jetzt zwar nicht die schlechteste lösung ... aber eigentlich ist IMAP nicht für sowas gemacht worden. ich würd eher mal in die richtung JABBER schaun ... das erfordert evtl. einen tick mehr einarbeitungszeit ... aber über das protokoll kannst du eig. alles was du willst verschicken ... text, daten, audio, video ... ich denke mal das du damit auf längere sicht weniger arbeit (bzw. probleme) haben wirst als mit IMAP


EDIT:
ich würd mir mal son clipboardviewer installieren und schaun was wört da so alles rein packt ....
im anhang mal ein beispiel (ist zwar keine formel, aber da dürfte ja nicht soviel unterschied sein ... und ich vermute mal das die ganzen (wichtigen) infos in dem enhanced metafile drin sind).
Miniaturansicht angehängter Grafiken
zwischenablage011_948.jpg  
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#12

Re: Office-Objekte übers Internet verschicken

  Alt 11. Nov 2008, 15:26
Folgendes:

Wenn ich eine Mathtype Formel aus Word kopiere ist das einzige was ich aus dem Clipboard rausbekomme ein Gif. Schade!

Wenn ich aber die Formel direkt aus Mathtype rauskopiere, dann krieg ich was zusehen im Clipboard . Nur wie krieg ich den XML-Code ins Word und wie kriege ich ihn aus dem Clipboard?
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#13

Re: Office-Objekte übers Internet verschicken

  Alt 11. Nov 2008, 16:28
Also über die kleine Lösung mit dem NetDrive könnte man doch mal nachdenken. Wenn Ihr beide ein Zentraldokument mit zwei Subdokumenten anlegt, dann könnte eines davon auf dem FTP-Laufwerk liegen. Die auszutauschenden Formeln würde man in den Abschnitt des Austauschsubdokuments legen, sodass sie für beide verfügbar sind.

Oder man hat halt ein Wörddokument auf dem FTP-Laufwerk wo die Formeln und die dazugehörigen Erklärungen liegen, denn Formel alleine ist oft ungüngstig.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#14

Re: Office-Objekte übers Internet verschicken

  Alt 11. Nov 2008, 16:45
@Martin: Ich versteh schon was du meinst, aber das mit den Worddokumenten wird nie so schnell sein, wie wenn du es einfach über die Zwischenablage kopierst.

Wenn du das WordFile auf dem FTP liegen hast, muss man es doch ausserdem immerwieder neuladen, oder versteh ich da was falsch?

EDIT:
Habe hier einen Eintrag bei den Schweizern gefunden der eigtl perfekt passt: SwissDelphiCenter
Einzig und allein das Format müsste man noch ändern, so dass nur noch "MathML Presentation" und Visio Objekte als Typen angenommen werden. Dann wärs das schon.

Habt ihr eine Idee wie man das machen könnte?
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#15

Re: Office-Objekte übers Internet verschicken

  Alt 21. Nov 2008, 17:42
Hallo wiedermal!

Also, das mit der Zwischenablage hab ich inzwischen gelöst: Man nehme einfach ein Richedit. Fügt die Zwischenablage ein und speichert das ganze Feld ab JvRichEdit1.Lines.SaveToFile(); Genauso kann man es auch wieder laden. Also ganz einfach eigtl. Sogar sehr praktisch, weil das Richedit auch normale Dateien einfügen kann o_O

Was IMAP angeht: Hab ich nicht geschafft. Keine Ahnung woran das lag.
Deswegen geht das ganze jetzt über einen FTP-Server. Ist nicht schlimmer und nicht besser. Insofern nicht viel um!

Nun hab ich aber noch eine Frage:
Ich benutze dafür die Indy-Komponente idFTP. Blöderweise hängt die ganze Form, wenn ich was hoch- oder runterlade. Macht es Sinn, die ganze Komponente in einen neuen Thread auszulagern? Oder was könnt ihr mir sonst empfehlen?

Grüße Admirandis
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#16

Re: Office-Objekte übers Internet verschicken

  Alt 21. Nov 2008, 17:45
Es git auch eine TIdAntiFreeze Komponente, aber das mit dem Thread ist eigentlich sauberer.
Für normale Anwendungen muss das aber nicht sein, da reicht die AntiFreeze Kompo aus
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#17

Re: Office-Objekte übers Internet verschicken

  Alt 21. Nov 2008, 17:51
Jo, aber die AntiFreeze hatte ich schon drauf. blöderweise ohne Erfolg... muss man irgendwas beachten, wenn man den FTP in einen eigenen Thread extrahiert? Irgendwie hängt meine Main-Form dann immer noch
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#18

Re: Office-Objekte übers Internet verschicken

  Alt 21. Nov 2008, 18:31
Zitat von Admirandis:
Jo, aber die AntiFreeze hatte ich schon drauf. blöderweise ohne Erfolg...
Du hast sie aber nicht einfach nur aufs Form geklatscht, oder?

Ich glaube, mann muss sie noch aktivieren und natürlich verknüpfen.
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#19

Re: Office-Objekte übers Internet verschicken

  Alt 21. Nov 2008, 18:43
Zitat von jfheins:
Ich glaube, mann muss sie noch aktivieren und natürlich verknüpfen.
o_O Was muss man denn damit machen? Im ObjektInsp. hab ich sonst auch nix gefunden. Deswegen dachte ich...
  Mit Zitat antworten Zitat
Admirandis
(Gast)

n/a Beiträge
 
#20

Re: Office-Objekte übers Internet verschicken

  Alt 22. Nov 2008, 14:33
Servus!

Ich hab jetzt nochmal versucht nach besten Gewissen die ganzen FTP Zugriffe in einen eignen Thread auszulagern. Blöderweise geht es immer noch nicht -.-

Hier mal der Code von der Main:
Delphi-Quellcode:
unit Office_Clipper;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MyFTP, ExtCtrls, JvExControls, JvXPCore, JvXPButtons, JvLED, StdCtrls;

type
  TForm1 = class(TForm)
    ConnectButton: TJvXPButton;
    updatetimer: TTimer;
    Connectedled: TJvLED;
    FileBox: TListBox;
    procedure updatetimerTimer(Sender: TObject);
    procedure ConnectButtonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
   connected: boolean;
    ftp: TMyFTP;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ftp := TMyFTP.create;

ftp.set_host('myserver.de');
ftp.set_user('myuser');
ftp.set_password('mypassword');

end;

procedure TForm1.ConnectButtonClick(Sender: TObject);
begin
if ftp.connect = false then
      showmessage('Fehler beim Erstellen der Verbindung!')
  else
    begin
      ftp.set_directory('mydirectory');
      updatetimer.Enabled := true;
    end;
end;

procedure TForm1.updatetimerTimer(Sender: TObject);
begin

connected := ftp.get_state;

if connected = true then
    begin
      ConnectedLED.Status := true;
      ConnectedLED.Active := false;
      ftp.get_list(FileBox);
    end
  else
    begin
      ConnectedLED.Status := false;
      ConnectedLED.Active := true;
    end;

end;

end.
und hier noch der Code von meinem FTP-Thread:
Delphi-Quellcode:

unit MyFTP;

interface

uses Windows, SysUtils, Classes, Dialogs, IdFTP, Variants, StdCtrls;

type
TMyFTP = class(TThread)
  private
    filename, host, user, password, directory: string;

  protected
    procedure execute; override;

  public
    constructor create; virtual;

    procedure upload;
    procedure download;

    procedure set_host(aHost: string);
    procedure set_user(aUser: string);
    procedure set_password(aPassword: string);
    procedure set_directory(aDirectory: string);

    function connect: boolean;
    function get_state: boolean;
    procedure get_list(aListbox: TListbox);

  end;

var
 ftp: TidFTP;

implementation

///////////////////// FTP - THREAD ////////////////////////

//Creation///
procedure TMyFTP.Execute;
begin
 while not Terminated do
        WaitFor;

 if Terminated then
    ftp.Free;
end;

constructor TMyFTP.create;
begin
  inherited create(true);
  freeOnTerminate := true;
  ftp := TIdFTP.Create(nil);
end;
///



//Up- and Download///
procedure TMyFTP.upload;
begin

end;

procedure TMyFTP.download;
begin

end;
///



//Settings///
procedure TMyFTP.set_host(aHost: string);
begin
ftp.Host := aHost;
host := aHost;
end;

procedure TMyFTP.set_user(aUser: string);
begin
ftp.Username := aUser;
user := aUser;
end;

procedure TMyFTP.set_password(aPassword: string);
begin
ftp.Password := aPassword;
password := aPassword;
end;

procedure TMyFTP.set_directory(aDirectory: string);
begin
ftp.ChangeDir(aDirectory);
directory := aDirectory;
end;
///



//Connection///
function TMyFTP.connect;
begin
  ftp.Connect;

if ftp.Connected = true then
    result := true
  else
    result := false;
end;

function TMyFTP.get_state;
begin
result := ftp.Connected;
end;
///



//Returns///
procedure TMyFTP.get_list(aListbox: TListbox);
begin
ftp.List(aListbox.Items, '', false);
end;
///

//////////////////////////////////////////////////////////////////

end.
Da das mein erstes Projekt ist, wo ich einen eigenen Thread benutze kann es sein, dass hier noch was falsch ist. Ich hoffe ihr könnt mir sagen, wo mein Fehler liegt!

Grüße Admirandis
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz