products/Sources/formale Sprachen/Delphi/Autor 0.7 image not shown  

Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: top.pvs   Sprache: PVS

unit main;
interface
//------------------------------------------------------------------------------
//        Uses
//------------------------------------------------------------------------------
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ImgList, StdCtrls, ComCtrls, BandActn, StdActns, ExtActns,
  ActnList, ToolWin, ExtCtrls, ActnMan, ActnCtrls, ActnMenus, Lizenz,
  XPStyleActnCtrls, StdStyleActnCtrls, OleCtrls, SHDocVw, jpeg, Buttons,
  UtilitiesOwn, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdFTP, rtf2html, Strutils, richedit, Optionclass, xmldom, XMLIntf, msxmldom,
  XMLDoc, AboutBox, dateuTILS, Printers, GIFImage, Utilities, Math, ShellApi,
  IdExplicitTLSClientServerBase;
//------------------------------------------------------------------------------
//      Const
//------------------------------------------------------------------------------
const
  Filters:array [0..0] of String=
   ('Bilddateien (*.jpg;*.gif;*.bmp)|*.jpg;*.gif;*.bmp');
//------------------------------------------------------------------------------
//        Type
//------------------------------------------------------------------------------
type
  TForm1 = class(TForm)
    ActionMainMenuBar1: TActionMainMenuBar;
    ToolActionBar1: TActionToolBar;
    ToolActionBar2: TActionToolBar;
    ToolActionBar3: TActionToolBar;
    Artikeltext: TRichEdit;
    ImageList1: TImageList;
    StatusBar1: TStatusBar;
    LinksHotImages: TImageList;
    LinksImages: TImageList;
    NavigatorHotImages: TImageList;
    NavigatorImages: TImageList;
    WebBrowser1: TWebBrowser;
    VerticalSplitter: TSplitter;
    Artikelbild: TImage;
    Ueberschrift: TRichEdit;
    HorizontalSplitter: TSplitter;
    ComboBox1: TComboBox;
    IdFTP1: TIdFTP;
    XMLDoc: TXMLDocument;
    ActionManager1: TActionManager;
    EditCut1: TEditCut;
    EditCopy1: TEditCopy;
    EditPaste1: TEditPaste;
    EditSelectAll1: TEditSelectAll;
    EditUndo1: TEditUndo;
    EditDelete1: TEditDelete;
    RichEditBold1: TRichEditBold;
    RichEditItalic1: TRichEditItalic;
    RichEditUnderline1: TRichEditUnderline;
    RichEditStrikeOut1: TRichEditStrikeOut;
    RichEditBullets1: TRichEditBullets;
    RichEditAlignLeft1: TRichEditAlignLeft;
    RichEditAlignRight1: TRichEditAlignRight;
    RichEditAlignCenter1: TRichEditAlignCenter;
    FileOpen1: TFileOpen;
    FileSaveAs1: TFileSaveAs;
    FileRun1: TFileRun;
    FileExit1: TFileExit;
    SearchFind1: TSearchFind;
    SearchFindNext1: TSearchFindNext;
    SearchReplace1: TSearchReplace;
    SearchFindFirst1: TSearchFindFirst;
    CustomizeActionBars1: TCustomizeActionBars;
    StdStyleActn: TAction;
    XPStyleActn: TAction;
    ShadowActn: TAction;
    FilePageSetup1: TFilePageSetup;
    Browse: TAction;
    Transfer: TAction;
    Hilfe: TAction;
    Optionen: TAction;
    Drucken: TAction;
    Ueber: TAction;
    Support: TAction;
    Donation: TAction;
    PrintDialog1: TPrintDialog;
    function  LoadImage(s:String;a:ArticleType):boolean;
    procedure SaveArticle(a:ArticleType);
    procedure SaveRtfArticle(a:ArticleType);
    procedure LoadArticle(a:ArticleType);
    procedure LoadTextArticle(a:ArticleType);
    procedure LoadXMLArticle(a:ArticleType);
    function  ExtractXMLPicture(a:ArticleType):String;
    procedure SaveXMLArticle(a:ArticleType);
    procedure FileOpen1Accept(Sender: TObject);
    procedure FileSaveAs1Accept(Sender: TObject);
    procedure ActionManager1StateChange(Sender: TObject);
    procedure StdStyleActnExecute(Sender: TObject);
    procedure XPStyleActnExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ShadowActnExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ArtikelbildDblClick(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure BrowseExecute(Sender: TObject);
    procedure ReplaceRemoteFile(Remote,Local:String);
    procedure ReplaceLocalFile(Local,remote:String);
    procedure ReplaceLocalPicture(Local,remote:String);
    procedure InboundTransferExecute(Sender: TObject);
    procedure OutboundTransferExecute(Sender: TObject);
    procedure HilfeExecute(Sender: TObject);
    procedure OptionenExecute(Sender: TObject);
    procedure DruckenExecute(Sender: TObject);
    procedure ArtikelbildMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ArtikeltextMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure UeberExecute(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure SupportExecute(Sender: TObject);
    procedure DonationExecute(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
//------------------------------------------------------------------------------
//        Var
//------------------------------------------------------------------------------
var
  Form1: TForm1;
  AktBild:String;
  AktBildSize:longint;
  Pageseen:boolean;
//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
implementation
{$R *.dfm}
//------------------------------------------------------------------------------
//        constructor create form
//------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
  XPStyleActn.Checked  := ActionManager1.Style = XPStyle;
  StdStyleActn.Checked := ActionManager1.Style = StandardStyle;
  Pageseen:=false;
  if (Opt.r.ActualArticle<Angebote) or (Opt.r.ActualArticle>Vorgestern) then
    opt.r.ActualArticle:=Angebote;
end;
//------------------------------------------------------------------------------
//        FormShow
//------------------------------------------------------------------------------
procedure TForm1.FormShow(Sender: TObject);
var a:ArticleType;
begin
  checklicense();
  //
  Width              := Opt.r.Width;
  Height             := Opt.r.Height;
  Top                := Opt.r.top;
  Left               := Opt.r.Left;
  Artikeltext.Height := Height-Opt.r.Horsplitter;
  Artikeltext.Width  := Width-Opt.r.VerSplitter;
  Artikelbild.Height := Opt.r.Horsplitter;
  Artikelbild.Width  := Opt.r.VerSplitter;
  for a:=low(ArticleType) to high(ArticleType) do
    ComboBox1.AddItem(Opt.r.name[a],nil);
  InboundTransferExecute(Sender);
  WebBrowser1.Visible:=false;
end;
//------------------------------------------------------------------------------
//        constructor create form
//------------------------------------------------------------------------------
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key=Key_Escape then begin
    Width:=Screen.Width div 2;
    Height:=Screen.Height div 2;
    top:=Screen.Height div 2-Height div 2;
    Left:=Screen.Width div 2 -Width div 2;
    Opt.r.Width:=Width;Opt.r.BWidth:=Width;
    Opt.r.Height:=Height;Opt.r.BHeight:=Height;
  end;  
end;
//------------------------------------------------------------------------------
//             ftp  put
//------------------------------------------------------------------------------
procedure TForm1.ReplaceRemoteFile(Remote,Local:String);
begin
  //if IdFTP1.ChangeDir(Remote,false)<>0 then
  try
  IdFTP1.Delete(remote);
  finally
  IdFTP1.Put(Local,remote)
  end;
end;
//------------------------------------------------------------------------------
//             ftp get
//------------------------------------------------------------------------------
procedure TForm1.ReplaceLocalFile(Local,Remote:String);
begin
  Local:=StringReplace(Local,'/','\',[rfReplaceAll]);
  if not DirectoryExists(ExtractFileDir(Local)) then
    createdir(ExtractFileDir(Local));
  DeleteFile(Local);
  try
  IdFTP1.get(remote,Local,true);
  finally
  end;
end;
//------------------------------------------------------------------------------
//             ftp get Picture
//------------------------------------------------------------------------------
procedure TForm1.ReplaceLocalPicture(Local,Remote:String);
begin
  Local:=StringReplace(Local,'/','\',[rfReplaceAll]);
  if not DirectoryExists(ExtractFileDir(Local)) then
    createdir(ExtractFileDir(Local));
  DeleteFile(Local);
  try
  IdFTP1.get(remote,Local,true);
  finally
  end;
end;
//------------------------------------------------------------------------------
//             ftp transfer
//------------------------------------------------------------------------------
procedure TForm1.InboundTransferExecute(Sender: TObject);
var a,act:ArticleType;Pic:String;
begin
  IdFTP1.Host:=Opt.r.Ftpsite;
  IdFTP1.Username:=opt.r.ftpuser;
  IdFTP1.Password:=opt.r.ftppassword;
  if not DirectoryExists(Opt.R.LocalDir) then
    createdir(Opt.R.LocalDir);
  try
    IdFTP1.Connect;
    if IdFTP1.Connected then begin
      IdFTP1.ChangeDir(Opt.r.RemoteDir);
      act:=Opt.r.ActualArticle;
      for a:=low(ArticleType) to high(ArticleType) do begin
        ReplaceLocalFile(Opt.R.LocalDir+Opt.r.xmlfile[a],Opt.r.xmlfile[a]);
        Pic:=ExtractXMLPicture(a);
        if Pic<>'' then ReplaceLocalPicture(Opt.R.LocalDir+Pic,Pic);
        LoadArticle(a);
      end;
      LoadArticle(act);
    end;
  finally
    if idftp1.Connected then
    IdFTP1.Disconnect;
  end;
end;
//------------------------------------------------------------------------------
//             ftp transfer
//------------------------------------------------------------------------------
procedure TForm1.OutboundTransferExecute(Sender: TObject);
var a:ArticleType;ok:boolean;
begin
  if      (Lengthrtf(Opt.r.RtfText[Angebote])<5)   then ShowMessage('Angebot fehlt')
  else if (Lengthrtf(Opt.r.RtfText[Aktuelles])<5)  then ShowMessage('Aktuelles fehlt')
  else if (Lengthrtf(Opt.r.RtfText[Empfehlung])<5) then ShowMessage('Empfehlung fehlt')
  else begin
  screen.Cursor:=crHourGlass;
  SaveArticle(Opt.r.ActualArticle);
  IdFTP1.Host:=Opt.r.Ftpsite;
  IdFTP1.Username:=opt.r.ftpuser;
  IdFTP1.Password:=opt.r.ftppassword;
  ok:=true;
  if not DirectoryExists(Opt.R.LocalDir) then
    createdir(Opt.R.LocalDir);
  try
    IdFTP1.Connect;
    if IdFTP1.Connected then begin
      IdFTP1.ChangeDir(Opt.r.RemoteDir);
      for a:=Angebote to Empfehlung do begin
        if FileExists(Opt.R.LocalDir+Opt.r.xmlfile[a]) then begin
          ReplaceRemoteFile(Opt.r.xmlfile[a],Opt.R.LocalDir+Opt.r.xmlfile[a]);
          if Opt.r.Bild[a]<>'' then begin
            ReplaceRemoteFile(Opt.r.RemotePicSmallDir+ExtractFileName(Opt.r.bild[a]),Opt.r.bild[a]);
            ReplaceRemoteFile(Opt.r.RemotePicBigDir+ExtractFileName(Opt.r.bild[a]),Opt.r.bild[a])
          end  
        end
      end;
      LoadArticle(Opt.r.ActualArticle);
  end except
    ok:=false;
  end;
  if idftp1.Connected then
    IdFTP1.Disconnect;
  if Ok then begin
    StatusBar1.SimpleText:='Alle Artikel �bertragen';
    StatusBar1.Font.Color:=clBlue;
  end else begin
    StatusBar1.SimpleText:='Verbindungsfehler - nicht alle �berttragen!';
    StatusBar1.Font.Color:=clRed;
  end;
  screen.Cursor:=crDefault;
  end;
end;
//------------------------------------------------------------------------------
//             �ber
//------------------------------------------------------------------------------
procedure TForm1.UeberExecute(Sender: TObject);
var dd:integer;
begin
  About:=TAboutBox.create(Self);
  if Opt.r.Activated then
    About.Produkt.Caption:=MidStr(Opt.r.WindowsProductId,11,100)
  else begin
    DD := Opt.R.DaysUsed;
    DD := EvaluationPeriod-DD;
    About.Produkt.Caption:='Noch '+inttostr(DD)+' Tage nutzbar.';
  end;
  About.showmodal;
  About.free;
end;
//------------------------------------------------------------------------------
//                browser/editor wechsel
//------------------------------------------------------------------------------
procedure TForm1.BrowseExecute(Sender: TObject);
var Flags: OLEVariant; URL:String;
begin
  Flags := 0;
  WebBrowser1.Visible  := not WebBrowser1.Visible;
  Ueberschrift.Visible := not Ueberschrift.Visible;
  Artikeltext.Visible  := not Artikeltext.Visible;
  ComboBox1.Visible    := not ComboBox1.Visible;
  Artikelbild.Visible  := not Artikelbild.Visible;
  if WebBrowser1.Visible then begin
    Transfer.Enabled:=false;
    screen.Cursor:=crHourGlass;
    Opt.r.Width:=Width;
    opt.r.Height:=Height;
    Top:=max(0,abs(Top+Height div 2-Opt.r.BHeight div 2));
    Left:=max(0,abs(Left+Width div 2-Opt.r.BWidth div 2));
    Width:=Opt.r.BWidth;
    Height:=Opt.r.BHeight;
    URL:='http://'+Opt.r.internetsite;
    if (WebBrowser1.LocationURL=URL) and Pageseen then
       WebBrowser1.Refresh
    else
       WebBrowser1.Navigate(WideString(URL),navNoReadFromCache);
    Pageseen:=true;
    Browse.Caption:='Artikel';
    ComboBox1.Visible:=false;
    Screen.Cursor:=crDefault;
  end else begin
    Transfer.Enabled:=true;
    Opt.r.BWidth:=Width;
    opt.r.BHeight:=Height;
    Top:=min(Screen.Height,abs(Top+Height div 2-Opt.r.Height div 2));
    Left:=min(screen.Width,abs(Left+Width div 2-Opt.r.Width div 2));
    Width:=Opt.r.Width;
    Height:=opt.r.Height;
    ComboBox1.Visible:=true;
    Browse.Caption:='Netz';
  end;
end;
//------------------------------------------------------------------------------
//                donation article
//------------------------------------------------------------------------------
procedure TForm1.DonationExecute(Sender: TObject);
Var Site,Count:String;
begin
  Count:=InttoStr(SysLocale.PriLangID);
  Site:= 'http://www.tdh.de';
  ShellExecute(Handle, 'open',PChar(Site),nil,nil, SW_SHOWNORMAL);
end;
//------------------------------------------------------------------------------
//                print article
//------------------------------------------------------------------------------
procedure TForm1.DruckenExecute(Sender: TObject);
var cmd,res:TOleEnum;
begin
  if PrintDialog1.Execute then begin
     Screen.Cursor:=crHourGlass;
     if WebBrowser1.Visible then begin
      cmd:=OLECMDID_PRINT;
      res:=WebBrowser1.QueryStatusWB(cmd);
      if res<>0  then
        WebBrowser1.ExecWB(cmd,cmd);
    end else begin
      Printer.Title:=Opt.r.Headline+' - '+DateToStr(Now);
      Artikeltext.Print('Artikel');
    end;
     Screen.Cursor:=crDefault;
  end;
end;
//------------------------------------------------------------------------------
//                save article
//------------------------------------------------------------------------------
procedure TForm1.SaveRtfArticle(a:ArticleType);
var Output:String;RTFString: TStringStream;
begin
  RTFString := TStringStream.Create(Output);
  RTFString.Position := 0;
  Ueberschrift.Lines.SaveToStream(RTFString);
  StrPCopy(Opt.r.ueberschrift[a],RTFString.DataString);
  RichEditToHTML(Ueberschrift,OutPut);
  // correct <p></p>
  if MidStr(Output,1,3)='

 then begin
    Output:=StringReplace(Output,'

,'

,[rfReplaceAll]);
    Output:=MidStr(Output,1,Length(Output)-4)+'
'
;
  end;
  StrPCopy(Opt.r.ueberschriftxml[a],Output);
  RTFString.Position := 0;
  Artikeltext.Lines.SaveToStream(RTFString);
  if length(RTFString.DataString)<KeyMaxLong then
    StrPCopy(Opt.r.RtfText[a],RTFString.DataString)
  else showmessage('Artikel zu lang');
  RichEditToHTML(Artikeltext,Output);
  // correct <p></p>
  if MidStr(Output,1,3)='

 then begin
    Output:=StringReplace(Output,'

,'

,[rfReplaceAll]);
    Output:=MidStr(Output,1,Length(Output)-4)+'
'
;
  end;
  StrPCopy(Opt.r.textxml[a],Output);
  RTFString.free;
end;
{------------------------------------------------------------------}
{-                                                                -}
{-   copy string to stream                                        -}
{-                                                                -}
{------------------------------------------------------------------}
procedure CopyStream(streamin:String;var streamout:TMemoryStream);
var p:integer;
begin
  streamout.SetSize(length(streamin)+8);
  streamout.Position := 0;
  streamout.Clear;
  p:=1;
  while p<=Length(streamin) do begin
    streamout.WriteBuffer(streamin[p], 1);
    p:=p+1
  end
end;
//------------------------------------------------------------------------------
//              load article
//------------------------------------------------------------------------------
procedure TForm1.LoadArticle(a:ArticleType);
begin
  Aktbild:='';
  LoadXMLArticle(a);
  Opt.r.ActualArticle:=a;
  ComboBox1.ItemIndex:=ord(a);
end;
//------------------------------------------------------------------------------
//              save article
//------------------------------------------------------------------------------
procedure TForm1.SaveArticle(a:ArticleType);
begin
  if a<=Empfehlung then begin
    SaveRtfArticle(a);
    SaveXMLArticle(a)
  end;
end;
//------------------------------------------------------------------------------
//              load text article
//------------------------------------------------------------------------------
procedure TForm1.LoadTextArticle(a:ArticleType);
var streamatt:TMemoryStream;
begin
  streamatt:=TMemoryStream.Create;
  // Ueberschrift
  Ueberschrift.ReadOnly := false;
  Ueberschrift.Lines.Clear;
  Artikeltext.ReadOnly := false;
  Artikeltext.Lines.Clear;
  if (Length(Opt.r.Ueberschrift)>0)  and (Length(Opt.r.RtfText)>0) then begin
    Ueberschrift.PlainText   := false;
    CopyStream(Opt.r.ueberschrift[a],streamatt);
    streamatt.Position:=0;
    Ueberschrift.Lines.LoadFromStream(streamatt);   // must be twice
    Ueberschrift.Paragraph.Alignment:=taCenter;
    // Bild
    if not FileExists(Opt.r.bild[a]) then Opt.r.bild[a]:='';
    LoadImage('',a);
    // Artikel
    Artikeltext.PlainText   := false;
    CopyStream(Opt.r.RtfText[a],streamatt);
    streamatt.Position:=0;
    Artikeltext.Lines.LoadFromStream(streamatt);   // must be twice  RTFString.Position := 0;
    streamatt.Free;
  end;
  Ueberschrift.Modified := false;
  Artikeltext.Modified  := false;
end;
//------------------------------------------------------------------------------
//              load xml document
//------------------------------------------------------------------------------
procedure TForm1.LoadXMLArticle(a:ArticleType);
var N,M:IXMLNode;Abstrakt,Pic,Head,Text,Overhead,Filnam:String;
begin
  Filnam:=Opt.R.LocalDir+Opt.r.xmlfile[a];
  if FileExists(Filnam) then begin
    XMLDoc.LoadFromFile(Filnam);
    if XMLDoc<>nil then begin
      M:=XMLDoc.DocumentElement;
      M:=M.ChildNodes.First;
      while M<>nil do begin
        N:=M.ChildNodes.First;
        while N<>nil do begin
          if      N.NodeName=xmlTags[2] then Head:=N.Text
          else if N.NodeName=xmlTags[1] then Overhead:=N.Text
          else if N.NodeName=xmlTags[4] then Abstrakt:=N.Text
          else if N.NodeName=xmlTags[5] then Text:=N.Text
          else if N.NodeName=xmlTags[9] then Pic:=N.Text;
          N:=N.NextSibling
        end;
        M:=M.NextSibling
      end;
      Artikeltext.ReadOnly:=false;
      Ueberschrift.ReadOnly:=false;
      Ueberschrift.Lines.Clear;
      RemoveLineBreak(Overhead);
      RemoveLineBreak(Head);
      HTMLToRichEdit(Overhead+Head,Ueberschrift);
      head:=Ueberschrift.Lines.GetText;
      Ueberschrift.SelectAll;
      Ueberschrift.Paragraph.Alignment:=taCenter;
      Ueberschrift.SelLength:=0;
      LoadImage(Opt.r.LocalDir+Pic,a);
      Artikeltext.Lines.Clear;
      Artikeltext.DefAttributes.Style:=[];
      HTMLToRichEdit(Abstrakt,Artikeltext);
      Artikeltext.Lines.Add('');
      HTMLToRichEdit(Text,Artikeltext);
      //
      Artikeltext.ReadOnly:=opt.r.readonly[a];
      Ueberschrift.ReadOnly:=opt.r.readonly[a];
    end
  end;
end;
//------------------------------------------------------------------------------
//              extract picture
//------------------------------------------------------------------------------
function TForm1.ExtractXMLPicture(a:ArticleType):String;
var N,M:IXMLNode;pic,f:String;
begin
  Pic:='';
  f:=Opt.R.LocalDir+Opt.r.xmlfile[a];
  if FileExists(f) then begin
   XMLDoc.LoadFromFile(f);
   if XMLDoc<>nil then begin
    M:=XMLDoc.DocumentElement;
    M:=M.ChildNodes.First;
    while M<>nil do begin
      N:=M.ChildNodes.First;
      while N<>nil do begin
        if N.NodeName='PICSMALL' then Pic:=N.Text;
        N:=N.NextSibling
      end;
      M:=M.NextSibling
    end;
   end
  end;
  ExtractXMLPicture:=Pic;
end;
//------------------------------------------------------------------------------
//              extract picture
//------------------------------------------------------------------------------
procedure TForm1.SaveXMLArticle(a:ArticleType);
var f:TextFile;d,m,y,s:String;i:integer;
procedure stael(s:string); begin write(f,'<'+s+'>'); end;
procedure endel(s:string); begin writeln(f,'+s+'>');end;
begin
  D:=IntToStr(DayOf(now));M:=IntToStr(MonthOf(Now));y:=IntToStr(YearOf(now));
  if not DirectoryExists(Opt.r.LocalDir) then
    CreateDir(Opt.r.LocalDir);
  AssignFile(F,Opt.R.LocalDir+Opt.r.xmlfile[a]);
  Rewrite(f);
  writeln(f,'');
  writeln(f,'+Opt.R.DocumentName+' [');
  writeln(f,'+Opt.r.DocumentName+' ('+Opt.r.Groupname+')+>');
  write  (f,'+Opt.r.Groupname+' (');
  s:='';
  for i:=1 to Length(XMLTags) do begin
    write  (f,s+XMLTags[i]+'?'); s:=', ';
end;
  writeln(f,')>');
  s:='';
  for i:=1 to Length(XMLTags) do begin
    write(f,');
    write(f,XMLTags[i]);
    writeln(f,' (#PCDATA)>');
  end;
  writeln(f,']>');
  stael(opt.r.DocumentName);
  stael(Opt.r.Groupname);
  writeln(f);
  for i:=1 to 9 do begin
    stael(opt.r.ElementName[i]);
    write(f,');                              // CDATA
    if      i=1 then write(f,Opt.R.Overhead)           // OVERHEAD
    else if i=2 then write(f,Opt.r.Ueberschriftxml[a]) // HEADLINE
    else if i=3 then write(f,d+'.'+m+'.'+y)            // DATE
    else if i=4 then write(f,'')                       // ABSTRACT
    else if i=5 then write(f,Opt.r.TextXML[a])         // TEXT
    else if i=6 then write(f,'Context IT')             // AUTHOR
    else if i=7 then begin                             // PICBIG
      s:=ExtractFileName(opt.r.Bild[a]);
      if s<>'' then s:=Opt.R.RemotePicBigDir+s;
      write(f,s);
    end else if i=8 then write(f,'Unbekannt')          // PICCREDIT
    else if i=9 then begin                             // PICSMALL
      s:=ExtractFileName(opt.r.Bild[a]);
      if s<>'' then s:=Opt.R.RemotePicSmallDir+s;
      write(f,s);
    end;
    write(f,']]>');                                   // END CDATA
    endel(opt.r.ElementName[i]);
  end;
  endel(Opt.r.Groupname);
  endel(opt.r.DocumentName);
  CloseFile(f);
end;
//------------------------------------------------------------------------------
//              optionen
//------------------------------------------------------------------------------
procedure TForm1.OptionenExecute(Sender: TObject);
var a:ArticleType;
begin
  with  Opt do begin
    Caption:=Title+Version;
    Top         := top;
    Left        := Left;
    Width       := width;
    Height      := Height;
    Edit1.Text  := Opt.R.HTMLPrefix;
    Edit2.Text  := Opt.R.HTMLSuffix;
    Edit3.Text  := Opt.R.Internetsite;
    Edit4.Text  := Opt.R.Ftpuser;
    Edit5.Text  := Opt.R.Ftppassword;
    Edit6.text  := Opt.r.LocalDir;
    Edit7.Text  := Opt.R.remoteDir;
    Edit8.Text  := Opt.R.Overhead;
    Etag1.Text  := XMLTags[1];
    Etag2.Text  := XMLTags[2];
    Etag3.Text  := XMLTags[3];
    Etag4.Text  := XMLTags[4];
    Etag5.Text  := XMLTags[5];
    Etag6.Text  := XMLTags[6];
    Etag7.Text  := XMLTags[7];
    Etag8.Text  := XMLTags[8];
    Etag9.Text  := XMLTags[9];
    Etag1.Enabled := false;
    Etag2.Enabled := false;
    Etag3.Enabled := false;
    Etag4.Enabled := false;
    Etag5.Enabled := false;
    Etag6.Enabled := false;
    Etag7.Enabled := false;
    Etag8.Enabled := false;
    Etag9.Enabled := false;
    try
      ShowModal
    except
      On E:Exception do error(em+92,'Fehler beim �ffnen, '+E.Message);
    end;
    // set libs
    StrPCopy(Opt.R.HTMLPrefix,Edit1.Text);
    StrPCopy(Opt.R.HTMLSuffix,Edit2.Text);
    Opt.R.Internetsite := Edit3.Text;
    Opt.R.Ftpuser      := Edit4.Text;
    Opt.R.Ftppassword  := Edit5.Text;
    Opt.r.LocalDir     := Edit6.text;
    Opt.R.remoteDir    := Edit7.Text;
    Opt.R.Overhead     := Edit8.Text;
    Opt.r.LocalDir:=Stringreplace(Opt.r.LocalDir,'\','/',[rfReplaceAll]);
    Opt.r.RemoteDir:=Stringreplace(Opt.r.RemoteDir,'\','/',[rfReplaceAll]);
    for a:=Angebote to Empfehlung do
      SaveArticle(a);
  end
end;
//------------------------------------------------------------------------------
//            get image
//------------------------------------------------------------------------------
function TForm1.LoadImage(s:string;a:ArticleType):boolean;
var ll:longint;ok:boolean;TG:TGIFImage;
begin
 ok:=false;
 if S<>'' then begin
   S:=Stringreplace(S,'/','\',[rfReplaceAll]);
   if FileExists(s) then begin
     ll:=getFileLength(S);
     if (ExtractFileExt(s)='.gif'then begin
       TG:=TGIFImage.Create;
       TG.LoadFromFile(s);
       Artikelbild.Picture.Bitmap:=TG.Bitmap
     end else
       Artikelbild.Picture.LoadFromFile(Trim(S));
     StatusBar1.Font.Color:=clBlue;
     StatusBar1.SimpleText:='Bildgr��e='+IntToStr(ll div 1024)+'k';
     AktBild:=S;AktBildSize:=LL;
     ok:=true
   end else Artikelbild.Picture:=nil
 end else if a<=Empfehlung then begin
   S:=opt.r.bild[a];
   if FileExists(s) then begin
     ll:=getFileLength(S);
     if  ll<50000 then begin
       Artikelbild.Picture.LoadFromFile(Trim(S));
       StatusBar1.Font.Color:=clWindowText;
       if ll<25000 then StatusBar1.Font.Color:=clWindowText
       else             StatusBar1.Font.Color:=clRed;
       StatusBar1.Font.Color:=clBlue;
       StatusBar1.SimpleText:='Bildgr��e='+IntToStr(ll div 1024)+'k';
       AktBild:=S;AktBildSize:=LL;
       ok:=true
     end else begin
       showmessage('Datei ist zu gro� ('+IntToStr(ll div 1024)+'k) f�r das Internet');
       ok:=false
     end
   end else begin
     Artikelbild.Picture:=nil;
     ok:=false
   end
 end;
 LoadImage:=ok
end;
//------------------------------------------------------------------------------
//            bild click
//------------------------------------------------------------------------------
procedure TForm1.ArtikelbildDblClick(Sender: TObject);
var OpenDialog: TOpenDialog;S:String;i:integer;ok:boolean;
var lo:boolean;
begin
 if (opt.r.ActualArticle<=Empfehlung) then begin
   lo:=false;
   if AktBild<>'' then begin
     if Application.MessageBox('Bild l�schen?','Autor Nachfrage',MB_YESNO)=IDYES then begin
        AktBild:='';
        Artikelbild.Picture:=nil;
        opt.r.Bild[opt.r.ActualArticle]:='';
        lo:=true;
     end;
   end;
   if not lo then begin
     OpenDialog              := TOpenDialog.Create(Self);
     if opt.r.Bild[opt.r.ActualArticle]<>'' then
       OpenDialog.InitialDir := ExtractFileDir(Opt.R.Bild[Opt.r.ActualArticle])
     else
       Opendialog.InitialDir:=ExtractFilePath(OptionsFilename(Title))+picsmalldir;
     OpenDialog.Options      := [ofReadOnly, ofFileMustExist];
     OpenDialog.Filter       := '';
     S:='';for i:=0 to Length(Filters)-1 do begin
       OpenDialog.Filter  := OpenDialog.Filter+S+Filters[i];
       S:='|';
     end;
     ok:=false;
     while not ok and OpenDialog.Execute do begin
       ok:=LoadImage(OpenDialog.FileName,Opt.r.ActualArticle);
     end;
     if ok then opt.r.Bild[opt.r.ActualArticle]:=trim(OpenDialog.FileName)
     else       opt.r.Bild[opt.r.ActualArticle]:='';
     OpenDialog.Destroy;
   end
 end;
end;
//------------------------------------------------------------------------------
//              image info
//------------------------------------------------------------------------------
procedure TForm1.ArtikelbildMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   StatusBar1.Font.Color:=clBlack;
   StatusBar1.SimpleText:='Bildgr��e='+IntToStr(AktBildSize div 1024)+'k';
end;
//------------------------------------------------------------------------------
//              text info
//------------------------------------------------------------------------------
procedure TForm1.ArtikeltextMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
   StatusBar1.Font.Color:=clBlack;
   StatusBar1.SimpleText:='Anzahl Textzeilen='+IntToStr(Artikeltext.Lines.count);
end;
//------------------------------------------------------------------------------
//              comobobx change
//------------------------------------------------------------------------------
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
  if (Opt.r.ActualArticle<=Empfehlung)
  and ((length(Artikeltext.lines.Text)<5) or (Artikelbild.Picture=nil)) then begin
    ShowMessage('Es wurde kein Text eingegeben...');
    ComboBox1.ItemIndex:=Ord(Opt.r.ActualArticle)
  end else begin
    SaveArticle(Opt.r.ActualArticle);
    LoadArticle(Articletype(ComboBox1.ItemIndex));
  end;
  Opt.r.ActualArticle:=ArticleType(ComboBox1.ItemIndex);
 checklicense()
end;
//------------------------------------------------------------------------------
//           file open
//------------------------------------------------------------------------------
procedure TForm1.FileOpen1Accept(Sender: TObject);
begin
  Artikeltext.Lines.LoadFromFile(FileOpen1.Dialog.FileName);
end;
//------------------------------------------------------------------------------
//           file save as
//------------------------------------------------------------------------------
procedure TForm1.FileSaveAs1Accept(Sender: TObject);
begin
  Artikeltext.Lines.SaveToFile(FileSaveAs1.Dialog.FileName);
end;
//------------------------------------------------------------------------------
//          action manager
//------------------------------------------------------------------------------
procedure TForm1.HilfeExecute(Sender: TObject);
begin
  WinHelp(0,PChar(Application.helpfile),HELP_CONTENTS,0);
end;
//------------------------------------------------------------------------------
//         action manager
//------------------------------------------------------------------------------
procedure TForm1.ActionManager1StateChange(Sender: TObject);
begin
  Artikeltext.ReadOnly := ActionManager1.State <> asNormal;
end;
//------------------------------------------------------------------------------
//         action manager
//------------------------------------------------------------------------------
procedure TForm1.StdStyleActnExecute(Sender: TObject);
begin
  ActionManager1.Style := StandardStyle;
end;
//------------------------------------------------------------------------------
//         support click
//------------------------------------------------------------------------------
procedure TForm1.SupportExecute(Sender: TObject);
var Site,Count:String;
begin
  Count:=InttoStr(SysLocale.PriLangID);
  Site:= 'http://www.cococo.de/index.jsp?content=autor&country='+Count;
  ShellExecute(Handle, 'open',PChar(Site),nil,nil, SW_SHOWNORMAL);
end;
//------------------------------------------------------------------------------
//          action manager
//------------------------------------------------------------------------------
procedure TForm1.XPStyleActnExecute(Sender: TObject);
begin
  ActionManager1.Style := XPStyle;
end;
//------------------------------------------------------------------------------
//          resize
//------------------------------------------------------------------------------
procedure TForm1.FormResize(Sender: TObject);
begin
  Opt.r.Horsplitter:=Height div 3;
  Opt.r.VerSplitter:=Width div 3;
  Artikeltext.Height:=height-Opt.r.Horsplitter;
  Artikeltext.Width:=Width-Opt.r.VerSplitter;
  Artikelbild.Height:=Opt.r.Horsplitter;
  Artikelbild.Width:=Opt.r.VerSplitter;
  checklicense()
end;
//------------------------------------------------------------------------------
//          close
//------------------------------------------------------------------------------
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if WebBrowser1.Visible then begin
    Opt.r.BWidth:=Width;
    Opt.r.BHeight:=height
  end else begin
    Opt.r.Width:=Width;
    Opt.r.Height:=height
  end;
  if not WebBrowser1.Visible then begin
    Opt.r.top:=Top;
    opt.r.Left:=Left;
  end;
  if Opt.r.ActualArticle <= Empfehlung then begin
    SaveRtfArticle(opt.r.ActualArticle);
    SaveXMLArticle(opt.r.ActualArticle)
  end;
  Opt.r.Horsplitter:=HorizontalSplitter.top;
  Opt.r.VerSplitter:=VerticalSplitter.Left;
  SaveArticle(Opt.r.ActualArticle);
  checklicense()
end;
//------------------------------------------------------------------------------
//         action manager
//------------------------------------------------------------------------------
procedure TForm1.ShadowActnExecute(Sender: TObject);
begin
  ActionMainMenuBar1.Shadows := ShadowActn.Checked;
end;
//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
end.

¤ Dauer der Verarbeitung: 0.40 Sekunden  (vorverarbeitet)  ¤





Download des
Quellennavigators
Download des
sprechenden Kalenders

Eigene Datei ansehen




Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.


Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.


Bot Zugriff