AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringList mit Checklist verlinken

Ein Thema von jonsen2.0.0.9 · begonnen am 9. Dez 2009 · letzter Beitrag vom 9. Dez 2009
Antwort Antwort
jonsen2.0.0.9

Registriert seit: 5. Dez 2009
67 Beiträge
 
Delphi 7 Personal
 
#1

StringList mit Checklist verlinken

  Alt 9. Dez 2009, 18:19
Hallo,

hab folgendes Problem.

Ich schreibe gerade ein Programm, bei dem man einen Pfad wählt. In diesem Pfad wird dan Rekursiv nach .mp3 dateien gesucht.

Die gefundenen Dateien werden ohne Pfad in einer Checklistbox angezeigt, aber mit Pfad in einer Stringlist (sl2) gespeichert.

Nun möchte ich diese miteinander Kombinieren. Das heist => wenn ich in der checklistbox ein Eintrag auf checked=true setze und dann auf den Button Play drücke soll dieser geöffnet werden. Nur ich weiss nicht wie man das Kombiniert.

Habs bis jetzt so:

Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, CheckLst, MPlayer, ShellAPI, FileCtrl;

type
  TForm3 = class(TForm)
    MediaPlayer1: TMediaPlayer;
    Button1: TButton;
    CheckListBox1: TCheckListBox;
    MainMenu1: TMainMenu;
    MainProgramm1: TMenuItem;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
    sDir: String;
    sl2: TStringList; // sl2 global verfügbar machen
  public
    { Public-Deklarationen }
  end;

var
  Form3: TForm3;
  idxOfCheckListBox:integer;

implementation

{$R *.dfm}


Procedure FindFiles (aPath, aFindMask: String; aWithSub: Boolean; aResult: tStrings; removePath:Boolean);
Var
  FindRec: tSearchRec;
Begin

  If (aPath = '') or (aFindMask = '') or Not Assigned (aResult) Then
    Exit;

  If aPath[Length (aPath)] <> '\Then
    aPath := aPath + '\';


  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
    begin
     if removePath then
      aResult.Add(ExtractFileName(aPath + FindRec.Name))
     else
      aResult.Add(FindRec.Name);
    end;
    Until FindNext (FindRec) <> 0;

  FindClose (FindRec);


  If Not aWithSub Then
    Exit;


  If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then

        If Boolean (FindRec.Attr and faDirectory) Then

          FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult, false);
    Until FindNext (FindRec) <> 0;

   FindClose (FindRec);
End;

procedure TForm3.Button1Click(Sender: TObject);
begin
 if SelectDirectory('Verzeichnis wählen', '*:\', sDir) then
  begin
   if DirectoryExists(sDir) then
    begin

     FindFiles(sDir, '*.mp3', True, CheckListBox1.Items, true);
     FindFiles(sDir, '*.mp3', True, sl2, false);


    end;
  end;
end;

procedure TForm3.FormCreate(Sender: TObject);
begin

 sl2 := TStringList.Create;

end;

procedure TForm3.FormDestroy(Sender: TObject);
begin

 sl2.Free;
end;

procedure TForm3.Button2Click(Sender: TObject);
Var i:integer;
begin
for i:=0 to checklistbox1.Items.Count do
 begin
 idxOfCheckListBox := CheckListBox1.ItemIndex;
 MediaPlayer1.FileName:=sl2.Strings[idxOfCheckListBox];
 MediaPlayer1.Open;
 MediaPlayer1.Play;
 end;
end;

end.
Habs schon versucht mit Indexof funktioniert aber nicht, weiss auch nicht genau wie das gehen soll.

Hoffe ihr habt da was für mich.

MFG
Jonas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: StringList mit Checklist verlinken

  Alt 9. Dez 2009, 18:27
Mit dem Opendialog kann man auch viele Dateien auf einen Rutsch öffnen.
Man muss nur ofAllowMultiSelect in den Options aktivieren.
Der Benutzer kann eine, mehrere oder alle Dateien (wenn er Strg-A drückt) markieren und öffnen.
Über OpenDialog1.Files kann man alle Dateien mit Pfad auslesen.

Der OpenDialog dürfte viel leistungsfähiger und variabler sein, als das was du bisher hast.
Miniaturansicht angehängter Grafiken
multiselectopendialog_176.gif  
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:35 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