AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm schliesst einfach so

Ein Thema von hedie · begonnen am 20. Apr 2007 · letzter Beitrag vom 20. Apr 2007
Antwort Antwort
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#1

Programm schliesst einfach so

  Alt 20. Apr 2007, 16:45
Hallo

Ich programmiere schon seit längerem einen eigenen Internet explorer.
inzwischen habe ich mal eine kurze pause eingelegt so etwa 3 wochen

als ich dann jetzt wieder beginnen wollte, hab ich bemerkt dass das programm nach dem start
sich sofort selbst schliesst.

Ich binn mir sicher das dieser fehler vor der "pause" noch nicht aufgetaucht ist.

Das einzige was sich geändert hat, ist dass ich anstelle von Delphi 2006 nun Delphi 2007 Benutze

Aber ich denke mal das es deshalb funktionieren sollte


Wenn ihr den Quellcode benötigt, sagt bescheid

Hoffe ihr könnt mir helfen, da steckt die arbeit von 5 Wochen drinn

Grüsschen
Claudio
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
J.P.

Registriert seit: 2. Sep 2006
Ort: Bonn
131 Beiträge
 
Delphi 6 Professional
 
#2

Re: Programm schliesst einfach so

  Alt 20. Apr 2007, 16:46
ähm, ja Quellcode wär nicht schlecht.
Vor allem die OnCreate oder OnShow procedure.
J.P.
...mfG


Phil
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#3

Re: Programm schliesst einfach so

  Alt 20. Apr 2007, 17:00
Was noch zu sagen sein sollte ist...

Das Programm wird Angezeigt für etwa 2 - 3 Sekunden (variiert merkwürdigerweise)
und erst danach schliesst es sich

so der quellcode...

Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, jpeg, OleCtrls, SHDocVw, StdCtrls, XPMan, MSHTML, ComCtrls,
  Menus, inifiles, ShellAPI, ActiveX;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    Panel2: TPanel;
    XPManifest1: TXPManifest;
    StatusBar1: TStatusBar;
    Image2: TImage;
    Image3: TImage;
    Timer1: TTimer;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Bearbeiten1: TMenuItem;
    Asnicht1: TMenuItem;
    Favoriten1: TMenuItem;
    Extras1: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    Einstellungen1: TMenuItem;
    N3: TMenuItem;
    Einklappen1: TMenuItem;
    Download1: TMenuItem;
    About1: TMenuItem;
    Image4: TImage;
    Image5: TImage;
    N4: TMenuItem;
    Beenden1: TMenuItem;
    Updates1: TMenuItem;
    Hinzufgen1: TMenuItem;
    ffnen1: TMenuItem;
    Entfernen1: TMenuItem;
    N5: TMenuItem;
    HideTaskleiste1: TMenuItem;
    procedure FormDestroy(Sender: TObject);
    procedure Edit1DblClick(Sender: TObject);
    procedure Entfernen1Click(Sender: TObject);
    procedure ffnen1Click(Sender: TObject);
    procedure Hinzufgen1Click(Sender: TObject);
    procedure Updates1Click(Sender: TObject);
    procedure Beenden1Click(Sender: TObject);
    procedure Image5Click(Sender: TObject);
    procedure Image4Click(Sender: TObject);
    procedure WebBrowser1NavigateError(ASender: TObject; const pDisp: IDispatch;
      var URL, Frame, StatusCode: OleVariant; var Cancel: WordBool);
    procedure About1Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Einklappen1Click(Sender: TObject);
    procedure Einstellungen1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure WebBrowser1DocumentComplete(ASender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
      var Cancel: WordBool);
    procedure Panel4MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
    procedure Panel2Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure HideTaskleiste1Click(Sender: TObject);
  private
     hi:bool;
     hi2:bool;
     counter:integer;
     ExtParam:bool;
     FOleInPlaceActiveObject: IOleInPlaceActiveObject;
     procedure MsgHandler(var Msg: TMsg; var Handled: Boolean);
  public
    ini:TIniFile;
    version:string;
    PStatus:String;
    Serial:string;
    VPL:String;
  end;

var
  Form1: TForm1;

implementation

uses About, Favoriten;

{$R *.dfm}

procedure TForm1.MsgHandler(var Msg: TMsg; var Handled: Boolean);
const
  StdKeys = [VK_BACK, VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT];
