Mam takie pytanie: jak mozna skorzystac z systemowego dialogu do wyboru ikon?
Cześć :-)
Pobierz na formę komponent TOpenPictureDialog
- po otworzeniu tego okienka dialogu będziesz mógł wybierać pliki
ikon (*.ico) a nawet będziesz je miał z podglądem ;-)
Kwestia otwarta tego co będziesz chciał z nimi robić ?
- edytować, wklejać na formę lub co innego ....
Nie skonkretyzowałeś tego w swoim pytaniu hmm...
Pobierz na formę komponent TOpenPictureDialog
TOpenPictureDialog w moim przypadku jest raczej niedobry dla ikon :-/. W Win jest taki dialog, który pozwala wybrać ikony siedzące również w plikach binarnych, np. exe, dll, cpl, itd. Chodzi mi włoaśnie o to okno.
Re ;) znowu tu zajrzałem i...
TOpenPictureDialog w moim przypadku jest raczej niedobry dla ikon :-/. W Win jest taki dialog, który pozwala wybrać ikony siedzące również w plikach binarnych, np. exe, dll, cpl, itd. Chodzi mi włoaśnie o to okno.
Możesz wczytywać pliki posiadające ikony standardowym oknem dialogu np:
Uses ShellApi, //cd...
Procedure TForm1.Button1Click(Sender: TObject);
var
poz :Integer;
Begin
if OpenDialog1.Execute then
begin
poz:=0; //pozycja ikony w zasobach wczytanego pliku
Image1.Picture.Icon.Handle:=ExtractIcon(Hinstance,PChar
(OpenDialog1.FileName),poz);
//skopiowanie obrazka ikonki z komponentu TImage do TImageList
ImageList.AddIcon(Image1.Picture.Icon);
end;
End;
PS.
Umieszczając to w jakiejś w pętli możesz za jednym zamachem pobrać
tyle ikon ile posiada plik - pozostaje kwestia wyświetlenia tych ikonek
na jakimś komponencie (np. ComboBox).
Trzeba by wówczas przerysować ikony z ListView do ComboBoX.
Następnie klikając na ikonkę w ComboBox - można by ją zapisywać
jako plik *.ico - eh... ale to insza inszość ;)
A w ogóle to dzisiaj brak mi inwencji twórczej ;))
Tak tu zajrzałem by mądrego postrugać haha
Kręce się jak kot z pęcherzem.. :-)
ale akurat pisałem post na temat wklepywania bitmapek do TImage więc myśle że i Tobie się przyda do wyświetlania tych ikonek (jak w temacie powyżej...)
var
kl :Integer;
Procedure TForm1.Button1Click(Sender: TObject);
var
tmpImage :TImage; //tymczasowa zmienna komponentu TImage
poz :Integer;
Begin
tmpImage:=TImage.Create(nil); //kreuje tymczasową zmienną komponentu
tmpImage.AutoSize:=true; //ustawia opcję dopasowania rozmiaru do obrazka
if OpenDialog1.Execute then
begin
for poz:=0 to 255 do
begin
tmpImage.Picture.Icon.Handle:=ExtractIcon(Hinstance,PChar(OpenDialog1.FileName),poz);
if tmpImage.Width > 0 then
begin
//tu rysujesz bitmapkę na komponencie TImage
Image1.Canvas.Draw(kl,0,tmpImage.Picture.Graphic);
kl:=kl+ tmpImage.Width; //przesunięcie pozycji o szerokość bitmapki
end;
end;
tmpImage.Free; //zwalnia tymczasową zmienną
end;
End;
PS. To jest tylko myśl przewodnia procedury ;) sam ją doszlifuj np:
zmień wywołanie pętli może być repeat ... until itp..
Hmmm... qrde jestem tu na tym forum nowicjuszem i przy rejestracji pominołem dane odnośnie maila, gg itd ...
Jak mogę te dane do swej tożsamości dodać .. ?
czy na nowo musze się ponownie zarejestrować ?
Oto jest pytanie :-/
Dzieki wszystkim, bardzo mi pomogliscie [hurra] [cya]