Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.078 c
1-1165740150
Makhanev Alexander
2006-12-10 11:42
2007.02.04
Таскать форму правой кнопкой мыши....


15-1167329662
Rouse_
2006-12-28 21:14
2007.02.04
Вот вам для разминки мозгов.


2-1168541973
Volfram
2007-01-11 21:59
2007.02.04
InDy 10, ReadBytes


3-1163258294
Gulnaz
2006-11-11 18:18
2007.02.04
Как создать поиск


15-1168654314
Константинов
2007-01-13 05:11
2007.02.04
Какой будет жизнь лет этак через двадцать?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский