Avatar billede bolorolo Nybegynder
01. januar 2009 - 12:29 Der er 5 kommentarer og
1 løsning

excute fra en listbox?

Hejsa.

jeg er ved at lave et lille install menu program.
jeg har en lang række .msi filer som skal startes fra menuen, dertil har jeg lavet en listbox hvor man kan vælge det program som skal installeres.

i min listbox.item står alle navne på den software som skal installeres, men min "install" knap skal self. vide hvorfra den skal lave en shellexecute.

jeg har prøvet mig frem ved at lave en ini fil (install.ini)

[software]
acrobat reader = c:\acrobat.msi
photoshop = c:\photoshop.msi

det er ikke noget som helt problem for mig at læse navnet på i min listbox (det var faktisk overraskende nemt, der er meget hjælp at finde i delphi hjælpefunktionen) men det bliver strakt lidt trixy at udlæse path til knappen.

Spørgsmålet er om jeg har grebet det forkert an, om men istedet skulle lave en dual listbox som følger hinanden, hvor den ene har navnet på softwaren og den anden listbox har path til programmet som knappen lavet en shellexecute på.

jeg kan godt se at inifil er lang den mest struktureret måde at lave det på men som begynder bliver det hurtigt advanceret.

Måske der er nogen som har nogle gode links omkring inifiler som man kan lære noget fra. Jeg vel helt ikke have noget copy/paste code, jeg er typen som lærer mest ved selv at lege med det og prøve mig frem, men lige her syntes jeg ikke delphi hjælpen rækker så langt, så hvis det findes en god side med eksempler vil jeg tage imod det med kyshånd :-) (har prøvet at google, men fandt ikke rigtig noget match).
Avatar billede psycosoft-funware Nybegynder
01. januar 2009 - 13:08 #1
du er på rette spor men jeg ville dog lave to grupper i din ini fil. en hvor path til install filerne står og en hvor navnet står fordi:

hvis du laver en gruppe der fx hedder [SoftwarePath]
i den gruppe kan du så fx skrive Software0=c:\acrobat.msi  Software1=c:\photoshop.msi osv.

der efter kan du så lave en navnegruppe der fx hedder [SoftwareName]
i den gruppe kan du så fx skrive SwName0=Adobe Acrobat Reader  SwName1=Adobe Photoshop osv


det der så er fidusen her er at du nu
Avatar billede psycosoft-funware Nybegynder
01. januar 2009 - 13:09 #2
--> kan relatere listboxens item index med nummeret der er angivet i dit indhold under de to ini grupper :)

./psycosoft-funware :)
Avatar billede kroning Nybegynder
01. januar 2009 - 14:07 #3
Jeg kan ikke se nogen grund til at lave 2 grupper da man jo meget let kan hente både names og values ud af inifilen, dvs:

[software]
acrobat reader = c:\acrobat.msi
photoshop = c:\photoshop.msi

her kan man let få en liste med navne:
acrobat reader
photoshop

og en liste med værdier:
c:\acrobat.msi
c:\photoshop.msi

ved at benytte ReadSection og derefter TStrings funktionerne names og values.

Hvis du ikke skal have andre [Grupper] i din ini fil vil det være lettere at benytte TStringList, så kan du indlæse filen direkte i TStringList og herefter benytte TStringList funktionerne names og values.
Avatar billede bolorolo Nybegynder
01. januar 2009 - 14:24 #4
ahhh... Tstringlist, det kan jeg bruge til noget :-)

tak for de gode pointers, det har givet mig inspiration nok til at kunne komme videre med projektet :-)

1000 tak allesammen og godt nytår til jer alle.
Avatar billede psycosoft-funware Nybegynder
01. januar 2009 - 14:50 #5
>>bolorolo: tak i lige måde :)

>>kroning: ja det har du self ret i. jeg havde ikke lige spottet at der var sådan to funktioner til dette :)
Avatar billede bolorolo Nybegynder
14. april 2015 - 11:15 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester