Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2008, 22:37   #1
EThread
 
Регистрация: 05.10.2008
Сообщений: 9
По умолчанию Помогите со StringGrid-ом и картинками, плииз!!!Очень нужно!

На форме есть StringGrid (2 столбца х 3 строки).
Как сделать так, чтобы при нажатии на кнопку растровая картинка (после её загрузки через OpenDialog) добавлялась в эту таблицу, при чём в ячейки по порядку (т.е сначала первая строка колонка1, 2; потом вторая строка, колонка 1, 2 .. и т.д). Одно нажатие на кнопку - одно добавление в таблицу...
А потом, когда 3 строки таблицы будут заполнены, появлялась новая с возможностью добавления картинки в неё.
EThread вне форума Ответить с цитированием
Старый 06.10.2008, 08:06   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Если вам только картинки загружать то лучше использовать DrawGrid.
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var B:TBitMap;
     i,j:integer;
begin
 B:=TBitMap.Create;
 if Opendialog1.Execute then
 B.LoadFromFile(openDialog1.FileName);
 DrawGrid1.Canvas.StretchDraw(DrawGrid1.CellRect(i,j),B);
 B.Free;
а уж в каком порядке i,j изменять, решайте сами

Последний раз редактировалось SERG1980; 06.10.2008 в 08:13.
SERG1980 вне форума Ответить с цитированием
Старый 06.10.2008, 14:30   #3
EThread
 
Регистрация: 05.10.2008
Сообщений: 9
По умолчанию

Спасибо большое за совет.
Вот что сама сделала:


procedure TForm1.Button1Click(Sender: TObject);
var i :integer;
begin
if OpenPictureDialog1.Execute then
bm:=TBitMap.Create
else Exit;
for i:=0 to StringGrid1.RowCount-1 do
StringGrid1.Rows[i].Clear;
bm.LoadFromFile(OpenPictureDialog1. FileName);
x:=StringGrid1.Col;
y:=StringGrid1.Row;
Canvas.StretchDraw(StringGrid1.Cell Rect(x,y),bm);
StringGrid1.SetFocus;

end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (bm<> nil) and (ACol=x) and (ARow=Y) then
StringGrid1.Canvas.StretchDraw(Rect , bm);
end;


Только затрудняюсь теперь как сделать,чтобы картинки располагались именно по нужным ячейкам. Цикл не придумывается нужный. Несколько часов убила на разные варианты... Туплю что-то(

Может быть знает кто-нибудь?

Последний раз редактировалось EThread; 06.10.2008 в 14:33.
EThread вне форума Ответить с цитированием
Старый 06.10.2008, 15:13   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Код:
implementation

{$R *.dfm}
var i,j:integer;

procedure TForm1.Button1Click(Sender: TObject);
var B:TBitMap;
begin
 B:=TBitMap.Create;
 if Opendialog1.Execute then
 B.LoadFromFile(openDialog1.FileName);
 DrawGrid1.Canvas.StretchDraw(DrawGrid1.CellRect(j,i),B);
 if i=DrawGrid1.RowCount-1 then
 begin
  i:=1;
  inc(j);
  if j=drawgrid1.ColCount then exit

  end
  else inc(i);
 B.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=1;
j:=1;
end;
SERG1980 вне форума Ответить с цитированием
Старый 06.10.2008, 15:25   #5
EThread
 
Регистрация: 05.10.2008
Сообщений: 9
По умолчанию

Спасибо Вам ещё раз)
EThread вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Люди помогите !!! Очень срочно нужно. (ПАСКАЛЬ) Jey_RO Помощь студентам 2 27.05.2008 18:52
Помогите исправить программу нужно очень срочно! Алена Помощь студентам 3 04.11.2007 18:28
Очень нужно сделать 2 програмы!!! Help !!! Помогите !!! Nazarik Помощь студентам 7 24.02.2007 01:51