var IOIPAO: IOleInPlaceActiveObject;
  Dispatch: IDispatch;
begin
  if WebBrowser1 = nil then
  begin
    Handled := False;
    Exit;
  end;
  Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = True);
  if (Handled) and (not WebBrowser1.Busy) then
  begin
    if FOleInPlaceActiveObject = nil then
    begin
      Dispatch := WebBrowser1.Application;
      if Dispatch <> nil then
      begin
        Dispatch.QueryInterface(IOleInPlaceActiveObject, IOIPAO);
        if IOIPAO <> nil then FOleInPlaceActiveObject := IOIPAO;
      end;
    end;
    if FOleInPlaceActiveObject <> nil then
      if ((Msg.message = WM_KEYDOWN) or (Msg.message = WM_KEYUP)) and
        (Msg.wParam in StdKeys) then
        //nothing - do not pass on Backspace, Left, Right, Up, Down arrows
      else FOleInPlaceActiveObject.TranslateAccelerator(Msg);
  end;
end;

procedure startup();
begin
if Form1.extparam = false then begin
Form1.ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'siexdata.six');
Form1.ini.ReadString('Main','sid','freeshare.ath.cx');
Form1.ini.Free;
end;
end;

procedure navigate(URL:String);
begin
Form1.WebBrowser1.Navigate(URL);
end;

procedure TForm1.About1Click(Sender: TObject);
begin
Form5.Showmodal;
end;

procedure TForm1.Beenden1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Edit1DblClick(Sender: TObject);
begin
Edit1.SelectAll;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then begin
  key := #0;
    navigate(Edit1.Text);
  end;
end;

procedure TForm1.Einklappen1Click(Sender: TObject);
begin
Panel1.Top := 0;
Panel1.Left := 0;
Panel1.Anchors := [akLeft,akTop,akRight];
Panel1.Width := Form1.Width -8;
Image1.Width := Form1.Width -8;
hi := false;
hi2 := false;
Webbrowser1.SetFocus;
end;

procedure TForm1.Einstellungen1Click(Sender: TObject);
var
sid:String;
begin
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+'siexdata.six');
sid := ini.ReadString('Main',sid,'freeshare.ath.cx');
ini.Free;
ShellExecute(Handle,'open', 'siexse.exe',pchar(sid), nil, SW_SHOWdefault) ;
end;

procedure TForm1.Entfernen1Click(Sender: TObject);
var
pos:integer;
begin
pos := Form4.ListBox1.Items.IndexOf(Webbrowser1.LocationURL);
if pos > -1 then Form4.ListBox1.Items.Delete(pos);
end;

procedure TForm1.ffnen1Click(Sender: TObject);
begin
Form4.Show;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := MsgHandler;
if paramstr(1) = 'then begin
Webbrowser1.Navigate('siexnet.com');
extparam := true;
end
else
Webbrowser1.Navigate(paramstr(1));

///////////////Minimiert Starten///////////
{
Panel1.Top := -58;
Webbrowser1.Height := Webbrowser1.Height + 60;
Webbrowser1.Top := Webbrowser1.Top -59;
}

////////////////////////////////////////////
panel1.DoubleBuffered := true;
Webbrowser1.DoubleBuffered := true;
hi := true; ///////////////Bei Minimiert Start müssen beide False sein!!!!!
hi2 := false;
////////////////////////////////VersionsInformations/////////////////
PStatus := ('Beta');
Version := ('0.0.1.9');
VPL := '0019';
/////////////////////////////////////////////////////////////////////
startup();
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FOleInPlaceActiveObject := nil;
end;

