frage zu dialog.filter

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
Benutzeravatar
ghostbumbler
Foriker
Beiträge: 11
Registriert: Mo 30. Jan 2006, 19:27
Kontaktdaten:

frage zu dialog.filter

Beitrag von ghostbumbler » So 27. Mär 2011, 09:18

Hallo zusammen,
ich will mir gerade eine kleine gui für dem mplex befehl schreiben. ich habe mir also eine form gemacht auf der 3 buttons sind um die video und die 2 tonspuren auszuwählen. wenn man den entsprechenden button wählt soll der browser aufgehen und es soll entsprechend ein dialogfilter voreingestellt sein. hinter jedem button liegt die gleiche routinen und der browser startet jeweils im homeverzeichnis und alles funktioniert erst mal. nun will ich aber das wenn ich mit button 1 das video file ausgewählt habe der broser bei button zwei bzw. 3 gleich in dem verzeichnis steht. wenn ich aber den pfad entsprechend übernehme habe ich folgendes problem mit dem dialogfilter. der browser startet ohne filter und erst wenn man auf das schwarze dreieck geht und das feld aufklappt sieht man die filter die ich gesetzt habe. das gleiche problem habe ich wenn ich mit dem userverzeichnis starte und alle dateien ausgewählt habe und dann noch mal auf einen button gehe dann startet der broser auch ohne filter.
Kann mir da jemand weiterhelfen?
Danke


Hier ist der Programmcode:

' Gambas class file

PRIVATE hProc AS Process
savedir AS String
PUBLIC readdir1 AS String
PUBLIC readdir2 AS String
PUBLIC readdir3 AS String
PUBLIC DateiEinzeln AS String 'Dateiname mit Endung
PUBLIC Inputflash AS String 'Name der Datei

PUBLIC SUB _new()

END

PUBLIC SUB Form_Open()

END

PUBLIC SUB Button1_Click()
Dialog.Filter = ["*.m2v", "Video File", "All files (*.*)"]
IF readdir1 = "" THEN Dialog.Path = user.Home
IF Dialog.OpenFile() THEN RETURN
readdir1 = Dialog.Path
Inputflash = Dialog.Path
' TextBox1.Text = readdir1
'Einzeldateiname aus Einlese-Pfad extrahiert
DateiEinzeln = Mid$(Inputflash, RInStr(Inputflash, "/") + 1)
TextBox1.Text = DateiEinzeln

END

PUBLIC SUB Button2_Click()
Dialog.Filter = ["*.ac3", "Audio File", " All files( * . * )"]
IF readdir2 = "" THEN Dialog.Path = user.Home
IF Dialog.OpenFile() THEN RETURN
readdir2 = Dialog.Path
TextBox2.Text = readdir2

END

PUBLIC SUB Button3_Click()
Dialog.Filter = ["*.mp2", "Audio File", " All files( * . * )"]
IF readdir3 = "" THEN Dialog.Path = user.Home
IF Dialog.OpenFile() THEN RETURN
readdir3 = Dialog.Path
TextBox3.Text = readdir3

END
viele Grüße ghostbumbler
____________________________________________________
die daten sind frei und es lebe linux

Honsek
Foriker
Beiträge: 353
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: frage zu dialog.filter

Beitrag von Honsek » Di 29. Mär 2011, 18:41

Hallo,

