Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

pagecontrol и speedbutton   Найти похожие ветки 

 
bogdan   (2006-03-04 21:14) [0]

привет! Извините , что тревожу!
если вам не сложно , обьясните пожалуйста, следующее: есть pagecontrol, menu,  на каждой вкладке размещены speedbuttonsя бы хотел сделать так, чтоб можно было при клике на какой-то speedbutton правой кнопкой мыши, отображалось меню, (хотелось бы вызывать лишь одно меню для всех speedкнопок поскольку на каждой кнопке ставить меню громоздко и неудобно), и при выборе пункта можно узнать имя speedbutton, чтоб потом загрузить в нее иконку(как загрузить тоже не знаю, поскольку в glyph загружается лишь bmp ).
или подскажите где можно узнать. искал на сайтах о delphi но не нашел подобного
заранее спасибо!
подскажите как загрузить рисунок и я покажу как что выглядит! сори за ошибки!


 
Zeqfreed ©   (2006-03-04 21:25) [1]


> сделать так, чтоб можно было при клике на какой-то speedbutton
> правой кнопкой мыши, отображалось меню

У SpeedButton есть же св-во PopupMenu, просто в инспекторе объектов выбираешь для каждой кнопки меню и все.

> потом загрузить в нее иконку

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
 i : TIcon;
begin
 i := TIcon.Create();
 try
  i.LoadFromFile("C:\1.ico");
  with SpeedButton1.Glyph do begin
   Width := i.Width;
   Height := i.Height;
   Canvas.Draw(0, 0, i);
  end;
 finally
  i.Free;
 end;
end;


Примерно так.


 
jenya   (2006-03-04 21:32) [2]

to bogdan:

Выложи пожалуйста текст проги ;) если конечно не в лом ...


 
bogdan   (2006-03-05 12:07) [3]

зачем же текст? вот он выше! это мне и нужно!
спасибо Zeqfreed
прошу не удалять тему потому-что еще по-любому будут вопросы!"


 
bogdan   (2006-03-05 12:07) [4]

зачем же текст? вот он выше! это мне и нужно!
спасибо Zeqfreed
прошу не удалять тему потому-что еще по-любому будут вопросы!"


 
Гаврила ©   (2006-03-05 13:24) [5]

Если надо узнать, от какого именно button было вызвано popupmenu, то у него есть свойство
popupcomponent


 
bogdan   (2006-03-06 00:58) [6]

to Гаврила
А как именно! Плиз!


 
Плохиш ©   (2006-03-06 01:15) [7]

TPopupMenu.OnPopup + F1
TPopupMenu.PopupComponent + F1


 
bogdan   (2006-03-06 01:43) [8]

Нашел и сразу вопрос!
Значит с помощью такой строки в меню можно узнать имя компонента, на котором был клик мышки
- PopupMenu1.PopupComponent.Name (припустим клик был на speedbutton24)
Но как дальше работать с этим самим Speedbutton24(поменять название и др.)
тоесть например так написать нельзя почему-то
PopupMenu1.PopupComponent.Name.caption:="Нашел компонент ";Спасибо заранее!


 
Плохиш ©   (2006-03-06 02:20) [9]


> тоесть например так написать нельзя почему-то
> PopupMenu1.PopupComponent.Name.caption:="Нашел компонент";

Может пора уже отложить топтание кнопок и занятся изучением теории?


 
bogdan   (2006-03-08 00:52) [10]

все разобрался! но еще нужно как-то подогнать размеры иконки под размеры кнопки speedbutton! загружаю так как написал Zeqfreed ©
подскажите как "стиснуть иконку"


 
bogdan   (2006-03-11 22:44) [11]

Привет !
как загрузить иконку с любого выбраного файла если следующее не помогает!
то есть для прог с расширением exe работает а для всех остальных типов файлов нет!

(например как извлечь иконку типа файла *.Chm )

ic.Handle := ExtractIcon(Application.Handle,PChar(OpenDialog1.FileName), 0);


 
bogdan   (2006-03-11 22:51) [12]

вот код проседуры

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 ic: TIcon;
 i, count:integer;
 w: integer;
 TheBitmap: TBitmap;
begin
 TheBitmap := TBitmap.Create;
ic := TIcon.Create;

if OpenDialog1.Execute then begin
//count := ExtractIcon(Application.Handle,PChar(OpenDialog1.FileName), );
//    for i := 0 to count - 1 do
ic.Handle := ExtractIcon(Application.Handle,PChar(OpenDialog1.FileName), 0);
// if ic.Handle= 1 then ShowMessage("Галяк ");
TheBitmap.Width := Ic.Width;
 TheBitmap.Height := Ic.Height;
 TheBitmap.Canvas.Draw(0, 0, Ic);
SpeedButton1.Glyph.Width:=28;
SpeedButton1.Glyph.Height:=28;
 SpeedButton1.Glyph.Canvas.StretchDraw(Rect(0, 0, 28, 28),TheBitmap);

//SpeedButton1.Glyph.Canvas.Draw(0,0,ic);
 TheBitmap.Free;
ic.Destroy;

end;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1142170734
Wolffen
2006-03-12 16:38
2006.03.26
Какой процедурой запускаются приложения


15-1141150109
strannik-ivan
2006-02-28 21:08
2006.03.26
dll+потоки


15-1139987532
вразлет
2006-02-15 10:12
2006.03.26
Российский спорт пошел вверх?


15-1141401440
ZeFiR
2006-03-03 18:57
2006.03.26
Rag Doll Kung Fu


2-1142278839
*<ATAS>*SHERIFF
2006-03-13 22:40
2006.03.26
ClientSocket