AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Kontextmenü, Parameterübergabe, Dateiupload
Thema durchsuchen
Ansicht
Themen-Optionen

Kontextmenü, Parameterübergabe, Dateiupload

Ein Thema von jacko1988 · begonnen am 28. Nov 2012 · letzter Beitrag vom 30. Nov 2012
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    
jacko1988

Registriert seit: 27. Nov 2012
Ort: Duisburg
18 Beiträge
 
Delphi XE3 Professional
 
#1

Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 10:26
Schönen Guten Tag zusammen,

da mich meine Delphi Erfahrung an einer Stelle nicht weiterbringt, habe ich mich mal registriert.

Zur Problem Erklärung:

Ich habe ein recht fortgeschrittenes Programm (von Aufwand und Zeit) welches in der Lage ist, via OpenDialog eine PDF zu nehmen und via Http wo hochzuladen.

Code:
procedure TForm1.PDFoeffnen();
var pdffileupl, pdffiletmp: String;
begin
 pdffiletmp:='';
 if PDFUploaded then pdffileupl:=pdffile else pdffileupl:='';

 Ini:=TIniFile.Create(rootpath+'cospace.ini');
  try
    begin
      OpenDialog1.InitialDir:= Ini.Readstring('Optionen', 'PDFStandartOpenPath','');
      OpenDialog1.execute;
    end;
  finally
    ini.free;
  end;
  pdfpathfile:=OpenDialog1.FileName;
  pdffiletmp:=Extractfilename(pdfpathfile);

  if pdffiletmp<>'' then
  begin
      pdffile:=pdffiletmp;
      cosupload();
      GetInfo();
      PDFFileProc(pdfpathfile, Extractfilepath(Application.exeName)+'archive\'+pdffile,'move');
      btnPDFoeffnen.Enabled:=False;
  end
  else
  begin
    btnPDFoeffnen.Enabled:=True;
  end;
  Opendialog1.FileName:='';

end;
Das funktioniert auch einwandfrei. Das Problem das ich habe bezieht sich auf eine Erweiterung des ganzen. Ich habe mein Programm in die Registry eingetragen und .pdf Dateien Damit verknüpft. Wenn man jetzt einen Rechtsklick macht auf eine PDF öffnet sich das Kontextmenü mit einem Eintrag meines Programms. Führt man dies aus, startet mein Programm und ich bekomme eine Showmessage mit dem Pfad und Namen der PDF. Funktioniert auch alles bis dahin. Jetzt soll aber eben dieser Pfad genommen werden undeben diese Datei und dann, man kanns eraten, soll die PDF hochgeladen werden.
Schaut so aus:

Code:

procedure TForm1.PDFoeffnenKontext(StrParam1: String);
      var SR : TSearchRec;
          Result: integer;
          pdffileupl, pdffiletmp: String;
begin
 showmessage(StrParam1);
 if FindFirst(StrParam1, faAnyFile, SR)=0 then begin
    Result:=SR.Size;
    FindClose(SR);
    showmessage(inttostr(Result));
  end;


 pdfpathfile:=StrParam1;
 pdffiletmp:=Extractfilename(pdfpathfile);
 if pdffiletmp<>'' then
  begin
      pdffile:=pdffiletmp;
      cosupload();
      PDFFileProc(pdfpathfile, Extractfilepath(Application.exeName)+'archive\'+pdffile,'move');
      btnPDFoeffnen.Enabled:=False;
  end
  else
  begin
    btnPDFoeffnen.Enabled:=True;
  end;

end;
Beide bisher gezeigten Codes laufen auf den Upload hinaus, welcher sich unter cosupload verbirgt.
Und da ist der Wurm drin.

Code:

procedure TForm1.cosupload();
begin
  try
 Showmessage('Test A');
 pbStatus.visible:=true;
 Showmessage('Test A1');
 s3:='';
 Showmessage('Test A2');
 Form1.lbStatuschng.caption:='PDF wird hochgeladen';
 Showmessage('Test A3');
 lbstatuschng.Font.Color:=clGreen;
 Showmessage('Test A4');
 lbStatusLED.Font.Color:=clGreen;
 Showmessage('Test A5');
 lbStatusLED.Visible:=True;
 Showmessage('Test A6');
 lbPDFName.Caption:=pdffile;
showmessage('Test A') wird mir noch angezeigt, danach gibts folgenden Fehler:


Exception Error
EAccessViolation : Zugriffsverletzung bei Adresse 00404394 in Modul 'Cospace.exe'. Lesen von Adresse FFFFFFFC


Kann sich das jemand erklären?

Bitte um Hilfe.

Mit freundlichem Gruß
jacko1988


PS.: Gibt es einen Spoiler Code im Forum?
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 10:32
Funktioniert es, wenn Du testhalber vor dem Aufruf von cosupload() ein Application.ProcessMessages einfügst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#3

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 10:37
Deine TForm1-Instanz wurde auch "richtig" erstellt?
Also vor Aufruf von PDFoeffnenKontext.

PS: Du weißt aber, daß OpenDialog1.Execute einen Rckgabewert hat, welcher dir sagt, ob darin auf OK geklickt wurde?
Das solltest du besser mal verwenden und stattdessen dieses ganze wirre Zeugs, mit den Strings, abschaffen, denn da sieht doch keiner durch.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jacko1988

Registriert seit: 27. Nov 2012
Ort: Duisburg
18 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 10:54
Vielen dank für diese raschen antworten.

@DeddiH

Nein, es gibt wieder den selben Fehler.

@himitsu

Das Programm befindet sich zum Testzeitpunkt im Compilierten und gestarteten Modus.
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#5

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 10:54
Ist denn das Fenster zu dem Zeitpunkt schon sichtbar?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#6

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 11:02
Das hatte ich nicht gefragt und ich war schon davon ausgegangen, daß es kompiliert war und das Programm lief ... sonst hätte diese Funktion auch nicht aufgerufen werden können.

Ist denn das Fenster zu dem Zeitpunkt schon sichtbar?
Jupp, sozusagen sowas.

Also,
ist die Fenster-Instanz erstellt und wenn ja wie?
Wann und wie/wo wird diese Methode aufgerufen?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#7

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 11:11
Um das einmal zu präzisieren: wir hegen beide den Verdacht, dass die pbStatus-Instanz zum Aufruf-Zeitpunkt noch nicht existiert bzw. vollständig initialisiert ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jacko1988

Registriert seit: 27. Nov 2012
Ort: Duisburg
18 Beiträge
 
Delphi XE3 Professional
 
#8

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 11:15
Das Programm wird gestartet, Form1 ist sichtbar.
Form1 wird durch OnFormCreate erstellt.


Doch die ist vorhanden.
Es ist möglich über PDFoeffnen() eine PDF hochzuladen, nicht jedoch über PDFoeffnenKontext()
Daniel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 11:41
Und der Fehler tritt nachweislich in der pbStatus-Zeile auf (im Debugger durchgesteppt)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jacko1988

Registriert seit: 27. Nov 2012
Ort: Duisburg
18 Beiträge
 
Delphi XE3 Professional
 
#10

AW: Kontextmenü, Parameterübergabe, Dateiupload

  Alt 28. Nov 2012, 11:50
Ja.
Nehme ich pbStatus.visible:=true; aus dem Code raus,
dann hängst bei Form1.lbStatuschng.caption:='PDF wird hochgeladen';.

Nehme ich alles bis zum eigentlichen Upload raus, gibt es keine Fehlermeldung, aber auch keinen Upload.
Daniel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 5  1 23     Letzte »    


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 07:27 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