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
 
Schneider-Huetter

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

Re: Problem mit ListView

  Alt 1. Sep 2004, 21: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
 


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 15:52 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