AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Markiertes im StringGrid an Komponente übergeben???
Thema durchsuchen
Ansicht
Themen-Optionen

Markiertes im StringGrid an Komponente übergeben???

Ein Thema von Fritz the Cat · begonnen am 6. Mai 2005 · letzter Beitrag vom 6. Mai 2005
Antwort Antwort
Fritz the Cat

Registriert seit: 6. Mai 2005
28 Beiträge
 
Delphi 7 Enterprise
 
#1

Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 21:00
Hallo.

ich hoffe das ich hier richtig bin. Ich habe hier im Forum ein Beispiel gefunden, wie man Audio-CD's rippt und durch Lame jagt, um diese nach MP3 zu konvertieren.

Hier mal die Unit:

Delphi-Quellcode:
unit LDUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, CDRIP, LameCoder, Grids;

type
  TForm1 = class(TForm)
    LameCoder1: TLameCoder;
    CDRIP1: TCDRIP;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    GroupBox3: TGroupBox;
    CheckBox1: TCheckBox;
    Button1: TButton;
    Button2: TButton;
    CheckBox2: TCheckBox;
    ComboBox1: TComboBox;
    Label1: TLabel;
    CheckBox3: TCheckBox;
    Label2: TLabel;
    ComboBox2: TComboBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Label4: TLabel;
    CheckBox6: TCheckBox;
    OpenDialog1: TOpenDialog;
    Button3: TButton;
    Label5: TLabel;
    ListBox2: TListBox;
    Button4: TButton;
    Button5: TButton;
    ProgressBar1: TProgressBar;
    Label6: TLabel;
    ComboBox3: TComboBox;
    TrackBar1: TTrackBar;
    Label3: TLabel;
    Label7: TLabel;
    CheckBox7: TCheckBox;
    ComboBox4: TComboBox;
    Label8: TLabel;
    Label9: TLabel;
    ComboBox5: TComboBox;
    Label10: TLabel;
    CheckBox8: TCheckBox;
    StringGrid1: TStringGrid;
    ListBox1: TListBox;
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure CDRIP1Progress(Sender: TObject; PercentComplete: Word);
    procedure Button2Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure ComboBox3Change(Sender: TObject);
    procedure CheckBox6Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure CheckBox4Click(Sender: TObject);
    procedure CheckBox5Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure CDRIP1BeginTrack(Sender: TObject; TrackNum: Word);
    procedure CDRIP1EndTrack(Sender: TObject; TrackNum: Word);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure LameCoder1Progress(Sender: TObject; PercentComplete: Word);
    procedure LameCoder1EndProcess(Sender: TObject);
    procedure LameCoder1BeginFile(Sender: TObject; Num: Word;
      FileName: String);
    procedure TrackBar1Change(Sender: TObject);
    procedure CheckBox7Click(Sender: TObject);
    procedure ComboBox4Change(Sender: TObject);
    procedure ComboBox5Change(Sender: TObject);
    procedure CheckBox8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Lame_dll;

{$R *.DFM}

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
     CheckBox2.Checked := not CheckBox1.Checked;
     CDRIP1.Encode:=CheckBox1.Checked;
end;

procedure TForm1.CheckBox2Click(Sender: TObject);
begin
     CheckBox1.Checked := not CheckBox2.Checked;
     CDRIP1.WriteWAV:=CheckBox2.Checked;
end;

//Ich vermute mal da ab hier was geändert werden muß

procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
     for i:=0 to CDRIP1.Tracks.Count-1 do begin
         StringGrid1.Cells[0,0]:='Track';
         StringGrid1.Cells[1,0]:='Mode';
         StringGrid1.Cells[0,i+1]:=CDRIP1.Tracks[i];
         StringGrid1.Cells[1,i+1]:=TTrack(CDRIP1.Tracks.Objects[i]).Mode;
     end;
     StringGrid1.RowCount:=i+1;
     ComboBox1.ItemIndex:=0;
     ComboBox2.ItemIndex:=4;
     ComboBox3.ItemIndex:=0;
     ComboBox4.ItemIndex:=0;
     ComboBox5.ItemIndex:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var f : string;
begin
     f:=CDRIP1.Tracks[StringGrid1.Row-1];
     if CDRIP1.WriteWAV then f:=f+'.wavelse f:=f+'.pcm';
     CDRIP1.RipTrack(StringGrid1.Row,f);
end;

//Bis hier

procedure TForm1.CDRIP1Progress(Sender: TObject; PercentComplete: Word);
begin
     ProgressBar1.Position:=PercentComplete;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
     CDRIP1.CancelRip;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
     LameCoder1.SampleRate:=StrToInt(ComboBox1.Text);
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
begin
     LameCoder1.BitRate:=StrToInt(ComboBox2.Text);
end;

procedure TForm1.ComboBox3Change(Sender: TObject);
begin
     LameCoder1.MaxBitRate:=StrToInt(ComboBox3.Text);
end;

