IT NEWS PC REVUE PC FORUM FreeBSDInternet time: @852
Obsah fóra
Pravidlá  •  Kontakt  •  Prihlásenie  •  Registrácia

Dala som si poradiť

O moje peniaze je postarané. A o vaše? www.partnersgroup.sk

Zbavte sa viazanosti

Za Samsung Galaxy Ace so zlatým O2 Paušálom zaplatíte teraz 12 €! pausal.o2.sk

Smartfón + navigácia

Ponuka smartfónov za najlepšie ceny a k tomu navigácia zadarmo - Telekom. Telekom.sk

Nepomáhajú Vám lieky?

Pomôžte vášmu telu v boji s ochorením. Odstráňte jedy z vášho organizmu. www.detoxipan.sk

Potrebujete peniaze?

Využite našu rýchlu pôžičku a súťažte o auto ŠKODA Fabia ! www.proficredit.sk

Asociacia suboru s programom

Zaslať odpoveď
AutorSpráva
Siriuse
Užívateľ
Užívateľ

Založený: 23.05.2009
Príspevky: 81
Bydlisko: Michalovce

PríspevokZaslal: So 06.06.09 18:10Odpovedať s citátomNávrat hore

Ako by som spravil asociaciu suboru s programom? Tak ze kliknem dvakrat na subor a v programe mi ho hned nacita? Napriklad mam stream a ked ho otvorim hned mi otvory dany program a obsah premennych nahra do memo. V programe je procedura otvor, pri ktorej sa otvory open dialog a vyberie sa a vsetko nacita. Ale tak ze by po dvojkliku na subor by to robilo automaticky a subor by mal vlastnu ikonku tak to teda neviem. Niekto mi vravel ze to ma nieco s parametrami. Neviete poradit nejaky tutorial na nete alebo navod alebo mi rovno tu pomoct? Vopred dakujem...
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1046

PríspevokZaslal: So 06.06.09 19:24Odpovedať s citátomNávrat hore

Tak najprv asociácia:

1.) Vytvor si súbor xxx.reg, kde xxx je názov tvojej prípony. Obsah súbora bude toto:
kód:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.xxx]
@="xxxFile"


2.) Vytvor si súbor xxxFile.reg. Obsah bude takýto:
kód:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\xxxFile]
@="xxx prehliadac"

[HKEY_CLASSES_ROOT\xxxFile\defaultIcon]
@="shell32.dll,41"

[HKEY_CLASSES_ROOT\xxxFile\shell]
@="open"

[HKEY_CLASSES_ROOT\xxxFile\shell\open]

[HKEY_CLASSES_ROOT\xxxFile\shell\open\Command]
@="\"D:\\Program Files\\HlavnyProgram.exe\" \"%1\""


3.) Po vytvorení ich obe zapíš do registru (klikni na nich a potvrď, že chceš zapísať dáta do registru).

POZNÁMKA: To "shell32.dll,41" v druhom výpise je ikona, ktorá sa bude zobrazovať pri súborooch s príponou *.xxx (tú príponu si samozrejme tiež zmeň na takú, akú potrebuješ).

Teraz spúšťanie:

Takže už máš v počítači dané, aby ti súbory xxx otváral program HlavnyProgram.exe, no ešte chýba ošetriť tento program tak, aby hneď po spustení zistil, či bol spustený s nejakým parametrom. To zistíš takto:
kód:
nazovSuboru: string;
nazovSuboru:= ParamStr(1);


Ak sa nazovSuboru rovná '' (prázdny znak), tak program nie je spustený s parametrom - teda nie je "kliknuté na subor xxx". V opačnom prípade je v premennej nazovSuboru názov spusteného xxx súboru a to je to, čo potrebuješ vedieť, keďže inak si názov získaval z OpenDialogu.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Siriuse
Užívateľ
Užívateľ

Založený: 23.05.2009
Príspevky: 81
Bydlisko: Michalovce

PríspevokZaslal: So 18.07.09 16:42Odpovedať s citátomNávrat hore

no nejak to nejde, vobec sa ten program neespusti po kliknuti na subor, dostanem na vyber zoznam programov kde to mam otvorit a potom ked si tam najdem moj exe subor nic sa tam nestane
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Siriuse
Užívateľ
Užívateľ

