Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.042 c