zuerst würde ich die Datei-Funktionen nutzen, die GB bereitstellt ( -> http://www.gambasdoc.org/help/comp/gb/file/name?de ).
Wenn Du das erste Video ausgewählt hast, dann speicherst Du den Pfad (Rückgabewert aus dem Dialog) in einer (globalen) Variablen und nutzt diese dann bei einem weiteren Aufruf.

Mit freundlichem Gruß

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

Benutzeravatar
ghostbumbler
Foriker
Beiträge: 11
Registriert: Mo 30. Jan 2006, 19:27
Kontaktdaten:

Re: frage zu dialog.filter

Beitrag von ghostbumbler » Di 29. Mär 2011, 20:44

hallo honsek,
das habe ich gemacht und das geht auch soweit. mein problem ist allerdings der dateifilter. denn dann ist er nicht aktive sondern in dateimanager ist das feld unten rechts leer und erst wenn man es aufklappt erscheinen die angegeben filter. siehe auch noch mal meine erläuterung meines problemes weiter oben.
viele Grüße ghostbumbler
____________________________________________________
die daten sind frei und es lebe linux

Honsek
Foriker
Beiträge: 353
Registriert: Do 4. Okt 2007, 17:01
Kontaktdaten:

Re: frage zu dialog.filter

Beitrag von Honsek » Mi 30. Mär 2011, 07:40

Hallo,

hier mein Dateifilter und sein Einsatz in einem Datenbankprogramm:

Code: Alles auswählen

'------------------------------------------------------------------------------

PRIVATE FUNCTION DateiFilter(OPTIONAL Alle AS Boolean = FALSE) AS String[]
  DIM aBildfilterMatrix AS NEW String[]
 
  ' Bilder im GIF-Format können u.U. nicht gespeichert werden! Hängt von der Variante ab,
  ' wie QT kompiliert wurde!
 
  IF Alle = TRUE THEN
     aBildfilterMatrix.Add("*.png *.jpeg *.jpg *.bmp *.gif *.xpm")
     aBildfilterMatrix.Add("Bild-Typ")
  ENDIF
  aBildfilterMatrix.Add("*.png")
  aBildfilterMatrix.Add("Portable Network Graphics")
  aBildfilterMatrix.Add("*.jpeg; *.jpg")
  aBildfilterMatrix.Add("Joint Photographic Experts Group")
  aBildfilterMatrix.Add("*.bmp")
  aBildfilterMatrix.Add("Windows Bitmap")
  aBildfilterMatrix.Add("*.gif")
  aBildfilterMatrix.Add("Graphics Interchange Format")
  aBildfilterMatrix.Add("*.xpm")
  aBildfilterMatrix.Add("X PixMap")
  IF Alle = TRUE THEN
     aBildfilterMatrix.Add("*")
     aBildfilterMatrix.Add("Alle Dateien")
  ENDIF
 
  RETURN aBildfilterMatrix
 
END ' DateiFilter erzeugen

'------------------------------------------------------------------------------

PUBLIC SUB btnFotoSpeichern_Click()
  DIM foto AS NEW Picture
  DIM imgBild1 AS Image
  DIM fBildformat, iSkalierungsfaktor AS Float ' <--- Querformat oder Hochformat
  DIM picBild1 AS Picture  '  <--- Wird das genutzt?
  DIM iBildbreite, iBildhoehe AS Integer
 
  Dialog.Filter = DateiFilter(TRUE)
  Dialog.Path = User.Home
  Dialog.Title = "Wählen Sie ein Schüler-Bild aus!"
  IF Dialog.OpenFile() THEN RETURN
  TRY imgBild1 = Image.Load(Dialog.Path)
 
  fBildformat = imgBild1.Width / imgBild1.Height
 
  IF fBildformat < 1 THEN
     iSkalierungsfaktor = imgBild1.Width / 120
     iBildbreite = 120 ' <--- absoluter Wert in Pixeln
     iBildhoehe = Round(imgBild1.Height / iSkalierungsfaktor, 0) ' <--- relativer Wert, aber auch in Pixeln!
     ' Syntax: Strech(Weite, Höhe, Glättung(ja/nein))
     imgBild1 = imgBild1.Stretch(iBildbreite, iBildhoehe, TRUE)
     ' Das geänderte Bild wird ohne Dialog gespeichert und überschreibt u.U. ein vorhandenes Bild mit gleichem Namen!
     TRY imgBild1.Save(sDatenbank &/ "Kursbilder" &/ Lower(txtVorname.Text) & "-" & Lower(txtNachname.Text) & ".png")
     IF ERROR THEN Message.Error("Fehler: " & Error.Text & Chr(10) & "  Fehlerquelle: " & Error.Where)
  ELSE
     Message.Warning("Das Bild liegt NICHT im Hochformat vor!\nWählen Sie ein anderes Schülerbild aus.")
     RETURN
  ENDIF

  btnDatensatzKontrolleUndInDatenbankArraySpeichern_Click()
 
END ' FotoSpeichern


Mit freundlichen Grüßen

Honsek
---> Wenn Du eine gute Antwort erwartest, musst Du sehr gut fragen!

Antworten

Wer ist online?

Mitglieder in diesem Forum: Seecosmea und 3 Gäste