Založený: 23.05.2009
Príspevky: 81
Bydlisko: Michalovce

PríspevokZaslal: Po 20.07.09 16:58Odpovedať s citátomNávrat hore

aaaaaha fajn uz mi to ide a ked si chcem zobrat vlastnu ukonku, co som nakreslil, a chcem ju ulozit rovno do EXEcka a odtial ju nahravat, ako na to?
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1046

PríspevokZaslal: Po 20.07.09 19:17Odpovedať s citátomNávrat hore

Na to je najjednoduchšie použiť Delphi utilitu na tvorbu zdrojov (resource) - Image Editor.
V menu Delphi vyber Tools a tam vyber Image Editor. Keď sa spustí tento editor, vyber možnosť File, New... a nakoniec Resource File (.res). V ďalšom okienku klikni pravým tlačidlom a vyber možnosť New, Icon. Vyber veľkosť ikony (16x16 alebo 32x32) a potvrď OK (nevýhodou je maximálny počet farieb - 16. Tzn, že ak máš nejakú graficky náročnejšiu ikonu, tak musíš zvoliť iný postup). Teraz to pridalo ikonu Icon1. Tú si premenuj na, napríklad, IKONA (raz klikni na jej názov a prepíš). Potom dva krát klikni na názov a cez schránku (Ctrl+V) vlož svoju ikonu (niekde trebárs v kreslení si ju skopíruj). Keď sa vloží, môžeš okno zavrieť a resoruce uložiť napríklad ako Zdroj.res do zložky, kde je tvoj projekt. Potom už iba programovo vykonaj toto:

Pod direktívu
kód:
{$R *.dfm}
(mala by sa nachádzať hneď pod implementation) pridaj riadok:
kód:
{$R Zdroj.res}     // toto je názov zdroja (resource-u)

Potom do OnCreate a OnDestroy hlavného formu pridaj:
kód:
var
  appIcon: TIcon;

...

procedure TForm1.FormCreate(Sender: TObject);
begin

  appIcon:= TIcon.Create;
  appIcon.Handle:= LoadIcon(hInstance, 'IKONA');    // toto je názov ikony, pretože v zdroji ich môže byť viac
  Application.Icon:= appIcon;

...

end;


procedure TForm1.FormDestroy(Sender: TObject);
begin

  appIcon.Free;

end;

Nakoniec v menu vyber možnosť Project a Build názov_projektu. Build dávaj stále, keď vykonáš nejakú zmenu v resourci.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Siriuse
Užívateľ
Užívateľ

Založený: 23.05.2009
Príspevky: 81
Bydlisko: Michalovce

PríspevokZaslal: So 25.07.09 15:32Odpovedať s citátomNávrat hore

ale ja som myslel vlastnu ikonu suboru .xxx, vies jak tam bolo @="shell32.dll,41", a keby som chcel nejaku inu ikonu nie z dll kniznice ale rovno z execka ako by som to mal robit?
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Fico
Skúsený užívateľ
Skúsený užívateľ

Založený: 11.01.2009
Príspevky: 1046

PríspevokZaslal: So 25.07.09 16:12Odpovedať s citátomNávrat hore

Tak tam uvedieš cestu k súboru, ale tuším, že musí byť v dosovom skrátenom formáte (8 znakov tvorí názov súboru a tri prípona). Takže namiesto pôvodného riadku by si ho zmenil na napríklad:
kód:
@="D:\PROGRA~1\FOXITR~1\FOXITR~1.EXE,1"

Ak náhodou nevieš, ako sa tvoria skrátené názvy, pomôže ti funkcia function ExtractShortPathName(const FileName: string): string, ktorá berie za parameter cestu k súboru a vracia skrátený formát.
Zobraziť informácie o autoroviOdoslať súkromnú správuICQ
Zobraziť príspevky z predchádzajúcich:    
Zaslať odpoveď
Nemôžete pridávať nové témy do tohto fóra.
Nemôžete odpovedať na témy v tomto fóre.
Nemôžete upravovať svoje príspevky v tomto fóre.
Nemôžete mazať svoje príspevky v tomto fóre.
Nemôžete hlasovať v tomto fóre.

Powered by phpBB 2.x.x © 2005 - 2012 PCforum, webhosting by WebSupport, edited by JanoF

SEO - optimalizácia pre vyhľadávače

Freebsd