Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem (https://www.delphipraxis.net/7696-mp3-files-aus-my-base-datenbank-zum-oeffnen-bereitstellem.html)

Matzespens 19. Aug 2003 12:19


MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Hallo,
ich habe eine Datenbank geschrieben mit der ich meine MP3's archivieren kann. Nun möchte ich mehrere Files aus meiner Table auswählen können und mit Winamp öffnen können.
Wenn ich nur eine Datei auswähle ist das ja ganz einfach mit ShellExecute:

ShellExecute(GetDesktopWindow(), 'open', PChar(editdateiname.Text), nil, nil, SW_SHOWNA);

Aber wie bekomme ich jetzt mein Multiselect von meiner Table in Shellexecute.

(Vielleicht mit ner unsichtbaren Listbox??)

Schon mal Danke im Voraus.

Grüße

Matze

Matze 19. Aug 2003 12:26

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Hi!

Mit einer unsichtbaren ListBox müsste es theoretisch gehen, wenn du dann nacher mit ListBox1.ItemIndex deine MP3-Files ausliest.

Gruß Matze

Matzespens 19. Aug 2003 12:44

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Dann muss ich aber mit nem Array arbeiten oder?

Und nimmt mir dann mein Shellexecute den Typ Listbox1.itemindex an?

Grüße

Matze

Matzespens 19. Aug 2003 15:08

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ich bins nochmal,

ich glaube ich bin zu blöde dafür.

Wie bekomme ich den jetzt meine Dateinamen in die Listbox?
mit:

Listbox1.items.text := ???

und dann muss ich doch irgendwie meine ausgewählten Dateien aufrufen

oder wie?

Gruß

Matze

Matze 19. Aug 2003 20:11

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Zur ListBox fügt man die Eiträge so hinzu:

ListBox1.Items.Add

So liest man sie aus:

LIstBox1.Items.Strings[irgendeine_Integer_Variable];

So liest man den angeklickten Eintrag aus:

LIstBox1.Items.Strings[ListBox1.ItemIndex];


Aber das mit ShellExecute kann ich leider auch nicht so richtig, ich hab rumprobiert, kam aber noch zu keinen Ergebnis. :(

Gruß Matze

Matzespens 19. Aug 2003 23:14

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Alles schön und gut,
das ist mir ja relativ klar.

Ich habe meine ausgewählten Daten jedoch ind einer Table Komponente und muss nun daraus meine strings in die Listbox übertragen. Und daran scheitere ich. Es muss also doch irgendwie so aussehen:

Listbox1.items.text := datamp3.???? (wobei datamp3 meine Table Komp. ist)

oder liege ich da falsch?

gruß

Matze

Matze 20. Aug 2003 06:36

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Guten Morgen Matze!

Nimm doch eine DBListBox.

Dann geht es so:

Code:
with Table1 do
begin
  first;
  DBListBox1.Items.clear;
  while not eof do
  begin
    DBListBox1.Items.add(fieldbyname('MP3-Files').asstring);
    //MP3-Files ist die Spalte in der Table1
    next;
  end;
end;
Ich hoffe, das ist jetzt das Richtige. :wink:

Gruß Matze

Matze 20. Aug 2003 06:39

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ich nochmal:

Dazu brauchst du dann natürlch eine DataSource, bei der DataSet auf Table1 verweist.

Und bei DBListBox1 muss DataSource auf DataSource1 verweisen
(beides im OI einstellbar).

Gruß Matze

Matzespens 20. Aug 2003 09:54

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Das funktioniert schon mal allerdings lädt er mir jetzt alle einträge in die dblistbox und ich möchte ja nur die markierten.

Kann ich dann vielleicht über das dbgrid gehen mit selectedRows ?

Gruß

Matze

Matzespens 20. Aug 2003 10:08

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ich bins nochmal also ich habe das jetzt mal so probiert:

with dbgrid1 do
begin
//first;
DBListBox1.Items.clear;
while not eof do
begin
DBListBox1.Items.add(selectedField('Dateiname').te xt );
//Dateiname ist die Spalte in dbgrid1
next;
end;
end;


bekommen allerdings immer die Fehlermeldung "Operator oder Semikolon fehlt."

Wenn ich das mit selectedRows anstatt selectedField mache das selbe.

Oder geht das so nicht.

Gruß

Matze

Matze 20. Aug 2003 17:05

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Geht es vielleicht so?

Code:
with dbgrid1 do
begin
//first;
DBListBox1.Items.clear;
while not eof do
begin
DBListBox1.Items.add(selectedField.text ); //Hier ist die Änderung
//Dateiname ist die Spalte in dbgrid1 
next;
end;
end;
Gruß Matze

Matzespens 20. Aug 2003 17:41

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ne das wars leider auch nicht,
jetzt nimmt er mir nur den zuletzt gewählten Datensatz aus der ersten Spalten des Grids.

Ich habe zwischendurch auch noch was probiert mit:

dbgrid1.DataSource.DataSet.RecNo;

damit soll man auf die ausgewählten datensätze im Grid zugreifen können.

aber dann kann ich sie nicht weiterverarbeiten.


Trotzdem danke.

Gruß

Matze

Matze 20. Aug 2003 18:18

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Kannst du mir sagen, was E/A-Fehler 6 bedutet??
In der Delphi-Hilfe staht das nicht!

Matzespens 20. Aug 2003 18:33

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ne kann ich leider nicht,
den hatte ich vorhin auch schon öfters mal.

Aber was er bedeutet keine Ahnung.????

Grüße

Matze

Matze 20. Aug 2003 18:36

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Dann probier ich halt noch etwas herunm, kann dir aber nicht garantieren, dass es was wird. :wink:

Habe ich dich richtig verstanden:
Du möchtest den Eintrag des ausgewählten Feldes des DBGrid in einer ListBox haben?

Gruß Matze

Matze 20. Aug 2003 18:43

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Falls du das wissen wolltest: Ich hab's rausbekommen!

Sorry, dass ich so viel Bullschitt geschriebn habe.

So geht's (ist viel einfacher):

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.clear;
ListBox1.Items.add(DBGrid1.SelectedField.Text);
end;
Ich hoffe, das war's, was du wissen wolltest. :wink:

Gruß Matze

Matzespens 20. Aug 2003 18:51

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Genau,

ich habe also ein dbgrid und habe bei diesem multiselct auf true gesetzt,
damit ich mehrere Datensätze auf einmal auswählen kann.

Dann möchte ich die Auswahl der Datensätze im Feld ('Dateiname')
an die Listbox übergeben und von dort an Winamp.

Ich probiere jetzt schon seit gestern morgen oder so.

Und hab leider auch noch nichts passendes gefunden.

Danke Dir schon mal...

natürlich probiere ich es weiter.

Grüße

Matze

Matze 20. Aug 2003 18:56

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Fehlt jetzt nur noch der Multiselect?

Wie stellt du das bei DBGrid ein, ich find das nicht?

Gruß Matze

Matzespens 20. Aug 2003 19:05

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Im OI unter Options -> dgmultiselect auf true setzen

Matze 20. Aug 2003 19:08

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Danke!

Ich mach's jetzt so, dass du in der DBGrid mehrere Einträge auswählen kannst und die dann in der ListBox angezeigt werden...

Gruß Matze

Matzespens 20. Aug 2003 19:10

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Gut aber im Moment wird in der Listbox ja der Eintrag der ersten Spalte angezeigt und mein Dateiname ist in der 4. Spalte das muss ich doch auch irgendwie angeben oder?

Gruß

Matze

Matze 20. Aug 2003 19:17

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ich weiß grad nicht, wie's geht, aber ich probier mal rum.
Kannst du nicht einfach die Einträge in der 4. Spalte anklicken?

Matzespens 20. Aug 2003 19:26

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Das wollte ich eigentlich vermeiden um das Programm von der Bedienung her so einfach wie möglich zu halten.

Gruß

Matze

Matzespens 20. Aug 2003 21:16

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Ich habe es !!!!!

so gehts:

procedure TForm1.btnoeffnenClick(Sender: TObject);
var
i: Integer;
s: string;
begin
Listbox1.Clear;

if DBGrid1.SelectedRows.Count > 0 then begin

with DBGrid1.DataSource.DataSet do begin

for i:=0 to DBGrid1.SelectedRows.Count-1 do begin

GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));

Listbox1.Items.Add(Fieldbyname('Dateiname').AsStri ng);

S := S + ' "' + Fieldbyname('Dateiname').AsString + '"'

end;

end;

if S <> '' then ShellExecute(GetDesktopWindow(), 'open', PChar('wmplayer.exe'), PChar(S), nil, SW_SHOWNA);

end;

end;


Danke für Deine Hilfe

Gruß

Matze

Matze 20. Aug 2003 21:40

Re: MP3 Files aus MY Base Datenbank zum Öffnen bereitstellem
 
Gratulliere!

Ciao!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz