Objekt zur Auswahl von Dateien [ERLEDIGT]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Objekt zur Auswahl von Dateien [ERLEDIGT]

Beitrag von Benz »

Hi,

Gibt es bei Xbase ein Standardobjekt mit dem man eine Datei "öffnen" kann. Also eine grafische Anzeige der verfügbaren Dateien und Festplatten,
bei der man eine Datei auswählt und auf "Öffnen" klickt.
Anschließend wird dann möglicherweise der Pfad als String übergeben ?!
Weiß da jemand was ?

Wenn nicht, gibt es was fertiges von jemandem ? Wäre super :!:
Zuletzt geändert von Benz am Do, 28. Feb 2013 15:42, insgesamt 1-mal geändert.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Objekt zur Auswahl von Dateien (wie "Öffnen" bei zb Word

Beitrag von Jan »

Suchst Du vielleicht sowas wie XbpFileDialog()?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Objekt zur Auswahl von Dateien (wie "Öffnen" bei zb Word

Beitrag von Benz »

jaa genau :) da hätt ich mich zu Tode suchen können :D

Code: Alles auswählen

// This example shows a text editor that runs in an
// XbpCrt window. The window has a menu bar that
// includes a submenu for processing text files. This
// menu includes the items "New", "Open", "Save" and
// "Save As". A file dialog is used for these menu
// options. The actual text editor is provided by an
// XbpMLE object whose :cargo instance variable contains
// the file name of the current file.

   #include "Xbp.ch"
   #include "Appevent.ch"

   #pragma library("XppUi2")

   PROCEDURE Main
      LOCAL nEvent, mp1, mp2, oXbp
      LOCAL oMLE, oFileDlg

      SetColor("N/W")
      CLS

      // Create file dialog with desktop as parent
      oFileDlg   := XbpFileDialog():new()
      oFileDlg:create( AppDesktop() )

      // Create MLE
      oMLE       := XbpMLE():new():create( ,, {50,50}, {550,300} )
      oMLE:cargo := ""

      // Default menu for managing text files
      TextFileMenu( SetAppWindow():menuBar(), oFileDlg, oMLE )

      // Event loop
      nEvent := 0
      DO WHILE nEvent <> xbeP_Close
         nEvent := AppEvent( @mp1, @mp2, @oXbp )
         oXbp:HandleEvent( nEvent, mp1, mp2 )
      ENDDO
   RETURN

   // *************************************************
   // This function creates a default menu for opening
   // and saving text files
   //
   FUNCTION TextFileMenu( oMenuBar, oFileDlg, oMLE )
      LOCAL oMenu := XbpMenu():new(oMenuBar):create()

      oMenu:title := "~File"

      oMenu:addItem( { "~New", ;
         {|| oMLE:setData(""), oMLE:cargo := "", ;
             SetAppWindow():setTitle( "No name" ), ;
             oMenu:disableItem(4) } } )
      oMenu:addItem( { "~Open...", ;
         {|| ReadFile( oFileDlg, oMLE ), ;
             IIf( Empty(oMLE:cargo), NIL, oMenu:enableItem(4)) } } )

      oMenu:addItem( { ,, XBPMENUBAR_MIS_SEPARATOR,0 } )

      oMenu:addItem( { "~Save", ;
         {|| WriteFile( oMLE:cargo, oMLE ) }, ;
         0, XBPMENUBAR_MIA_DISABLED } )

      oMenu:addItem( { "Save ~as...", ;
         {|| WriteFile( oFileDlg:saveAs( oMLE:cargo ), oMLE ) } } )

      oMenuBar:addItem( {oMenu, NIL} )
   RETURN oMenu

   // *******************************************
   // The procedure activates the file dialog for
   // selecting a file. Reads selected files and
   // copies into MLE.
   //
   PROCEDURE ReadFile( oFileDlg, oMLE )
      LOCAL cFile := oFileDlg:open( oMLE:cargo )

      IF ! Empty( cFile )
         oMLE:cargo := cFile
         oMLE:setData( MemoRead( cFile ) )
         SetAppWindow():setTitle( cFile )
      ENDIF
   RETURN

   // **************************************
   // Write text buffer of the MLE to file
   //
   PROCEDURE WriteFile( cFile, oMLE )
      IF ! Empty( cFile )
         oMLE:cargo := cFile
         MemoWrit( cFile, oMLE:getData() )
         SetAppWindow():setTitle( cFile )
      ENDIF
   RETURN

Das ist das Beispiel aus der Hilfe, funktioniert auch alles super aber da wird ja nur der Inhalt angezeigt von der Datei die ausgewählt wird.
Gibts ne Möglichkeit auch den Pfad der Datei auszugeben ? In ner zweiten Variable oder so?
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Objekt zur Auswahl von Dateien (wie "Öffnen" bei zb Word

Beitrag von Jan »

Code: Alles auswählen

cFile := oFileDialog:open()
cFile ist der Dateiname inkl. vollständigem Pfad

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Re: Objekt zur Auswahl von Dateien (wie "Öffnen" bei zb Word

Beitrag von Benz »

okay.. so einfach eigentlich. Manchmal steht man aber auch auf dem Schlauch! Vielen Dank :!:
Antworten