procedure TForm1.CheckBox6Click(Sender: TObject);
begin
     LameCoder1.EnableVBR:=CheckBox6.Checked;
end;

procedure TForm1.CheckBox3Click(Sender: TObject);
begin
     LameCoder1.Copyright:=CheckBox3.Checked;
end;

procedure TForm1.CheckBox4Click(Sender: TObject);
begin
     LameCoder1.Original:=CheckBox4.Checked;
end;

procedure TForm1.CheckBox5Click(Sender: TObject);
begin
     LameCoder1.CRC:=CheckBox5.Checked;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
     if OpenDialog1.Execute then begin
        LameCoder1.InputFiles:=OpenDialog1.Files;
        ListBox2.Items.Assign(OpenDialog1.Files);
     end;
end;

procedure TForm1.CDRIP1BeginTrack(Sender: TObject; TrackNum: Word);
begin
     Label5.Caption:='Begin ripping Track' + inttostr(tracknum);
end;

procedure TForm1.CDRIP1EndTrack(Sender: TObject; TrackNum: Word);
begin
     Label5.Caption:='End ripping Track' + inttostr(tracknum);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
     LameCoder1.ProcessFiles;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
     LameCoder1.CancelProcess;
end;

procedure TForm1.LameCoder1Progress(Sender: TObject;
  PercentComplete: Word);
begin
     ProgressBar1.Position:=PercentComplete;
end;

procedure TForm1.LameCoder1EndProcess(Sender: TObject);
begin
     ProgressBar1.Position:=0;
end;

procedure TForm1.LameCoder1BeginFile(Sender: TObject; Num: Word;
  FileName: String);
begin
     Label6.Caption:='Process file '+FileName;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
     LameCoder1.VBRQuality:=TrackBar1.Position;
     Label7.Caption:=IntToStr(TrackBar1.Position);
end;

procedure TForm1.CheckBox7Click(Sender: TObject);
begin
     LameCoder1.WriteVBRHeader:=CheckBox7.Checked;
end;

procedure TForm1.ComboBox4Change(Sender: TObject);
begin
     LameCoder1.Mode:=TLameMode(ComboBox4.ItemIndex);
end;

procedure TForm1.ComboBox5Change(Sender: TObject);
begin
     LameCoder1.Quality:=MPEG_QUALITY(ComboBox5.ItemIndex);
end;

procedure TForm1.CheckBox8Click(Sender: TObject);
begin
     LameCoder1.Private:=CheckBox8.Checked;
end;

end.
Man kann immer nur einen Titel rippen. Wie kann man das was man markiert hat, hintereinander weg rippen, ohne ständig neu wählen zu müssen?

Wäre vielleicht eine andere Komponente besser?

Ich bin abloluter Newbie. Soll aber keine Entschuldigung sein.

Danke schonmal!
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 23:00
Hallo,

in deinem Code bei Button1Click verwendest Du die row-eigenschaft des Stringgrids.
Row gibt Dir nur die Zeile mit der ausgewählten Zelle innerhalb der Markierung an.

Die Eigenschaft Selection gibt die Größe der aktuellen Auswahl an.
Damit kannst Du alle ermitteln die Du markiert hast
und diese dann mit einer Schleife entsprechend bearbeiten.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Fritz the Cat

Registriert seit: 6. Mai 2005
28 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 23:04
Ich vermute aber, daß es diese Eigenschaft bei StringGrid nicht gibt.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

Re: Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 23:13
Hallo,
Zitat von Fritz the Cat:
Ich vermute aber, daß es diese Eigenschaft bei StringGrid nicht gibt.
Vermutung Delphi-Hilfe:
Zitat:
Mit Selection können Sie einen Zellbereich auswählen. Selection enthält entweder für erste Spalte, die erste Zeile, die letzte Spalte und die letzte Zeile im Gitter oder die Zeilen- und Spaltenkoordinaten der linken oberen und der rechten unteren Zelle der ausgewählten Bereichs.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Fritz the Cat

Registriert seit: 6. Mai 2005
28 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 23:16
Das raff ich nicht!
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 23:25
Hallo,

was raffst Du nicht
Der Code sollte dir weiterhelfen:
Delphi-Quellcode:
var
  myRect: TGridRect;
begin
  myRect := StringGrid1.Selection;
  showmessage('Top: '+IntToStr(myRect.Top)+#10#13
             +'Left: '+IntToStr(myRect.Left)+#10#13
             +'Right: '+IntToStr(myRect.Right)+#10#13
             +'Bottom: '+IntToStr(myRect.Bottom)+#10#13
             +'AktiveSpalte: '+IntToStr(StringGrid1.Col)+#10#13
             +'Aktivezeile: '+IntToStr(StringGrid1.Row));
end;
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Fritz the Cat

Registriert seit: 6. Mai 2005
28 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Markiertes im StringGrid an Komponente übergeben???

  Alt 6. Mai 2005, 23:27
Danke. Ich werds mal probieren. Wenn ich nicht mehr weiter weiß, darf man ja hoffentlich nochmal posten?!
  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 04:13 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