[ Príspevkov: 7 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.05.09
Prihlásený: 16.01.18
Príspevky: 95
Témy: 39 | 39
Bydlisko: Michalovce
NapísalOffline : 06.06.2009 18:10 | Asociacia suboru s programom

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...


Offline

Skúsený užívateľ
Skúsený užívateľ
Asociacia suboru s programom

Registrovaný: 11.01.09
Prihlásený: 28.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 06.06.2009 19:24 | Asociacia suboru s programom

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.05.09
Prihlásený: 16.01.18
Príspevky: 95
Témy: 39 | 39
Bydlisko: Michalovce
Napísal autor témyOffline : 18.07.2009 16:42 | Asociacia suboru s programom

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


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.05.09
Prihlásený: 16.01.18
Príspevky: 95
Témy: 39 | 39
Bydlisko: Michalovce
Napísal autor témyOffline : 20.07.2009 16:58 | Asociacia suboru s programom

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?


Offline

Skúsený užívateľ
Skúsený užívateľ
Asociacia suboru s programom

Registrovaný: 11.01.09
Prihlásený: 28.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 20.07.2009 19:17 | Asociacia suboru s programom

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 23.05.09
Prihlásený: 16.01.18
Príspevky: 95
Témy: 39 | 39
Bydlisko: Michalovce
Napísal autor témyOffline : 25.07.2009 15:32 | Asociacia suboru s programom

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?


Offline

Skúsený užívateľ
Skúsený užívateľ
Asociacia suboru s programom

Registrovaný: 11.01.09
Prihlásený: 28.04.26
Príspevky: 1399
Témy: 10 | 10
Bydlisko: Hrinova
NapísalOffline : 25.07.2009 16:12 | Asociacia suboru s programom

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.


 [ Príspevkov: 7 ] 


Asociacia suboru s programom



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Asociácia spotrebiteľov pre užívateľ. Visty žiada XP z

v Novinky

8

551

14.10.2007 20:09

mimkork

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc s programom

v Backend

6

633

14.04.2018 15:15

Vetrolam

V tomto fóre nie sú ďalšie neprečítané témy.

problem s programom

v Sieťové programy

9

556

16.05.2010 8:47

Mindfreak

V tomto fóre nie sú ďalšie neprečítané témy.

Pomoc s programom

v Backend

3

607

26.07.2013 9:36

Roj-i

V tomto fóre nie sú ďalšie neprečítané témy.

Pomozte s programom

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Backend

43

2965

04.06.2007 21:34

vladik

V tomto fóre nie sú ďalšie neprečítané témy.

Problém s programom

v Ostatné programy

3

494

27.04.2010 15:25

Denco1

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc s programom

v Backend

2

612

16.11.2009 21:30

kubo88

V tomto fóre nie sú ďalšie neprečítané témy.

Rada s programom

v Grafické programy

2

877

21.03.2008 20:19

murded

V tomto fóre nie sú ďalšie neprečítané témy.

help s programom

v Backend

9

856

29.09.2009 20:57

reDo

V tomto fóre nie sú ďalšie neprečítané témy.

Huawei odblokovanie programom

v Smartfóny a tablety

11

2746

12.01.2020 3:19

Semp

V tomto fóre nie sú ďalšie neprečítané témy.

Problem s programom NoggIT

v Ostatné programy

0

471

16.08.2011 12:31

draculla

V tomto fóre nie sú ďalšie neprečítané témy.

pomoc s malym programom

v Ostatné

10

651

18.02.2012 21:51

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

Co s tymto programom?

v Ostatné programy

3

428

18.01.2012 22:31

Denco1

V tomto fóre nie sú ďalšie neprečítané témy.

help s C programom

v Backend

4

467

31.03.2017 21:16

zanietenec

V tomto fóre nie sú ďalšie neprečítané témy.

C++ pomoc s programom

v Backend

8

1953

07.12.2009 10:46

drummer87

V tomto fóre nie sú ďalšie neprečítané témy.

C++ pomoc s programom

v Backend

9

712

09.05.2011 22:30

johny3212



© 2005 - 2026 PCforum, edited by JanoF