Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Beim Beenden der App erscheint: Project1 Angehalten (https://www.delphipraxis.net/180643-beim-beenden-der-app-erscheint-project1-angehalten.html)

gee21 4. Jun 2014 21:16

Beim Beenden der App erscheint: Project1 Angehalten
 
Hallo

Habe meine erste Android App geschrieben. Eigentlich funktioniert auch alles tiptop. Aber wenn ich die App beende (Also mit dem "Zurück Pfeil") kommt immer die Meldung: "Project1 angehalten".

Weiss jemand was ich machen muss, damit diese Meldung beim beenden der App nicht erscheint?

juergen 4. Jun 2014 21:28

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Hallo,

die Frage wird dir so keiner beantworten können. Da hilft nur :glaskugel:

Passiert das in Delphi auch und wo landet dann der Debugger?
Steht evtl.etwas in dem Close-Event was dann knallt?
Werden alle Objekte/ Listen usw. richtig frei gegeben?
Verwendest du eine Datenbank?

Du siehst, ohne genauere Infos kann man eine solch pauschale Frage nicht beantworten.

gee21 4. Jun 2014 21:45

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Hallo Juergen

Danke für die Antwort.

Also im onClose habe ich nichts drinn.

Im Delphi Android Emualtor funktioniert meine App leider nicht. Daher starte ich sie immer direkt auf meinem Handy (Galaxy S3).


Da es eine recht simple App ist, hier mein Code:

Delphi-Quellcode:
unit TabbedTemplate;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Graphics, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.TabControl,
  FMX.StdCtrls, FMX.Gestures, FMX.Edit, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP,
  FMX.Layouts, FMX.ListBox, FMX.Memo, FMX.Objects;

type
  TTabbedForm = class(TForm)
    HeaderToolBar: TToolBar;
    ToolBarLabel: TLabel;
    TabControl1: TTabControl;
    TabItem1: TTabItem;
    TabItem2: TTabItem;
    GestureManager1: TGestureManager;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    CheckBox2: TCheckBox;
    Edit3: TEdit;
    Label3: TLabel;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox1: TCheckBox;
    SpeedButton2: TSpeedButton;
    ListBox1: TListBox;
    IdFTP1: TIdFTP;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    ProgressBar1: TProgressBar;
    SpeedButton1: TSpeedButton;
    Memo1: TMemo;
    Timer1: TTimer;
    Image1: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormGesture(Sender: TObject; const EventInfo: TGestureEventInfo;
      var Handled: Boolean);
    procedure SpeedButton2Click(Sender: TObject);
    procedure CheckBox3Change(Sender: TObject);
    procedure CheckBox4Change(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  TabbedForm: TTabbedForm;

implementation

{$R *.fmx}

procedure TTabbedForm.CheckBox3Change(Sender: TObject);
begin
if checkbox3.IsChecked=true then checkbox4.IsChecked:=false;

end;

procedure TTabbedForm.CheckBox4Change(Sender: TObject);
begin
if checkbox4.IsChecked=true then checkbox3.IsChecked:=false;
end;

procedure TTabbedForm.FormCreate(Sender: TObject);
begin
  { This defines the default active tab at runtime }
  TabControl1.ActiveTab := TabItem1;
end;

procedure TTabbedForm.FormGesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin
{$IFDEF ANDROID}
  case EventInfo.GestureID of
    sgiLeft:
    begin
      if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-1] then
        TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+1];
      Handled := True;
    end;

    sgiRight:
    begin
      if TabControl1.ActiveTab <> TabControl1.Tabs[0] then
        TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex-1];
      Handled := True;
    end;
  end;
{$ENDIF}
end;



procedure ListFileDir(Path: string; FileList: TStrings);
var
   SR: TSearchRec;
begin
   if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
   begin
     repeat
       if (SR.Attr <> faDirectory) then
       begin
         FileList.Add(SR.Name);
       end;
     until FindNext(SR) <> 0;
     FindClose(SR);
   end;
end;

procedure TTabbedForm.SpeedButton1Click(Sender: TObject);
begin
memo1.Lines.Clear;
memo1.Lines.Add(edit1.Text);
memo1.Lines.Add(edit2.Text);

if checkbox2.IsChecked=true then memo1.Lines.Add('SSLon') else memo1.Lines.Add('SSLoff');

memo1.Lines.Add(edit3.Text);

if checkbox3.IsChecked=true then memo1.Lines.Add('copy') else memo1.Lines.Add('move');


if checkbox1.IsChecked=true then memo1.Lines.Add('erstellen') else memo1.Lines.Add('direct');

