#1  
Alt 09.03.2009
Benutzerbild von Kai
Kai Kai ist offline
Imabas-Entwickler
Admin
Obertroll
Registriert seit: 11.2003
Ort: Holzwickede
Beiträge: 2.756
Kai befindet sich auf einem aufstrebenden Ast
Standard Importieren von Bildern eines Ordners

Aktionstyp: Direkt

Code:
function PerformAction: Boolean;
var
   film: TIFilm; volume: TIVolume; import: TIImport;
   files: TStringList; folder: String; dlg: TIDialog; methode: Integer;
   vKey: String;
begin
   Result := True;

   folder := GetMyPicturesPath;
   dlg := TIDialog.Create('Verzeichnis wählen');
   try
      dlg.AddFolderControl('Verzeichnis', folder);
      
      if ( not Customise_VolumeMandatory ) then
         dlg.AddSelectArrayControl('Methode',['Direkt','Mit Volume'],methode)
      else
         methode := 1;
   
      if ( not dlg.Execute ) then
         Exit;
   finally
      dlg.Free;
   end;

   StartTransaction;
   try
      film := TIFilm.Create;
      film.Caption := 'Angelegt durch Aktion';
      film.Nummer  := FilmMaxNummer + 1;

      if ( methode = 1 ) then begin
         volume := TIVolume.Create;
         try
            vKey := VolumeByPath(folder);
            if ( vKey = '' ) then begin
               volume.Caption  := RightString(folder,50);
               volume.PathType := 0; // Absolut
               volume.Path     := folder;
               volume.Append;
            end
            else volume.Load(vKey);

            film.Volume := volume;
         finally
            volume.Free;
         end;
      end;

      film.Append;
      Commit;
   finally
      Rollback;
   end;
   
   import := TIImport.Create;
   try
      import.Film := film;
      import.CheckDublets := Customise_NoDublets;

      files := GetKnownImages(folder);
      import.AddImages(folder, files, foDirect);
      files.Free;
      
      if ( import.Images > 0 ) then import.Execute
      else Message('Keine Bilder gefunden!');
   finally
      import.Free;
      film.Free;
   end;
end;
__________________
Mit freundlichen Grüßen
Kai Brendel
http://www.pixandmore.com
Mit Zitat antworten
  #2  
Alt 02.01.2010
Planlos
Gast
Beiträge: n/a
Standard AW: Importieren von Bildern eines Ordners

Zitat:
Zitat von Kai Beitrag anzeigen

Code:
   finally
      Rollback;
   end;
Wirklich? Das wäre doch ein Jammer!

Al
Mit Zitat antworten
  #3  
Alt 04.01.2010
Benutzerbild von Kai
Kai Kai ist offline
Imabas-Entwickler
Admin
Obertroll
Registriert seit: 11.2003
Ort: Holzwickede
Beiträge: 2.756
Kai befindet sich auf einem aufstrebenden Ast
Standard AW: Importieren von Bildern eines Ordners

Natürlich, du muss mal den ganze try-Block lesen...
Code:
Starte Transaktion
try
   Mache was in der Transaktion
   Committe diese wenn bis hier keine Exception
finally
   Fahre ein Rollback
end
Das heisst hier ja nur es kommt auf jedenfall ein Rollback, wenn aber kein Fehler aufgetreten ist wird vor dem finally-Block ein Commit ausgeführt und das Rollback verpufft einfach nur... Finally ist hier gewählt um eine evtl. auftretende Exception nicht abzufangen und das Script abzubrechen, aber es soll sicher gestellt sein das ein Rollback kommt...
__________________
Mit freundlichen Grüßen
Kai Brendel
http://www.pixandmore.com
Mit Zitat antworten
  #4  
Alt 05.01.2010
Planlos
Gast
Beiträge: n/a
Standard AW: Importieren von Bildern eines Ordners

Zitat:
Zitat von Kai Beitrag anzeigen
Finally ist hier gewählt um eine evtl. auftretende Exception nicht abzufangen und das Script abzubrechen, aber es soll sicher gestellt sein das ein Rollback kommt...
Ok, so wirds verständlich.
Aber warum kein Except-Block? Wenn eine Exception auftritt, wird doch erst Except, u. dann Finally durchlaufen, dann der Rest, es wird also nichts abgebrochen?

Al
Mit Zitat antworten
  #5  
Alt 05.01.2010
Benutzerbild von Kai
Kai Kai ist offline
Imabas-Entwickler
Admin
Obertroll
Registriert seit: 11.2003
Ort: Holzwickede
Beiträge: 2.756
Kai befindet sich auf einem aufstrebenden Ast
Standard AW: Importieren von Bildern eines Ordners

Zitat:
Zitat von Planlos Beitrag anzeigen
Ok, so wirds verständlich.
Aber warum kein Except-Block? Wenn eine Exception auftritt, wird doch erst Except, u. dann Finally durchlaufen, dann der Rest, es wird also nichts abgebrochen?
Weil Delphi nicht beides kann, also entweder except oder finally. Ein except würde zwar auch gehen, aber dann müsste man diese mit einem raise nochmal auslösen um an den Meldungstext der Exception zu kommen und/oder manuell das Script beenden. Daher auch der finally Block, es soll ja knallen...
__________________
Mit freundlichen Grüßen
Kai Brendel
http://www.pixandmore.com
Mit Zitat antworten
  #6  
Alt 05.01.2010
Planlos
Gast
Beiträge: n/a
Standard AW: Importieren von Bildern eines Ordners

Kommt man eigentlich in dem Pascalscript, wie es in Aktionen verwendet wird, an Informationen zur ausgelösten Exception? Was ich bisher in dieser Hinsicht über Delphi erguhuhugelt habe, scheint da nicht zuzutreffen.

Gibt es allgemein einen Link zu Doku über dieses Pascalscript?

Al
Mit Zitat antworten
  #7  
Alt 06.01.2010
Benutzerbild von Kai
Kai Kai ist offline
Imabas-Entwickler
Admin
Obertroll
Registriert seit: 11.2003
Ort: Holzwickede
Beiträge: 2.756
Kai befindet sich auf einem aufstrebenden Ast
Standard AW: Importieren von Bildern eines Ordners

Nein, leider nicht. Der Compiler unterstützt kein:
pascal Code:
  1. on E: Exception do begin
  2.     ShowMessage(E.Message);
  3. end;

Zur Doku: Nicht wirklich, zum Einsatz kommt hier http://www.remobjects.com/ps.aspx
__________________
Mit freundlichen Grüßen
Kai Brendel
http://www.pixandmore.com
Mit Zitat antworten
Antwort
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder eines Themas bernd! Imabas Allgemein 0 18.01.2009 11:59
Probleme eines Neulings klausilein Imabas Allgemein 4 21.04.2006 13:12
Bilder eines anderen Fotografen importieren stefan Imabas Allgemein 3 30.01.2006 21:02


Powered by vBulletin® Version 3.7.1 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.