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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2009, 18:26   #1
Sanakan
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 47
По умолчанию StringGrid в Delphi 7

Задача написать программу, которая вытаскивает иконку из ехе файла и заносит в выделенную ячейку СтрингГрида. При нажатие на ячейку 2 раза надо чтобы иконка из этой ячейки поместилась в иконку формы, а если нажать 3 раза то из ячейки удаляется иконка. Проблема с действиями при нажатие на ячейку...( Нужна помощь! Зарание спасибо!

Код:
  public
   CurItem: LongInt;
   Mas: array[0..255] of integer;
   per:boolean;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
CurItem:=0;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if StringGrid1.Objects[aCol,aRow] is Ticon then 
StringGrid1.Canvas.Draw(Rect.Left+56,Rect.Top+24,Ticon(StringGrid1.Objects[aCol,aRow]));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
PNAme: array[0..255] of char;
Fname: string[13];
N: word;
iconH,iconF: Hicon;
begin
with OpenDialog1 do begin
              if not Execute then exit;
              Fname:=ExtractFileNAme(Filename);
              StrPcopy(Pname,FileNAme); 
              end;
              n:=0;
with StringGrid1 do
              repeat
              iconH:=Extracticon(Hinstance,Pname,n); 
              if iconH<=1 then break; 
              col:=CurITem mod ColCount;
              if(CurITem div ColCount)>=RowCount then 
              RowCount:=RowCount+1;
              row:=CuriTem div ColCount;
              Cells[Col,Row]:=Fname+'#'+inttostr(n);
              Objects[Col,Row]:=Ticon.Create;
              with Objects[Col,Row] as Ticon do  
              Handle:=iconH;      
              CurItem:=CurItem+1; 
              n:=n+1;      
              until false;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveDialog1.Execute then 
  with StringGrid1 do  
    with Objects[Col,Row] As Ticon do 
      SaveToFile(SaveDialog1.FileName); 
end;



procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
 var
 i:integer;
 str:string;
 begin
   str:=StringGrid1.Cells[ACol,ARow];
   if ARow=0 then
     i:=ACol
   else i:=(ACol+1)+((ARow)*4);
   Mas[i]:=Mas[i]+1;

   if i=2 then
    begin
    with StringGrid1.Objects[ACol,ARow] as Ticon do
        //????
    end;

   if i=3 then
    begin
       //????
    end;
 end;

end.
Sanakan вне форума Ответить с цитированием
Старый 05.03.2009, 18:36   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Вы имели в виду это?
Код:
if i=2 then
    begin
    with StringGrid1.Objects[ACol,ARow] as Ticon do
        Form1.icon=(StringGrid1.Objects[ACol,ARow] as Ticon);
    end;

   if i=3 then
    begin
       (StringGrid1.Objects[ACol,ARow] as Ticon):=nil;
    end;
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 05.03.2009, 18:57   #3
Sanakan
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 47
По умолчанию

Да
Но только "(StringGrid1.Objects[ACol,ARow] as Ticon):=nil;" не работает
Sanakan вне форума Ответить с цитированием
Старый 05.03.2009, 18:58   #4
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Ну попробуйте StringGrid1.Objects[ACol,ARow].Clear или как там еще...
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг
Dj_smart вне форума Ответить с цитированием
Старый 05.03.2009, 19:00   #5
Sanakan
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 47
По умолчанию

Точнее Free)
Спасибо большое!
Sanakan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Excel и StringGrid в Delphi monushka Помощь студентам 28 28.10.2009 16:33
помогите со stringgrid в delphi aks Помощь студентам 8 12.02.2009 16:18
помогите со stringgrid в delphi aks Общие вопросы Delphi 4 03.02.2009 17:13
Delphi:Работа с Listbox и StringGrid Shaitan Помощь студентам 2 11.11.2008 21:04
Delphi(Stringgrid) подскажите zzzzz Помощь студентам 1 14.07.2007 11:51