memo1.Lines.SaveToFile(getHomePath + '/options.gee');

end;

procedure TTabbedForm.SpeedButton2Click(Sender: TObject);
var
i: integer;
begin
   ListFileDir('/sdcard/DCIM/camera/', ListBox1.Items);

   progressbar1.Max:=listbox1.Items.Count;


idftp1.Host:=edit1.Text;
idftp1.Port:=strtoint(edit2.Text);

if checkbox2.IsChecked=true then begin
idftp1.UseTLS:=utUseExplicitTLS;
idftp1.IOHandler:= IdSSLIOHandlerSocketOpenSSL1;
end else begin
idftp1.UseTLS:=utNoTLSSupport;
idftp1.iohandler:= nil;
end;

 idftp1.Connect;

 idftp1.ChangeDir(edit3.Text);

 if checkbox1.IsChecked=true then begin
   idftp1.MakeDir(datetostr(now));
   idftp1.ChangeDir(datetostr(now));
 end;

 application.ProcessMessages;
 for I := 0 to listbox1.Items.count-1 do begin
   idftp1.Put('/sdcard/DCIM/camera/'+listbox1.Items[i], listbox1.Items[i]);
   progressbar1.Value:=i;
    application.ProcessMessages;
 end;

 if checkbox4.IsChecked=true then begin
  for I := 0 to listbox1.Items.Count-1 do begin
    deletefile('/sdcard/DCIM/camera/'+listbox1.Items[i]);

 end;
 end;

end;

procedure TTabbedForm.Timer1Timer(Sender: TObject);
begin
timer1.Enabled:=false;
if fileexists(getHomePath + '/options.gee' ) then begin
memo1.Lines.LoadFromFile(getHomePath + '/options.gee');
 edit1.Text:=memo1.Lines[0];
 edit2.Text:=memo1.Lines[1];
 if memo1.Lines[2]='SSLon' then checkbox2.IsChecked:=true;
 edit3.Text:=memo1.Lines[3];
if memo1.Lines[4]='copy' then checkbox3.ischecked:=true else checkbox4.IsChecked:=true;

if memo1.Lines[5]='erstellen' then checkbox1.IsChecked:=true;


end else begin showmessage('Bitte alle Einstellungen setzen und speichern.');

end;
end;


end.

greenmile 5. Jun 2014 08:08

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
FYI: Zum Auflisten der Dateien gibt es eine Delphi Funktion:

var files: TStringDynArray;
files := TDirectory.GetFiles(Folder);

Kannst die Funktion also ändern:

procedure ListFileDir(Path: string; FileList: TStrings);
var
Count: Integer;
files: TStringDynArray;
begin
FileList := TStringlist.Create;
files := TDirectory.GetFiles(Path);
For Count := 0 to Length(Files)-1 do FileList.Add(Files[Count]);
end;

himitsu 5. Jun 2014 09:16

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Zitat:

Delphi-Quellcode:
FileList := TStringlist.Create;

Sollte aber besser wieder da raus.

Oder du mußt den Parameder in einen VAR OUT-Parameter ändern.

greenmile 5. Jun 2014 09:26

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Stimmt :) Aber eigentlich kann er sich auch die gesamte Funktion sparen und .GetFiles direkt implementieren.

himitsu 5. Jun 2014 09:39

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Am Schönsten als Class Helper das originale GetFiles überladen.

gee21 13. Jun 2014 10:24

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Also ich habe heute endlich herausgefunden was das App beim beenden "Abstürtzen" lässt (Project1 wurde angehalten)

Es ist die IdFTP Komponente!!

Habe ein leeres Formular genommen. = Kein Absturz

Sobal ich die IdFTP drauf setze, stürtzt das App beim beenden ab.
Obwohl ich die Komponente nicht einmal benutze... (Kein Connect etc...)


Was kann man da machen? :-)

MEissing 13. Jun 2014 10:52

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Mmmh... Leere Anwendung mit TidFTP1 Komponente macht hier keine Probleme (Simulator, iPod Touch getestet)

Beispielprojekt? FormCreate?

gee21 19. Jun 2014 16:33

AW: Beim Beenden der App erscheint: Project1 Angehalten
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hat jemand von euch zufälligerweise ein Samsung Handy? Wo er das mal testen könnte? Diese APK ist ein leeres Formular mit einer "leeren" idFTP Komponente drauf. Jedes mal wenn ich die Anwendung mit dem Back Pfeil "schliesse" kommt der Absturtz...

Liegts evt an meinem Handy?

Muss den Fehler unbedingt finden :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr.
Seite 1 von 2  1 2      

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