procedure TForm1.HideTaskleiste1Click(Sender: TObject);
begin
  ShowWindow( Application.Handle, SW_HIDE );
  SetWindowLong( Application.Handle, GWL_EXSTYLE,
                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  ShowWindow( Application.Handle, SW_SHOW );

end;

procedure TForm1.Hinzufgen1Click(Sender: TObject);
begin
Favoriten.Form4.Add := True;
Form4.URL := Webbrowser1.LocationURL;
Form4.Show;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    ReleaseCapture;
  if Sender is TImage then
    TWinControl(TImage(Sender).Parent).Perform(WM_SYSCOMMAND, $F012, 0)
  else
    TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
        Panel1.Anchors := [akLeft,akTop];
    Panel1.Width := 585;
    Webbrowser1.Top := 0;
    if hi2 = false then begin
Webbrowser1.Height := Webbrowser1.Height + 59;
hi2 := true;
Webbrowser1.SetFocus;
    end;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if hi = false then begin
webbrowser1.Top := 60;
webbrowser1.Height := Webbrowser1.Height - 59;
Panel1.Top := 0;
hi := true;
end;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
try
Webbrowser1.GoBack;
except

end;
end;

procedure TForm1.Image3Click(Sender: TObject);
begin
try
Webbrowser1.GoForward;
except

end;
end;

procedure TForm1.Image4Click(Sender: TObject);
begin
Webbrowser1.Refresh;
end;

procedure TForm1.Image5Click(Sender: TObject);
begin
Webbrowser1.Stop;
end;

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // Mausereignisse abfangen
  ReleaseCapture;
  // mit TWinCotrol verschieben, $F012 verschiebt den Button
  TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
    Panel1.Anchors := [akLeft,akTop];
    Panel1.Width := 585;
    Webbrowser1.Top := 0;
    if hi2 = false then begin
Webbrowser1.Height := Webbrowser1.Height + 60;
hi2 := true;
Webbrowser1.SetFocus;
    end;
    end;

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
if hi = false then begin
webbrowser1.Top := 60;
webbrowser1.Height := Webbrowser1.Height - 59;
Panel1.Top := 0;
hi := true;
end;
end;

procedure TForm1.Panel2Click(Sender: TObject);
begin
navigate(Edit1.Text);
end;

procedure TForm1.Panel4MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  // Mausereignisse abfangen
  ReleaseCapture;
  // mit TWinCotrol verschieben, $F012 verschiebt den Button
  TWinControl(Sender).Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
counter := counter +1;
end;

procedure TForm1.Updates1Click(Sender: TObject);
begin
ShellExecute(Handle,'open', 'siexup.exe',pchar(version+' '+PStatus+' - '+VPL),nil, SW_SHOWdefault) ;
end;

procedure TForm1.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
Application.Title := 'SIEX - ' + Form1.WebBrowser1.LocationName;
Form1.Caption := 'SIEX - ' + Form1.WebBrowser1.LocationName;
Edit1.Text := Webbrowser1.LocationURL;
end;

procedure TForm1.WebBrowser1NavigateError(ASender: TObject;
  const pDisp: IDispatch; var URL, Frame, StatusCode: OleVariant;
  var Cancel: WordBool);
begin
Navigate('file:///'+ExtractFilePath(ParamStr(0))+'data/404.html');
end;

procedure TForm1.WebBrowser1NewWindow2(ASender: TObject; var ppDisp: IDispatch;
  var Cancel: WordBool);
  var
    NewWindow: TForm1;
begin
//
{
    if cancel=false then
    begin
      NewWindow:=TForm1.Create(self);
      URL:=((TWebbrowser(ASender).document as IHTMLDocument2).activeElement as IHTMLElement).getAttribute('href', 0);
      NewWindow.Show;
      NewWindow.webbrowser1.Navigate(url);
    end;
}

//NewWindow := ShellExecute(Handle,'open', 'SIEX.exe',Webbrowser1, nil, SW_SHOWdefault);
NewWindow := Form1.Create(Self);
NewWindow.Show;
ppDisp := NewWindow.webbrowser1.DefaultDispatch;
ppDisp:=WebBrowser1.Application;
end;

initialization
  OleInitialize(nil);

finalization
  OleUninitialize

end.
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Programm schliesst einfach so

  Alt 20. Apr 2007, 17:04
Steppe das programm mal durch (F7 glaub ich)
Wann beednet er es?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
hedie

Registriert seit: 12. Dez 2005
Ort: Schweiz
1.024 Beiträge
 
Delphi XE6 Starter
 
#5

Re: Programm schliesst einfach so

  Alt 20. Apr 2007, 17:52
Ok ich hab das problem erkannt

Es liegt an der Homepage die als startseite angezeigt werden soll

das erklärt auch die unterschiedliche schliess zeit (je nach lade geschwindigkeit)

Die homepage lautet

www.siexnet.com


trozdem danke
Claudio
Tu was du nicht lassen kannst
- http://endasmedia.ch
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:53 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