Hallo zusammen,
Also ich habe einen VST mit der IncrementalSearch-Funktion "ausgerüstet".
Eigentlich funktioniert das wunderbar, doch wenn ich zwei mal hintereinander die selbe Taste auf der Tastatur (= selber Buchstabe) drücke, gibts eine "
access violation".
Ich finde einfach nicht heraus, was das Problem ist!
Vielleicht kann ja von euch jemand helfen...
Hier mal bisschen Code, wenn ihr mehr braucht sagt bescheid.
Delphi-Quellcode:
type
TArchiv = class(TComponent)
private
fFilename: String;
fTitel: String;
fInterpret: String;
fAlbum: String;
fGenre: String;
fDauer: TTime;
fBewertung: Integer;
fCounter: Integer;
fDatum: TDate;
function getPlaylistname: String;
published
property Filename: String read fFilename write fFilename;
property Titel: String read fTitel write fTitel;
property Interpret: String read fInterpret write fInterpret;
property Album: String read fAlbum write fAlbum;
property Genre: String read fGenre write fGenre;
property Dauer: TTime read fDauer write fDauer;
property Bewertung: Integer read fBewertung write fBewertung;
property Counter: Integer read fCounter write fCounter;
property Datum: TDate read fDatum write fDatum;
property Playlistname: String read getPlaylistname;
public
end;
pArchiv = ^TArchiv;
//...
procedure TForm1.VST1IncrementalSearch(Sender: TBaseVirtualTree;
Node: PVirtualNode; const SearchText: WideString; var Result: Integer);
var
s1, s2: string;
Archiv: TArchiv;
begin
Archiv := TArchiv(vst1.getnodedata(node)^); // <--- Diese Zeile wird markiert bei der acces violation
s1 := SearchText;
case vst1.Header.SortColumn of
0: s2 := Archiv.Filename;
1: s2 := Archiv.Titel;
2: s2 := Archiv.Interpret;
3: s2 := Archiv.Playlistname;
4: s2 := Archiv.Album;
5: s2 := Archiv.Genre;
6: s2 := formatdatetime('HH:MM:SS', Archiv.Dauer);
7: s2 := Inttostr(Archiv.Bewertung);
8: s2 := Inttostr(Archiv.Counter);
9: s2 := DateTimeToStr(Archiv.Datum);
end;
if s2 = '' then
s2 := ' ';
Result := StrLIComp(pchar(lowercase(s1)), PChar(lowercase(s2)), Min(Length(s1), Length(s2)));
end;
wäre echt dankbar wenn mir jemand helfen könnte!
MFG
urbanbruhin