Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.094 c
3-1138877901
Alex_1234
2006-02-02 13:58
2006.03.26
Группировка по временным интервалам...


15-1141577737
Vendict
2006-03-05 19:55
2006.03.26
Linux + GPRS


9-1127015559
bulanov
2005-09-18 07:52
2006.03.26
Завершение загрузки текстур (GLScene)


15-1141060320
Kerk
2006-02-27 20:12
2006.03.26
Пришла SMS. Вместо номера отправителя - строка "FBI".


2-1141916211
VitV
2006-03-09 17:56
2006.03.26
Interbase+Delphi7. Связь таблиц.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский