Продолжнение "Вызывает антирес и такой ишо разрез" Как можно осуществить событие для динамически созданного компонента? Проблема в том, что программа модульная и "процедура не описана как метод формы".
procedure MyOnClick(Sender: TObject); begin form1.Label1.Caption:=inttostr(form1.MainMenu1.Items.IndexOf(sender as TMenuItem)); end;
procedure CreateSubMenu(MainMenu: TMainMenu; p: TP); var i,j: integer; k: longint; N: TMenuItem; begin k:=3; //... SetLength(MenuItemArray, 2, k); for j:=0 to k-1 do for i:=0 to 1 do begin N:=TMenuItem.Create(MainMenu); n.Caption:=inttostr(i)+inttostr(j); n.OnClick:=MyOnClick; //вот здесь пишет Incompatible types: 'method pointer and regular procedure' MainMenu.Items[i+1].items[1].Insert(j,n); MenuItemArray[i][j]:=n; end; end;
Сама программа: VstupInfo.rar ( 275.13 килобайт )
Кол-во скачиваний: 506
А я думал, что у меня более новая версия (Indy 10), в которой НЕТ свойства MaxLineAction. Я что, должен теперь установить более старую версию?
Цитата
Как можно вручную открыть окно "Мessages"?
Нажать на Alt+F7 или Alt+F8 (переход к предыдущей/следующей ошибке), при этом должно появиться и окно Messages, если ошибки/предупреждения были, конечно.
Цитата
Я видел это предупреждение(это там где for i:=i to.., да?), но подумал, раз я его нигде не использую - то ничего страшного.
Ау.... Кто и чего где не использует? Ты получил предупреждение? Так вот тебе надо сделать так, чтоб твоя программа компилировалась без предупреждений. Чем опасно? Вот этим:
Notes The loop Variable value is not guaranteed by Delphi at loop end. So do not use it!
Теперь понимаешь, в чем проблема?
for i:=prev to PosEx('">',poem,prev)-1 do s:=s+poem[i];
// Вот тут чему равно i? Ты можешь гарантировать это? Source.Name:=s; s:=''; for i:=i+length('">') to PosEx('</td>',poem,i)-1 do // Здесь возникает предупреждение !!! s:=s+poem[i];
После окончания первого цикла у тебя i может быть не равно PosEx('">',poem,prev)-1 (на что ты рассчитываешь), тогда весь твой второй цикл улетит в тартарары... Будет незнамо где начинаться (и неизвестно где заканчиваться, потому как конечное значение второго цикла тоже вычисляется с учетом i). Дельфи гарантирует, что i будет принимать какое-то осмысленное значение ТОЛЬКО тогда, когда цикл закончился Break-ом, тогда то значение переменной, при котором произошел Break, сохранится и после цикла. У тебя Break отсутствует так что ничего определенного по поводу значения i сказать нельзя. Не зря во многих языках управляющая переменная цикла видима только внутри самого цикла, чтоб к ней потом нельзя было обратиться.