AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit ListView

Ein Thema von Schneider-Huetter · begonnen am 1. Sep 2004 · letzter Beitrag vom 2. Sep 2004
Antwort Antwort
Schneider-Huetter

Registriert seit: 5. Mär 2004
97 Beiträge
 
Delphi 7 Personal
 
#1

Problem mit ListView

  Alt 1. Sep 2004, 18:36
Bei meinem mp3-Player benutze ich ein ListView als PlayList.
Die Pfade sind als SubItems gespeichert, durch einen klick
auf einen Button wird die Datei abgespielt.

Code:
PlayFile(ListView1.Selected.SubItems.Strings[0];
Das funktioniert auch, solange ich auf den Button klicke.

Möchte ich das Ganze aus der ClientSocketRead-Prozedur von
TClientSocket heraus aufrufen (z.B. Button1.click) , wird zwar ein Titel abgespielt
der sich in der selben Zeile, jedoch in einer anderen Spalte
wie der aktuell markierte befindet (ViewStyle: vsList)!?

Bin völlig ratlos !!!
Gruß Schneider-Huetter
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Problem mit ListView

  Alt 1. Sep 2004, 18:47
Mit welchem Code rufst du das dort auf?
Mit obigem, oder mit einem anderen?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Problem mit ListView

  Alt 1. Sep 2004, 18:50
Was hat die Methode ClientSockeRead mit dem Listview zu tun? Eine genauere Beschreibung deines Problems und wie du es machst (SourceCode) wäre echt nicht schlecht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Schneider-Huetter

Registriert seit: 5. Mär 2004
97 Beiträge
 
Delphi 7 Personal
 
#4

Re: Problem mit ListView

  Alt 1. Sep 2004, 19:03
Zitat:
Was hat die Methode ClientSockeRead mit dem Listview zu tun?
Die hat prinzipiell natürlich gar nichts damit zu tun, nur wenn ich Button1 anklicke funktioniert es eben und wenn ich die Button1Click-Prozedur aus erwähnter Methode heraus aufrufe nicht.

Wenn ich heute abend noch etwas mehr Zeit habe werde ich noch etwas Code posten
Gruß Schneider-Huetter
  Mit Zitat antworten Zitat
Schneider-Huetter

Registriert seit: 5. Mär 2004
97 Beiträge
 
Delphi 7 Personal
 
#5

Re: Problem mit ListView

  Alt 1. Sep 2004, 22:37
Also, ich werde mal versuchen das Problem etwas genauer zu erläutern:
Ich habe folgende Prozedur, die funktioniert, wenn ich auf den entsprechenden
Button klicke:

Code:
procedure TForm2.SpeedButton3Click(Sender: TObject);
var tag : TID3Tag;
begin
 If Form1.IsPlaying = 'Paused' then Form1.ResumeBass
  else
   begin
    UserStop:=False;
    Form1.StopBass;
   
    //- LCD löschen - 
    ClearDisplay;
    Count:=0;
    PlayRahmen;
   
    //- markierten Track abspielen -
    CurrentTrack := ListView1.Selected.SubItems.Strings[0];
    Form1.PlayFile(CurrentTrack);
   
    //- Titel und Interpret auf dem LCD ausgeben
    Tag := TID3Tag.Create;
    PlayMode( Tag.Interpret(CurrentTrack), Tag.Titel(CurrentTrack) );
    Tag.Free;
   end;
end;
Hier ist die TClientSocket-Methode, der Client verbindet mit einem WinLIRC Server,
damit eine IR-Fernbedienung für den mp3-Player genutzt werden kann:

Code:
procedure TForm2.ClientSocketRead(Sender: TObject;
  Socket: TCustomWinSocket);
var s,t:string;
i:integer;
partbeg,partend:integer;
params:array[1..4] of string;
begin

s := socket.ReceiveText;

partbeg := 0;
partend := 0;

t:=s;
  for i := 1 to 3 do begin
    partend := Pos(' ', t);
    params[i] := Copy(t, 1, partend - 1);
    Delete(t, 1, partend);
  end;
  params[4] := t;
  delete(params[4],length(params[4]),1);

   //-- Cursor-Tasten --
    if ( Uppercase(params[3]) = 'VOL_DOWN') and (params[2] = '01') then
     SendMessage(ListView1.Handle, WM_KEYDOWN, VK_DOWN, 0);

    if ( Uppercase(params[3]) = 'VOL_UP') and (params[2] = '01') then
     SendMessage(ListView1.Handle, WM_KEYDOWN, VK_UP, 0);

    if ( Uppercase(params[3]) = 'NEXT') and (params[2] = '01') then
     SendMessage(ListView1.Handle, WM_KEYDOWN, VK_RIGHT, 0);

    if ( Uppercase(params[3]) = 'PREVIOUS') and (params[2] = '01') then
     SendMessage(ListView1.Handle, WM_KEYDOWN, VK_RIGHT, 0);

    if ( Uppercase(params[3]) = 'PAUSE') and (params[2] = '01') then
     SpeedButton2.Click;

   //-- Stop --
    if ( Uppercase(params[3]) = 'STOP') and (params[2] = '01') then
      Begin
        UserStop := True;
        SpeedButton1.Click;
      End;


   //-- Play -- 
    if ( Uppercase(params[3]) = 'PLAY') and (params[2] = '01') then
      begin
         UserStop:=False;
         SpeedButton3.Click;
        end;

   

end;
Wenn ich also den SpeedButton anklicke wird der korrekte Titel abgespielt.
Wird aber die Taste 'PLAY' auf der Fernbedienung gedrückt wird ein falscher
Titel abgespielt (also nicht der markierte) obwohl ja eigentlich genau das
gleiche geschehen müsste wie wenn ich den Button anklicke!
An der Fernbedienung u.s.w. kann es nicht liegen, da ansonsten alles funktioniert
(Cursortasten, Stop...).

Kann's einfach nicht verstehn
Gruß Schneider-Huetter
  Mit Zitat antworten Zitat
Nightshade

Registriert seit: 7. Jan 2003
Ort: Menden
192 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Problem mit ListView

  Alt 1. Sep 2004, 23:33
Zitat von Schneider-Huetter:
Code:
SendMessage(ListView1.Handle, WM_KEYDOWN, VK_DOWN, 0);
Irre ich mich da, oder muss da nicht noch ein WM_KEYUP Event kommen ?

Code:
SendMessage(ListView1.Handle, WM_KEYDOWN, VK_DOWN, 0);
SendMessage(ListView1.Handle, WM_KEYUP, VK_DOWN, 0);
Christian
Killing for peace is like fucking for virginity

Nightshade
  Mit Zitat antworten Zitat
Schneider-Huetter

Registriert seit: 5. Mär 2004
97 Beiträge
 
Delphi 7 Personal
 
#7

Re: Problem mit ListView

  Alt 2. Sep 2004, 10:59
Das mit dem WM_KEYUP habe ich gerade ausprobiert, hat aber leider nichts gebracht. Aber die Cursortasten haben ja auch bisher schon funktioniert, es geht ja eigentlich nur darum, dass nicht der auf dem Bildschirm markierte Titel abgespielt wird.
Gruß Schneider-Huetter
  Mit Zitat antworten Zitat
Schneider-Huetter

Registriert seit: 5. Mär 2004
97 Beiträge
 
Delphi 7 Personal
 
#8

Re: Problem mit ListView

  Alt 2. Sep 2004, 11:29
Noch eine Anmerkung:
Der Fehler tritt nur auf, wenn ich die Tasten "VK_RIGHT" und "VK_LEFT" benutze!
Gruß Schneider-Huetter
  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 17:24 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