In Delphi 2009, my program now produces a «List index out of bounds» error. It generates a popup box:
(source: beholdgenealogy.com)
I’m using the «Debug» Build Configuration that has all the Runtime error checking turned on. But this does not capture the error before it happens.
Is there any simple way to locate the source of this error in my program without having to put in breakpoints and narrow it down by trial and error?
Glorfindel
21.9k13 gold badges79 silver badges106 bronze badges
asked Jul 28, 2009 at 2:09
3
Do you have «Stop on Delphi Exceptions» turned on? (ToolsDebugger OptionsLanguage Exceptions [Delphi7]) Otherwise it won’t break in your sourcecode.
Also make sure that EListError is not in your «Exception Types to Ignore» list. This list is also found at ToolsDebugger OptionsLanguage Exceptions (Delphi 7).
answered Jul 28, 2009 at 6:34
The_FoxThe_Fox
6,9722 gold badges43 silver badges69 bronze badges
5
madExcept (free) or EurekaLog (paid) may help. You can set them up to show/email a stack trace when an error occurs. I use EurekaLog in all my projects and it is invaluable for fixing these kinds of things.
answered Jul 28, 2009 at 3:12
SeanXSeanX
1,85120 silver badges28 bronze badges
6
Hey, you don’t need any additional tools to track this!
Just run your application under debugger and make sure that «Stop on Delphi Exceptions» (or whatever it is called in your Delphi’s version) is turned ON.
When exception occurs — there will be a notification from debugger. Press «Ok»/»Debug» button and just view the call stack. Call stack window is shown automatically in recent Delphi’s version. If you can not see it — go to «View»/»Debug Windows»/»Call stack».
That’s all. The call stack will point you at the exact location of the problem. No additional tool needed.
Those tools (EurekaLog, JCL or madExcept) are needed if you distribute your program among users and want to gather bug-reports about problems on client side. I.e. there is no debugger to check the problem.
answered Jul 28, 2009 at 7:26
AlexAlex
5,4372 gold badges36 silver badges56 bronze badges
5
As this is an RTL/VCL error, you often end up with better breaking/callstack behaviour if you enable Debug DCU’s (and rebuild).
answered Jul 28, 2009 at 6:39
Paul-JanPaul-Jan
16.7k1 gold badge63 silver badges95 bronze badges
1
Any hints what your application’s doing when this occurs? A long loop? A button click?
When the application halts and you look at the call stack debug window, can you trace the call back to the last call from your code? The call stack won’t tell you all of the conditions, but can narrow down the location.
Once you narrow down the call, a logging tool like CodeSite can be really useful. For instance, I often log loop control variables to figure out which iteration occurs last before the error, then it’s a matter of identifying likely suspects.
answered Jul 28, 2009 at 2:49
ArgalatyrArgalatyr
4,6393 gold badges36 silver badges62 bronze badges
4
for listbox, tstrings,…
means that the index is beyond the list->count, . .
example of tString->strnigs[?]; [?] is < 0 or > (tString->count-1) will result out of bounds error.
as for NMPop3, etc,…
if use pop3client to fetch email, it has a bugs to some unix/? pop3 server,
that I have came across using it to fetch email from mail.???.com but ok with some.
at last I have to rewrite my pop3client application with tclientsocket instead of tnmpop3.
now works with every of the pop3server that I connected to.
hope this help & good luck
answered May 31, 2013 at 4:49
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ComCtrls; type TForm1 = class(TForm) OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; MainMenu1: TMainMenu; ColorDialog1: TColorDialog; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; procedure N4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Buff: TBitmap; mas: array of integer; Lmas:integer; bw: integer; bh: integer; LStr: integer; Nbit: integer; Clr: TColor; implementation {$R *.dfm} procedure Ris1; var i, j, m, k, a, b: integer; {ïåðåìåííûå íåîáõîäèìûå â êà÷åñòâå ñ÷åò÷èêîâ, à òàêæå äëÿ ïðîìåæóòî÷íûõ âû÷èñëåíèé} begin if Lmas<>0 then {âûïîëíÿåì äåéñòâèÿ ïî îòîáðàæåíèþ äàííûõ, åñëè äëèíà âõîäíîãî ìàññèâà íå ðàâíà íóëþ} begin PatBlt(Buff.Canvas.Handle,0,0,Buff.Width,Buff.Height,blackness); {î÷èñòêà áèòîâîé ìàòðèöû ïóòåì ðèñîâàíèÿ íà íåé ÷åðíîãî ïðÿìîóãîëüíèêà} Buff.Canvas.Pen.Color := Clr; {çàäàåì öâåò äëÿ ðèñîâàíèÿ åäèíè÷íûõ ýëåìåíòîâ} for i := 1 to ((Form1.Width-10) div bh) do {îðãàíèçóåì öèêë îò åäèíèöû äî ÷èñëà ñòðîê, ïîìåùàþùèõñÿ íà ýêðàíå} begin for m := 0 to bh-1 do {îðãàíèçóåì öèêë â ñîîòâåòñòâèè ñ ìàñøòàáîì ïî âåðòèêàëè} begin k := i*LStr-1+Nbit; {âû÷èñëÿåì íîìåð ýëåìåíòà â ìàññèâå mas, ÿâëÿâøåãîñÿ ïîñëåäíèì â ïðåäûäóùåé ñòðîêå} b := bh*i+m+10; {âû÷èñëÿåì çíà÷åíèå êîîðäèíàòû ïî îñè y îòîáðàæàåìîé ñòðîêè ýëåìåíòîâ} for j := 1 to LStr do {îðãàíèçóåì öèêë ïî âñåì ýëåìåíòàì ñòðîêè îò ïåðâîãî äî LStr} begin inc(k); {âû÷èñëÿåì íîìåð k ýëåìåíòà ìàññèâà mas, êîòîðûé äîëæåí áûòü îòîáðàæåí} if k>=Lmas then break; {åñëè î÷åðåäíîé íîìåð ýëåìåíòà ìàññèâà mas ïðåâûøàåò ëèáî ðàâåí äëèíå ìàññèâà Lmas, òî öèêë îòîáðàæåíèÿ áóäåò çàâåðøåí; äàííîå óñëîâèå âûïîëíÿåòñÿ ïðè âûâîäå íà ýêðàí íåïîëíîé ïîñëåäíåé ñòðîêè} if mas[k] = 1 then {åñëè k-é ýëåìåíò ìàññèâà åäèíèöà, òî ðèñóåì ëèíèþ äëèíû bw çàäàííûì öâåòîì} begin a := 10+j*bw; Buff.Canvas.MoveTo(a-bw, b); Buff.Canvas.LineTo(a, b); end; end; end; end; Form1.Canvas.Draw(0, 0, Buff); {êîïèðóåì áèòîâóþ ìàòðèöó íà êàíâó ôîðìû} end; end; procedure Ris2; var i, j, k: integer; {ïåðåìåííûå íåîáõîäèìûå â êà÷åñòâå ñ÷åò÷èêîâ, à òàêæå äëÿ ïðîìåæóòî÷íûõ âû÷èñëåíèé} begin if Lmas<>0 then {âûïîëíÿåì äåéñòâèÿ ïî îòîáðàæåíèþ äàííûõ, åñëè äëèíà âõîäíîãî ìàññèâà íå ðàâíà íóëþ} begin PatBlt(Buff.Canvas.Handle,0,0,Buff.Width,Buff.Height,blackness); {î÷èñòêà áèòîâîé ìàòðèöû ïóòåì ðèñîâàíèÿ íà íåé ÷åðíîãî ïðÿìîóãîëüíèêà} Buff.Canvas.Font.Color := Clr; {çàäàåì öâåò äëÿ îòîáðàæåíèÿ åäèíè÷íûõ è íóëåâûõ ýëåìåíòîâ} Buff.Canvas.Brush.Color := clBlack; {çàäàåì öâåò ôîíà} for i := 1 to (Form1.Width div 12) do {îðãàíèçóåì öèêë îò åäèíèöû äî ÷èñëà ñòðîê, ïîìåùàþùèõñÿ íà ýêðàíå} begin k := i*LStr-1+Nbit; {âû÷èñëÿåì íîìåð â ìàññèâå mas ïîñëåäíåãî ýëåìåíòà ïðåäûäóùåé ñòðîêè} for j := 1 to LStr do {îðãàíèçóåì öèêë ïî âñåì ýëåìåíòàì ñòðîêè îò ïåðâîãî äî LStr} begin inc(k); {âû÷èñëÿåì íîìåð k ýëåìåíòà ìàññèâà mas, êîòîðûé äîëæåí áûòü îòîáðàæåí} if k>=Lmas then break; {åñëè î÷åðåäíîé íîìåð ýëåìåíòà ìàññèâà mas ïðåâûøàåò ëèáî ðàâåí äëèíå ìàññèâà Lmas, òî öèêë îòîáðàæåíèÿ áóäåò çàâåðøåí; äàííîå óñëîâèå âûïîëíÿåòñÿ ïðè âûâîäå íà ýêðàí íåïîëíîé ïîñëåäíåé ñòðîêè} if mas[k] = 0 then Buff.Canvas.TextOut(j*8, 12*i-4, '0') else Buff.Canvas.TextOut(j*8, 12*i-4, '1'); {îòîáðàæàåì k-é ýëåìåíò ìàññèâà íà êàíâå ôîðìû} end; end; Form1.Canvas.Draw(0, 0, Buff); {êîïèðóåì áèòîâóþ ìàòðèöó íà êàíâó ôîðìû} end; end; procedure TForm1.N4Click(Sender: TObject); var f: file of byte; {ôàéëîâàÿ ïåðåìåííàÿ äëÿ ðàáîòû ñ òèïèçèðîâàííûì ôàéëîì, ñîäåðæàùèì áàéòû} i, z: integer; {ïåðåìåííûå, èñïîëüçóåìûå êàê ñ÷åò÷èêè} d: byte; {ïåðåìåííàÿ, èñïîëüçóåìàÿ äëÿ ÷òåíèÿ áàéòà èç ôàéëà} begin if not OpenDialog1.Execute then exit;{åñëè ôàéë íå âûáðàí, òî ðàáîòà ïðîöåäóðû çàâåðøàåòñÿ} try {íà÷àëî áëîêà îáðàáîòêè èñêëþ÷èòåëüíîé ñèòóàöèè; äàæå â ñëó÷àå îøèáêè ïðè âûïîëíåíèè îïåðàòîðîâ ðàáîòû ñ ôàéëîì, áóäóò âûïîëíåíû îïåðàòîðû, ðàçìåùåííûå ïîñëå îïåðàòîðà finally, òî åñòü ôàéë f áóäåò çàêðûò} AssignFile(f, OpenDialog1.FileName); {ñ ôàéëîâîé ïåðåìåííîé f ñâÿçûâàåòñÿ ôàéë, âûáðàííûé ñ ïîìîùüþ êîìïîíåíòà OpenDialog1} Reset(f); {ôàéë f îòêðûâàåòñÿ äëÿ ÷òåíèÿ} {â ïàíåëè ñòàòóñà îòîáðàæàåì èìÿ îòêðûâàåìîãî ôàéëà} i := 0; {óñòàíàâëèâàåì â 0 çíà÷åíèå ñ÷åò÷èêà ñ÷èòàííûõ áèò} while not eof(f) do {âûïîëíÿåì öèêë ïîêà íå äîñòèãíóò êîíåö ôàéëà f} begin Read(f, d); {÷èòàåì èç ôàéëà f áàéò d} for z := 0 to 7 do {öèêë çàïèñè áèò áàéòà d â ìàññèâ mas} begin SetLength(mas, i+1); {óñòàíàâëèâàåì äëèíó ìàññèâà mas ðàâíîé íîìåðó ñ÷èòûâàåìîãî áèòà ïëþñ îäèí} mas[i] := (d shr z) and 1; {ïðè ðàçëè÷íûõ z ïîñëåäîâàòåëüíî ïðèñâàèâàåì î÷åðåäíîìó çíà÷åíèþ ìàññèâà çíà÷åíèå áèòà áàéòà d, ñíà÷àëà ìëàäøåãî áèòà, äàëåå âòîðîãî áèòà è òàê äî ñàìîãî ñòàðøåãî áèòà áàéòà d} inc(i); {óâåëè÷èâàåì íà îäèí ñ÷åò÷èê ñ÷èòàííûõ áèò} end; end; Lmas := i; {îáùåå ÷èñëî ñ÷èòàííûõ áèò} finally CloseFile(f); {çàêðûòèå ôàéëà f} end; if N5.Checked then Ris1 else Ris2; {â çàâèñèìîñòè îò âûáðàííîãî ðåæèìà îñóùåñòâëÿåòñÿ çàïóñê ïðîöåäóðû îòîáðàæåíèÿ â ãðàôè÷åñêîì âèäå Ris1 ëèáî â òåêñòîâîì Ris2; ïóíêò ìåíþ N5, ñîîòâåòñòâåííî, îòâå÷àåò çà âûáîð ãðàôè÷åñêîãî ðåæèìà, N6 - çà âûáîð òåêñòîâîãî ðåæèìà} end; initialization Buff := TBitmap.Create; Buff.Width := Screen.Width; Buff.Height := Screen.Height; finalization Buff.Free; end. |
помогите поправить код на Delphi
, вылетает с ошибкой elisterror list index out of bounds (0)
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
Здравствуйте знатоки. Задали задачку по мат. моду, нужно реализовать программу которая моделирует движение космического корабля относительно земли. В принципе писать можно на чем угодно, в основном пишут на маткаде и матлабе, я выбрал на делфи. Набросал код, но вылетает с ошибкой, блин хоть убей не пойму где косяк, поправьте пожалуйста. Прога запускается, но когда нажимаешь на кнопку для расчета вылетает с ошибкой elisterror list index out of bounds (0) код ниже
procedure TForm1.Button1Click(Sender: TObject); var //——————————————— x,y,z,time,vx,vy,vz,rad_v:array[0..5000] of real ; TT,vs,v0,t,dt:Extended; h,h2,r,MM,G,m:Extended; i,j,k:integer; begin Chart1.Series[0].Clear; //Chart1.Series[1].Clear; //Chart1.Series[2].Clear; if edit1.Text =» then ShowMessage(‘Введите скорость станции!’) else Begin if edit2.Text =» then ShowMessage(‘Введите скорость аппарата!’) else Begin h:=strtofloat(Edit1.Text); v0:=strtofloat(Edit2.Text); G:=6.67e-11;//—-гравит-я пост MM:=6e+24;//—масса Земли m:=strtofloat(Edit3.Text); //масса аппарата h2:=6400000;//радиус Земли(м) h:=h*h2; R:=h+h2; vs:=sqrt(G*MM/R);//скорость t:=0; //——-время dt:=10;//——шаг по времени TT:=(2*Pi*(r+h))/vs; //——-период станции k:=1000; //———————————— t:=dt; i:=0; time[0]:=0; //—Начальные условия x[0]:=R; y[0]:=0; z[0]:=0; vx[0]:=0; vy[0]:=vs; vz[0]:=v0; //rad_v[0]:=sqrt(x[0]*x[0]+y[0]*y[0]+z[0]*z[0]); //showmessage(floattostr(R)); //showmessage(floattostr(rad_v[0])); while (i<5000) do begin rad_v[i]:=sqrt(x[i]*x[i]+y[i]*y[i]+z[i]*z[i]); if rad_v[i]=0 then begin showmessage(‘радиус вектор=0’); showmessage(floattostr(i)); break; end; vx[i+1]:=vx[i]-(G*MM*x[i]*dt)/(rad_v[i]*rad_v[i]*rad_v[i]*m); x[i+1]:=x[i]+dt*vx[i+1]; vy[i+1]:=vy[i]-(G*MM*y[i]*dt)/(rad_v[i]*rad_v[i]*rad_v[i]*m); y[i+1]:=y[i]+dt*vy[i+1]; vz[i+1]:=vz[i]-(G*MM*z[i]*dt)/(rad_v[i]*rad_v[i]*rad_v[i]*m); z[i+1]:=z[i]+dt*vz[i+1]; i:=i+1; // t:=t+dt; if i<>0 then begin t:=t+dt; time[i]:=t; end; end; // showmessage(floattostr(rad_v[0])); //—————график————————- Chart1.Series[0].XValues.Order:=loNONE; for j:=0 to i-1 do begin Chart1.Series[0].AddXY(time[j],rad_v[j]); end; //————————————— |
Павел Калугин |
|
Вылеет за границы списка. Список тут Chart1.Series. Возможно он пуст? То есть в нем отсутствует значение с индексом 0 Добавлено 26.01.10, 12:50 |
mnemonik |
|
ммм, что то не понял, напишите пожалуйста подробнее. Сообщение отредактировано: mnemonik — 26.01.10, 12:55 |
ttiger |
|
Moderator Рейтинг (ф): 166 |
Цитата mnemonik @ 26.01.10, 12:42 когда нажимаешь на кнопку для расчета вылетает с ошибкой elisterror list index out of bounds (0) код ниже Кнопка расчета — Button1? Наведи курсор на строку
Chart1.Series[0].Clear;
и нажми F5 (появится брекпойнт). Скорее всего, ошибка в первой строчке. Ты не задал серии в чарте. |
ttiger |
|
Moderator Рейтинг (ф): 166 |
Вопрос решен или нет? |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- ПОМОЩЬ СТУДЕНТАМ
- Следующая тема
[ Script execution time: 0,0332 ] [ 15 queries used ] [ Generated: 21.06.23, 19:17 GMT ]
delphi
i posted a question on Fixing an error in a method declaration in a form in Delphi but after getting it fixed another error popped up upon compiling and its saying project project1.exe raised exception class EStringListError with message ‘list index out of bounds(0)’.when i press continue its not working but when i press break its flashing on the code neraz:=true;
this is my code below
Procedure Reload;
var
i:integer;
begin
form1.ListBox1.Clear;
form1.ListBox2.Clear;
if neraz then
HD;
neraz:=true;//..................here
form1.Label3.Caption:='free: '+inttostr(vs*32)+' byte'+#10#13+'cluster size = 32 bytes';
i:=TABLE[nk1].nach;
KolP1:=0; KolP2:=0;
while (FAT[i]<>1024) do begin
if TABLE[fat[i]].tip then begin
form1.ListBox1.Items.Add('dir>'+TABLE[fat[i]].name);
inc(kolP1);
end
else
if TABLE[fat[i]].format='txt' then
form1.ListBox1.Items.Add('f_text> '+TABLE[fat[i]].name+'.'+TABLE[fat[i]].format)
else
form1.ListBox1.Items.Add('f_bin> '+TABLE[fat[i]].name+'.'+TABLE[fat[i]].format);
if (fat[i]<>0) then
i:=fat[i];
end;
i:=TABLE[nk2].nach;
while (FAT[i]<>1024) do begin
if TABLE[FAT[i]].tip then begin
form1.ListBox2.Items.Add('dir>'+TABLE[fat[i]].name);
inc(kolP2)
end
else
if TABLE[fat[i]].format='txt' then
form1.ListBox2.Items.Add('f_text> '+TABLE[fat[i]].name+'.'+TABLE[fat[i]].format)
else
form1.ListBox2.Items.Add('f_bin> '+TABLE[fat[i]].name+'.'+TABLE[fat[i]].format);
if (fat[i]<>0) then
i:=fat[i];
end;
vfail;
end;
procedure HD;
var
i: integer;
begin
for i := 0 to 49 do begin
with form2.ListView1.Items[i] do begin
SubItems[0] := TABLE[i].name;
SubItems[1] := TABLE[i].format;
if TABLE[i].tip then
SubItems[2] := 'folder'
else
SubItems[2] := 'file';
SubItems[3] := IntToStr(TABLE[i].nach);
SubItems[4] := IntToStr(TABLE[i].razmer);
end;
form2.ListView2.Items[i].SubItems[0] := IntToStr(fat[i]);
end;
end;
Related Question
Автор | Сообщение |
---|---|
Заголовок сообщения: List index out of bounds (0) и еще пара замечаний Добавлено: 19 ноя 2021, 04:39 |
|
|
Долгое время использовал бесплатную версию DBGridEh в своем проекте. Проект этот создан на D7. В принципе все устраивало, компонент стабильный, возможностей достаточно много, но… Не хватало самую малость. CellButtons — то что мне нужно сейчас. Установил оценочную версию EhLib.VCL 10.1 и началось… Вложение:
2. Кидаем датасет, добавляем колонки в грид, добавляем CellButtons. В первой у меня заполнен Glyph, Вторая DropDown, третья тоже Glyph но из ImageList. Вроде бы все хорошо, но как-то некрасиво. Вложение:
Делаем Uses XPMan. Теперь красиво, но, что стало с кнопками? Почему теперь не видно картинки на неактивных кнопках? Вложение:
Ну вот как покупать такое «изделие»? Ну и как пожелание: Вложение:
|
Вернуться наверх |
|
EhLibSupport |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 23 ноя 2021, 23:37 |
|
Добрый день. Цитата: 1 На гриде без столбцов или с двумя созданными столбцами. Есть ли у вас возможность проверить, воспроизводится ли ошибка на других компьютерах, других ОС, других Формах (TForm)? Цитата: 2. Кидаем датасет, добавляем колонки в грид, добавляем CellButtons. В первой у меня заполнен Glyph, Вторая DropDown, третья тоже Glyph но из ImageList. Вроде бы все хорошо, но как-то некрасиво. Можете описать конкретнее, как должны отрисовываться кнопки чтобы выглядеть красиво? Цитата: Делаем Uses XPMan. Теперь красиво, но, что стало с кнопками? Почему теперь не видно картинки на неактивных кнопках? Можете прислать ваши файлы формы (dfm+pas) на support@ehlib.com ? Цитата: Есть гриды с высотой строки больше стандартной. а CellButtons в таких строках имеют стандартную высоту. Выглядит это не очень. Хотелось бы иметь возможность менять высоту этих кнопок в соответствии с высотой строк или произвольно, а также размещать эти кнопки в ряд не только горизонтально, но и вертикально, если высота строки это позволяет. К сожалению в текущей версии ручная высота кнопок и вертикальное размещение не поддерживаются. _________________ |
Вернуться наверх |
|
edward_1 |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 24 ноя 2021, 07:46 |
|
В предыдущем посте я использовал Windows XP [Версия 5.1.2600], Delphi 7 Professional (Build 4.453), EhLib 10.1.022 Evaluation. Вложение:
DrawBackTime = edbtAlwaysEh Вложение:
В последнем случае наш битмап больше похож на маску, нежели на изображение. В старых версиях DBGridEh в EditButtons битмапы отображались корректно, их было хорошо видно: Вложение:
Хочу заметить, на данном этапе теста значение свойства HorzPlacement может быть любым. Вложение:
Ну и копирование — вставка грида вызывает ошибку, описанную в предыдущем посте. |
Вернуться наверх |
|
edward_1 |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 24 ноя 2021, 08:58 |
|
Установил EhLib 10.1.023 Evaluation version. Ничего не изменилось. Все замеченные баги на месте. |
Вернуться наверх |
|
aush |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 24 ноя 2021, 09:17 |
|
Оффтопик конечно, но в 2021 году стоит «закопать обоих стюардесс» (XP & Delphi7) |
Вернуться наверх |
|
edward_1 |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 24 ноя 2021, 09:43 |
|
aush писал(а): Оффтопик конечно, но в 2021 году стоит «закопать обоих стюардесс» (XP & Delphi7) Это когда делать нечего, можно и закопать. А когда это проект в D7, в котором 150+ юнитов и форм, выполняющий свои задачи на 100% — закапывать тут нечего. Это не касается XP. |
Вернуться наверх |
|
EhLibSupport |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 01 дек 2021, 14:51 |
|
Добрый день. — — — Цитата: В последнем случае наш битмап больше похож на маску, нежели на изображение. В старых версиях DBGridEh в EditButtons битмапы отображались корректно, их было хорошо видно: Можете написать, в какой версии EditButton точно работали? _________________ |
Вернуться наверх |
|
edward_1 |
Заголовок сообщения: Re: List index out of bounds (0) и еще пара замечаний Добавлено: 03 дек 2021, 05:32 |
|
EhLibSupport писал(а): Ошибку “с многочисленным сообщением «List index out of bounds (0)»” так воспроизвести и не удалось. Странно. При копировании — вставке грида мне наоборот, не удается избежать данной ошибки. Даже если грид пустой. edward_1 писал(а): Можете написать, в какой версии EditButton точно работали? В версии 5.2 кнопки отображались так: Вложение:
edward_1 писал(а): Для отображения картинки в текущей версии можно установить EditButton. AutoFade = False Если установить EditButton. AutoFade = False, получаем изображение всех кнопок одинаковым, без учета активной/неактивной кнопок: Вложение:
Если же использовать например PngImageList, то все нормально: Вложение:
Выходит, добавив новые возможности отображения кнопок с использованием ImageList, старые методы поломали. |
Вернуться наверх |
|