![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#16  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Здравствуйте еще раз Alegun. 
		
	
		
		
		
		
		
	
		
		
	
	
	Опять создаю динамические компоненты, на этот раз TSpeedButton. По onclick гружу в него иконку с выбранного файла opendialog. Если просто создать несколько кнопок - сохраняет замечательно. Но вот с картинками проблемы, не сохраняются. Процедура OnClick: Код: 
	   sb: TsSpeedButton;
    S:array[1..20] of string;
....
implementation
.....
procedure TForm1.SBOnClick(Sender: TObject);
var Icon: TIcon;
   Pch: array[0..256] of Char;
   Ici: Word;
begin
  if S[(sender as TsSpeedButton).tag]='' then
    begin
      if sOpenDialog1.Execute then
      begin
       S[(sender as TsSpeedButton).tag]:=sOpenDialog1.FileName;
         (sender as TsSpeedButton).Glyph:=nil;
         Icon:=TIcon.Create;
         StrPCopy(Pch,S[(sender as TsSpeedButton).tag]);
         Icon.Handle:= ExtractAssociatedIcon(hInstance, Pch, Ici);
         (sender as TsSpeedButton).Glyph.Width:= Icon.Width;
         (sender as TsSpeedButton).Glyph.Height:= Icon.Height;
         (sender as TsSpeedButton).Glyph.Canvas.Draw(0, 0, Icon);
         Icon.Free;
       end;
        if S[(sender as TsSpeedButton).tag]='' then
            begin
                (sender as TsSpeedButton).Glyph:=nil;
            end
        else
      end
      else
      begin
      ShellExecute (Form1.Handle, nil, PChar(S[(sender as TsSpeedButton).tag]), nil, nil, SW_RESTORE);
       end;
end;Второй день ломаю голову. Толкните в правильном направлении, пожалуйста. Заранее спасибо! З.Ы. Не стал создавать новую тему, так как кнопка создается "Динамически" и пытаюсь сохранить вашим способом.  | 
| 
		 
			 
			#17  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
	
	
		
			
			  И вам не хворатьЯ делал в подобной ситуации примерно так - загонял глифы с кнопок в имиджлист а присвоение их для BitBtn Код: 
	with tbitbtn.Create(self) do 
begin
parent:= ...
ImageList1.GetBitmap({номер глифа в имиджлисте} 2, Glyph);
OnClick:= ...
// etc.
end;вам главное понять - что бы не требовалось воткнуть и куда, оно должно быть записано заранее. И всё удастся  | 
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
 
Gareth (29.10.2014)
  | ||