Myklebust89 Skrevet 31. juli 2003 Forfatter Del Skrevet 31. juli 2003 Skal det ikke være noe annet enn "..." mellom parantesene? eller var det bare for å spare tid? Lenke til kommentar
Myklebust89 Skrevet 31. juli 2003 Forfatter Del Skrevet 31. juli 2003 Det Gikk! JEG ELSKER DEG! Endelig! Lenke til kommentar
Myklebust89 Skrevet 31. juli 2003 Forfatter Del Skrevet 31. juli 2003 Nå blei det litt feil igjen! Jeg skulle ha en liten oversikt. Det er en form, Form5, med 8 RadioButton's. Og de skal gjøre sånn at bakgrunnen til form1 skiftes! Men når jeg skal prøvekjøre, kommer det en feil! [Error] Unit5.pas(53): Undeclared identifier: 'image2' Det er mange sånne, siden det er mange som peker dit! Lenke til kommentar
Legion Skrevet 31. juli 2003 Del Skrevet 31. juli 2003 hadde vært enklere om du i tillegg hadde lagt ved kildekoden til noen av linjene som gir error også. sjekk om du har: -linket form5 til aktuellt form i uses -fullstendig procedure kall f.eks "form1.image2.blablabla" Lenke til kommentar
Format71 Skrevet 31. juli 2003 Del Skrevet 31. juli 2003 Det Gikk! JEG ELSKER DEG! Endelig! :oops: Ja, endelig sier jeg også. Har jobbet lenge for din kjærlighet, og nå, endelig.... :oops: Et tips til deg. Alle komponenter, inkludert forms har en property som heter 'Name'. Den er litt kjekk.... Forsøk å navngi alle komponentene dine med fornuftige navn. Prefix med type komponent (frm for forms, img for images, ed for alt av edit, btn for alt av knapper osv) og avslutt med hensikten med komponenten. Eksempler: frmMain - hovedvinduet ditt. frmSkinSelector - vindu for valg av skin frmAbout - vindu med informasjon om deg og produktet btnSkin1, evnt rbSkin1 - første radiobutton for valg av skin btnSkin2, evnt rbSkin2 - andre.... osv imgBackground - TImage-komponenten for å vise bakgrunnen osv osv Da blir det mye, mye, masse mye, enklere å lese sin egen kode og forstå hvilke objekter/properties du skal manipulere. frmMain.imgBackground.Image.LoadFromFile( ) er bra mye lettere å forstå enn Form3.Image2.Image.... -Vegar Lenke til kommentar
Myklebust89 Skrevet 31. juli 2003 Forfatter Del Skrevet 31. juli 2003 Dere fortjener begge uendelig med takknemlighet! Men nå kommer det virkelige problemet, jeg skal ha det sånn at alt blir lagra i en .dll fil, sånn at man slepper å loade en valgfri skin hver gang, og også velge en bakgrunn hver gang! Lar det seg gjøre på en någenlunde enkel måte? Lenke til kommentar
Format71 Skrevet 1. august 2003 Del Skrevet 1. august 2003 Dere fortjener begge uendelig med takknemlighet! Men nå kommer det virkelige problemet, jeg skal ha det sånn at alt blir lagra i en .dll fil, sånn at man slepper å loade en valgfri skin hver gang, og også velge en bakgrunn hver gang! Lar det seg gjøre på en någenlunde enkel måte? Ja, men nei... Det er meningen at brukere skal kunne lage egne skinns, er det ikke? Hvordan skal de få laget en dll? Ta heller å la brukeren lagre oppsett og så velge et default-oppsett som alltid benyttes når man starter programmet. Fila du lagrer oppsettet til kan være en ini-fil. De er lette å jobbe med. Da kan du ha en fil som heter 'skins.ini', og den kan f.eks. se så her ut: [skin01] Navn='Burners Favoritt' Bakgrunn='c:bildersuperbabe.jpg' NoeAnnet='Ett eller annet som måtte være interessant å ta vare på' [skin02] Navn=...... Du forstår sikkert tegninga. Slå opp i hjelpa på TIniFile og les litt om bruken av inifiler så er jeg sikker på at du får det til. -Vegar Lenke til kommentar
Myklebust89 Skrevet 1. august 2003 Forfatter Del Skrevet 1. august 2003 Det var noe sånt jeg hadde tenkt, når brukeren valgte en valgfri skin, ble den lagret i ini filen, sånn at han slapp å loade den hver gang! og det samme med hvilken bakgrunn brukeren bruker! for nå åpnes formen med svart bakgrunn hver gang Lenke til kommentar
Legion Skrevet 1. august 2003 Del Skrevet 1. august 2003 du lager en post i .ini fila som f.eks heter CurrentSkin, noe alá CurrentSkin='default' til å begynne med, når så bruker endrer skin så blir den da f.eks til: CurrentSkin='Skin03' når applikasjonen åpnes skal den da loade det skinnet som står i CurrentSkin Lenke til kommentar
Myklebust89 Skrevet 1. august 2003 Forfatter Del Skrevet 1. august 2003 procedure TForm1.FormCreate(Sender: TObject); // start prosedyre var starttid: real; begin starttid := gettickcount; while gettickcount < starttid+2000 do; form4.hide; image1.Visible := false; image6.Visible := false; image2.visible := false; image3.Visible := false; image5.visible := false; image7.Visible := false; image4.visible := false; end; Dette er min start prosedyre, det er sikkert en lettere måte å gjøre alt på, for når jeg skifter skin, disabler jeg alle de andre først! Men det blir vel som å bruke hagle på spurv? Lenke til kommentar
Format71 Skrevet 1. august 2003 Del Skrevet 1. august 2003 procedure TForm1.FormCreate(Sender: TObject); // start prosedyre var starttid: real; begin starttid := gettickcount; while gettickcount < starttid+2000 do; form4.hide; image1.Visible := false; image6.Visible := false; image2.visible := false; image3.Visible := false; image5.visible := false; image7.Visible := false; image4.visible := false; end; Dette er min start prosedyre, det er sikkert en lettere måte å gjøre alt på, for når jeg skifter skin, disabler jeg alle de andre først! Men det blir vel som å bruke hagle på spurv? Hum... For det første er det vel ikke så gunstig å bruke real sammen med GetTickCount? real er et komma-tall, og GetTickCount returnerer et heltall... Hva er alle imagex-komponentene til? Har du en TImage for hvert skin? -Vegar Lenke til kommentar
Myklebust89 Skrevet 1. august 2003 Forfatter Del Skrevet 1. august 2003 Det starttid greiene leste jeg i ei bok! Ja jeg har et komponent for hvert skin, man kan velge mellom 7 skins som er i spilleren og et du velger selv.... Bedre måter? Men tilbake til .ini greiene, jeg veit ikke hvordan jeg skal gjøre alt dette! Jeg leste i help fila, men fant ikke noe som ga meg noen svar! Lenke til kommentar
michaenh Skrevet 1. august 2003 Del Skrevet 1. august 2003 Hei. Ta en titt på linken: http://delphi.about.com/library/weekly/aa120401a.htm Du burde søke litt på nettet. Det ligger så mye av alt på nettet... F. eks.. på google med ini files + delphi.. Jeg ville foretrekke xml filer... etter min mening er ini filer gammel dags, men det skal fungere like bra. Lenke til kommentar
Format71 Skrevet 3. august 2003 Del Skrevet 3. august 2003 Jeg ville foretrekke xml filer... etter min mening er ini filer gammel dags, men det skal fungere like bra. xml er en gedigen overkill, men selvfølgelig mer i vinden og mye mer fancy. Jobben gjøres mye lettere med inifiler. Når det gjelder en komponent pr. skin skulle jeg tro det holdt lenge med en komponent. Du viser vel aldri mere enn ett skin av gangen uansett? Velger man skin nr. 1 laster du bilde nr. 1 inn i den ene TImage-komponenten. Velger man skin nr. 4 laster du bilde nr. 4 inn i den samme TImage-komponenten. Tror ikke det skulle være så vanskelig. Fordelen er mindre kode og mindre minne forbruk. -Vegar Lenke til kommentar
michaenh Skrevet 4. august 2003 Del Skrevet 4. august 2003 xml er en gedigen overkill, men selvfølgelig mer i vinden og mye mer fancy. Jobben gjøres mye lettere med inifiler. Det skal være like lett med xml som ini filer dersom man vet åssen en skal håndtere det... Lenke til kommentar
tasle Skrevet 4. august 2003 Del Skrevet 4. august 2003 (Klipp...)Jeg ville foretrekke xml filer... etter min mening er ini filer gammel dags, men det skal fungere like bra. Hvorfor skulle ini-filer være gammeldags? Og hvorfor skulle man foretrekke xml-filer istedenfor ini-filer hvis det ikke er behov for XML ? Lenke til kommentar
Format71 Skrevet 4. august 2003 Del Skrevet 4. august 2003 xml er en gedigen overkill, men selvfølgelig mer i vinden og mye mer fancy. Jobben gjøres mye lettere med inifiler. Det skal være like lett med xml som ini filer dersom man vet åssen en skal håndtere det... Det blir vel nesten som å se at det er like lett med lastebil som med golf når man skal på handletur i sentrum - bare man vet å håndtere det. Poenget er at inifil-formatet håndteres direkte av operativsystemet og av delphi. xml er det litt værre med. Self kan du fylle opp en TStringList med xml-kode, lagre denne til fil og lese den inn igjen, men hva er poenget? For å få hentet ut verdiene igjen må du ha en parser, eller du kan sitte å plukke selv. Nei, hold deg til TMemIniFile så lenge den har funksjonalitet nok. Har du store datamengder med kompliserte regler for gyldig data og gjerne med behov for å utveksle data med andre programmer osv, ja så finn deg en god xml-parser og tur i vei. -Vegar Lenke til kommentar
michaenh Skrevet 4. august 2003 Del Skrevet 4. august 2003 //Henter x element til x xml function XMLElementVal(fullsti: string; element: string): shortString; stdcall; var oXMLDoc: IXMLDomDocument; ElemList: IXMLDomNodeList; i: integer; begin try oXMLDoc := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument; oXMLDoc.load(fullsti); ElemList := oXMLDoc.getElementsByTagName(element); for i := 0 to ElemList.length -1 do Result := ElemList.item[i].text except XMLFeil; //feilet ved oppretting av XMLDOM end; end; Enkel kode for å hente ut et element verdi fra en xml fil... og manipulere på det.. Dropp det med TStringList og sånt... Lenke til kommentar
michaenh Skrevet 4. august 2003 Del Skrevet 4. august 2003 Men det er best å holde seg til ini filer... det er vel nok lettest. mvh. michael Lenke til kommentar
tasle Skrevet 4. august 2003 Del Skrevet 4. august 2003 Ja, det er adskillig lettere. Og mye mindre overhead, både i programmet som skal lese initieringsdata, og i selve datafila. XML er greit til sitt bruk når det gjelder DOM og standardiserte snitt mot store datamengder på tvers av miljøer, og i så fall ofte en nødvendighet. "Skins" av denne typen som i det opprinnelige innlegget bør det holde med en ini-fil. Burner89: Deklarér Start som Integer og ikke som Real. GetTickCount er et heltall og ikke et flyttall. Du mister bare oppløsningen hvis antall ticks blir stor nok. En Real vil slå over på å bruke 10-er eksponent før eller siden, og da får du trøbbel med programmet ditt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå