Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

StringGrid   Найти похожие ветки 

 
Barma   (2007-01-16 14:30) [0]

подскажите что сдесь нетак?
var
 Form1: TForm1;
 picture: array of TBitMap;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var X: integer;
begin
if OpenPictureDialog1.Execute then begin
 X := High(picture)+1;
 SetLength(Picture, X+1);
 Picture[X] := TBitMap.Create;
 Picture[X].LoadFromFile(OpenPictureDialog1.FileName);
 StringGrid1.ColCount := X;
 StringGrid1.Cells[X,1] := intTostr(X);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
 var X: integer;
begin
if (ARow = 1) then begin
  X := strToint(StringGrid1.Cells[ACol,1]);
  StringGrid1.Canvas.StretchDraw(Rect,picture[X]);
  end;
  end;
end.

ошибку выдаёт :(


 
Плохиш ©   (2007-01-16 15:03) [1]


> ошибку выдаёт :(

Предлагаешь пойти кофе заварить?


 
Barma ©   (2007-01-16 15:13) [2]

серьёзно подскажите не все же всё сразу понимают


 
clickmaker ©   (2007-01-16 15:36) [3]

а чего тут непонятного?


 
Palladin ©   (2007-01-16 15:38) [4]


> if (ARow = 1) then begin
>   X := strToint(StringGrid1.Cells[ACol,1]);
>   StringGrid1.Canvas.StretchDraw(Rect,picture[X]);
>   end;
>   end;

один лишний end, учись код свой сам в уме компилировать


 
ASoft   (2007-01-16 17:02) [5]


> Palladin ©   (16.01.07 15:38) [4]
>

пригляделся.. что-то не вижу лишнего end"a :)

procedure TForm1.Button1Click(Sender: TObject);
var X: integer;
begin
if OpenPictureDialog1.Execute then begin
.....
end;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var X: integer;
begin
if (ARow = 1) then begin
.....
end;
end;

end.


мож плохо пригляделся...


 
Palladin ©   (2007-01-16 17:13) [6]

это я плохо пригляделся...


 
Desdechado ©   (2007-01-16 17:20) [7]

> ошибку выдаёт :(
Завари людям кофе, они погадают на твою ошибку

http://www.ln.ua/~openxs/articles/smart-questions-ru.html


 
Игорь Шевченко ©   (2007-01-16 17:21) [8]

Palladin ©   (16.01.07 17:13) [6]

Вот так все лишние end"ы сразу видно:

var  Form1: TForm1;  picture: array of TBitMap;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var X: integer;  begin  if  OpenPictureDialog1.
Execute then  begin X := High (  picture )+  1;
SetLength(Picture, X+1); Picture[X] := TBitMap.
Create; Picture [X].LoadFromFile (
OpenPictureDialog1.  FileName) ;   StringGrid1.
ColCount :=  X;  StringGrid1. Cells [ X, 1 ] :=
intTostr ( X) ;  end;  end;  procedure  TForm1.
StringGrid1DrawCell(Sender: TObject; ACol,ARow:
Integer; Rect:  TRect;State  : TGridDrawState);
var X:integer; begin if ((ARow = 1)) then begin
X := strToint (StringGrid1.  Cells  [ACol ,1]);
StringGrid1.Canvas.StretchDraw(Rect,picture[X]);
end;end;end.


 
Barma ©   (2007-01-16 18:19) [9]

так никто ничего и неподскажет ?


 
TProgrammer   (2007-01-16 18:24) [10]

А ошибка на этапе выполнения или компилирования?


 
Desdechado ©   (2007-01-16 18:30) [11]

Barma ©   (16.01.07 18:19) [9]
ссылку-то почитай
выводы сделай


 
ASoft   (2007-01-16 18:31) [12]


> Barma ©   (16.01.07 18:19) [9]
>
> так никто ничего и неподскажет ?
>

где ошибка? F7 пробовал?


 
TProgrammer   (2007-01-16 18:43) [13]

Может быть ошибка в том, что процедура прорисовки будет вызываться раньше, чем первое нажатие на кнопку, т.е pictures будет не заполнено?


 
sniknik ©   (2007-01-16 19:31) [14]

> так никто ничего и неподскажет ?
секретными ошибками занимается 4-й отдел...

а вообще сделал бы проверку на размерность массива прежде чем к номеру подобным образом полученного элемента обращаться...


 
Barma ©   (2007-01-17 14:09) [15]

с ошибкой разобрался теперь дело в том что всё нормально выполняется добавляет ячейки после нажатия кнопки и выбора картинкино в них почемуто ничего нерисует,:(,не подскажите мастера в чом щас тут дело ?


 
sniknik ©   (2007-01-17 19:52) [16]

> в чом щас тут дело ?
у тебя ошибка в программе.


 
brother ©   (2007-01-18 06:11) [17]

А разведчиков где готовят? Информации минимум, а вопросов максимум!)


 
Barma ©   (2007-01-19 10:48) [18]

ну щас вроде бы всё нормально токо непонятно одно текст щас такой procedure TForm1.Button1Click(Sender: TObject);
var X: integer;
begin
if OpenPictureDialog1.Execute then begin
 X := High(picture)+1;
 SetLength(Picture, X+1);
 Picture[X] := TBitMap.Create;
 Picture[X].LoadFromFile(OpenPictureDialog1.FileName);
 StringGrid1.ColCount := X;
 StringGrid1.Cells[X,0] := intTostr(X);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
 var X: integer;
begin
if (ARow = 1)then begin
  X := strToint(StringGrid1.Cells[Acol,0]);
  StringGrid1.Canvas.StretchDraw(Rect,picture[x]);
  end;
  end;
end.


щас рисует в первой строке подряд картинки какие выбираеш ну эт понятно потомучто указано if (ARow = 1)then begin а мне же нужно чтоб он рисовал с нулевой (ну с самого начала типа акол 0 аров 0)но если поменять if (ARow = 0)then begin то сразу ошибка, если можно проверьте плиз, почему так ?. за ранее спасиба


 
icWasya ©   (2007-01-19 10:56) [19]

допустим массив picture по началу пустой
тогда High(picture)=-1;

X := High(picture)+1;              // X = 0
SetLength(Picture, X+1);         // SetLength( , 1);
Picture[X] := TBitMap.Create;  
Picture[X].LoadFromFile(OpenPictureDialog1.FileName);
StringGrid1.ColCount := X;      // ColCount = 0 !!!!!!!!!!!!
StringGrid1.Cells[X,0] := intTostr(X); // присваивание в несуществующий столбец


 
Плохиш ©   (2007-01-19 11:00) [20]


> но если поменять if (ARow = 0)then begin то сразу ошибка,
>  если можно проверьте плиз, почему так ?.

А аФФтар-то - идиот... Ему почти 3! дня задают уточняющие вопросы, а он всё своё долдонит...


 
Barma ©   (2007-01-19 16:54) [21]

можно и неругаться,может я нетак выразился конечно дело в том что я написал что с этим я разобрался я про другое же после спросил веть почему рисуется во второй строке всё(не в колонке а в Строке!!(колонки как положено прорисовываются и добавляется по одной), а мне всё про колонки обьясняют),если точнее то почему нельзя вот сдесь if (ARow = (нельзя 0 поставить))иначе ошибка,просто получается что таблица начинает заполнятся с координат(0,1),(1,1),(2,1),(колонка,строка);


 
Плохиш ©   (2007-01-19 16:57) [22]


> Barma ©   (19.01.07 16:54) [21]


> если точнее то почему нельзя вот сдесь if (ARow = (нельзя
> 0 поставить))иначе ошибка

Почему "нельзя" в данном твоём случае написано в "ошибка", но ты эту "ошибка" запрятал у себя в тёплом месте и никому не показываешь, поэтому [20] остаётся в силе.


 
Barma ©   (2007-01-19 17:58) [23]

нувот к примеру полностью вырезаный код он рабочий пусть чуть каряво написаный но рабочий
procedure TForm1.Button1Click(Sender: TObject);
var X: integer;
begin
if OpenPictureDialog1.Execute then begin
 X := High(picture)+1;
 SetLength(Picture, X+1);
 Picture[X] := TBitMap.Create;
 Picture[X].LoadFromFile(OpenPictureDialog1.FileName);
 StringGrid1.ColCount := X;
 StringGrid1.rowCount := x;
 StringGrid1.Cells[X,0] := intTostr(X);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
 var X: integer;
begin
if (ARow = 1)then begin
  X := strToint(StringGrid1.Cells[Acol,0]);
  StringGrid1.Canvas.StretchDraw(Rect,picture[x]);
  end;
  end;
end.


так вот тут вопщем всё идёт токо с колонками .строк мы вопще почти некасаемся токо в момент указания в какой строке начать прорисовку if (ARow = 1)then begin, так вот и вопрос в этом почему нехочет работать если указать аров(строку!)в 0,вот вроде так


 
Johnmen ©   (2007-01-19 18:54) [24]

М-дя... Случай неоперабельный...:)



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.033 c
2-1168994214
M1sT
2007-01-17 03:36
2007.02.04
Поиск по файлам, типа *.xls, *.mdb, *.dbf


15-1168936703
NLex
2007-01-16 11:38
2007.02.04
Login в DLL


15-1168712729
Ziv
2007-01-13 21:25
2007.02.04
USB 1.0


4-1157143168
NeiRo_St
2006-09-02 00:39
2007.02.04
Web-camera


15-1169031685
click
2007-01-17 14:01
2007.02.04
буква или цифра....?