Einzelnen Beitrag anzeigen

beanbear6

Registriert seit: 28. Okt 2009
Ort: Passau
170 Beiträge
 
Delphi 7 Enterprise
 
#49

AW: TMIDIPlayer2

  Alt 23. Dez 2011, 13:48
Hi Emil,
wär das eventuell mit RichText leichter zu lösen?? Ich hab von einem guten Bekannten folgenden Quellcode erhalten. Im Ansatz ist das fast das was benötigt wird...
(Auch an alle hier ein ruhiges besinnliches Weihnachtsfest und nen guten Rutsch)

Delphi-Quellcode:
var
  such: string;
  suchmodus: boolean;
  start: integer;

procedure TForm1.FormCreate(Sender: TObject);
begin
  KeyPreview := true;
  Button2Click(Sender);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  suchmodus := true;
  label1.caption := 'Suchmodus ist ein';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  suchmodus := false;
  label1.caption := 'Suchmodus ist aus';
  Label2.caption := '';
  Memo1.sellength := 0;
  such := '';
  start := 1;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
var x, lg: integer;
begin
  if suchmodus then begin
    if (key = #8) and (such <> '')
      then begin
      delete(such, length(such), 1);
      start := 1;
    end else
      if key >= #32 then such := such + Key;
    if such = 'then begin
      label2.caption := '';
      Memo1.sellength := 0;
      start := 1;
      key := #0;
      exit;
    end;
    lg := length(such);
    label2.caption := such;
    if (key = #13) and (Memo1.sellength > 0)
      then inc(start, lg);
    Memo1.sellength := 0;
    for x := start to length(memo1.text) - lg + 1 do
      if lstrcmpi(pchar(such), Pchar(copy(Memo1.text, x, lg))) = 0
        then begin
        Memo1.selstart := x - 1;
        Memo1.sellength := lg;
        Memo1.setfocus;
        Memo1.perform(EM_SCROLLCARET, 0, 0);
        start := x;
        break;
      end;
    if Memo1.sellength = 0 then
      start := 1;
    key := #0;
  end;
end;
Reiner
  Mit Zitat antworten Zitat