Witam,
utknąłem w pewnym momencie przy pisaniu programu. Załóżmy że mam ciąg znaków w label1.caption o tresci "ABC Artur Maciek komenda". Mamy również label2.caption o tresci "Artur". Rzecz w tym, aby program wyszukał w ciągu label1.caption to co jest w label2.caption i zapisał to w zmiennej typu string. Poniżej wklejam to co udało mi się napisać. Problem w tym że zamiast pokazywać mi z ShowMessage komunikat o treści "Artur" (czyli to co znalazł w label1) pokazuje mi ABC A. Gdzie robię błąd?
procedure TForm1.Button1Click(Sender: TObject);
var
j, i: byte;
NrZnakuKomendy: byte;
temp: string;
begin
for j := 1 to length(label1.caption) do
begin
if (label1.caption[j+1] = 'k') and
(label1.caption[j+2] = 'o') and
(label1.caption[j+3] = 'm') and
(label1.caption[j+4] = 'e') and
(label1.caption[j+5] = 'n') and
(label1.caption[j+6] = 'd') and
(label1.caption[j+7] = 'a') then NrZnakuKomendy := j+9;
end;
for j := 1 to (NrZnakuKomendy-9) do
begin
if (label1.caption[j] = label2.caption[1]) then //zgodnosc 1 litery
begin
for i := 1 to length(label2.caption) do //tyle razy ile jest znakow
temp := temp + label1.caption[i]; //kopiujemy z label1, nie z label2
for i := 1 to length(label2.caption) do
begin
if (label1.caption[i] = temp[i]) then
ShowMessage('Zgodnosc ' + IntToStr(i) + '!');
end;
ShowMessage(temp);
end;
end;
end;