Voinko hakea resurssitiedostosta koodinpätkällä ikonin kaikkiin formeihin esim. vaikka kun ne ladataan? Ei tarvitsisi lisätä kaikkiin formeihin erikseen tuota Me.Icon = LoadResPicture(101, vbResIcon) herkkua.
Jos menet muuttamaan formilta (jota ei ole vielä ladattu) tai sen objektilta jotain, niin formi ladataan sitä ennen. Eli jos et halua "esiladata" formeja, niin paras paikka tuolle ikonien lataukselle on Form_Load:ssa.
Jos taas usein muutat tuota ikonin nimeä/muuta vastaavaa, että joudut "usein" korjaamaan koodia jokaiselle formille erikseen, niin tee tuosta asettamisesta aliohjelma moduuliin. Kutsu vain sitä, ja teet korjaukset vain yhteen paikkaan.
'moduuliin Public Sub SetIcon(obj As Object) obj.Icon = LoadResPicture(101, vbResIcon) End Sub 'kutsu Form_Load:sta Private Sub Form_Load() SetIcon Me End Sub
Ideanahan oli ettei kaikkiin formeihin tarvisi laittaa koodinpätkää jossa ladataan ikoni, vaan jossain muualla määritellään tuo kaikkien formien ikoni. Ei kuitenkaan taida onnistua ajon aikana "koodin lisääminen" toiseen formiin.
Jos se ikonin asettanminen koodillisesti on kerran hankalaa, niin mikset kovakoodaa niitä paikalleen? Formin Properties->Icon->Browse(...) ja etsit haluamasi ikonin formille. Kun ohjelma on käännetty, niin siellä se ikoni pysyy, vaikka kyseistä ico-tiedostoa ei asetuspaketissa mukana olekkaan.
Aivan tottahan tuo on että käy läpi kaikki formit. Kestää vaan tovi kun käy vaikka sata formia läpi.
ohjelmointi on joskus raakaa työtä...
Ensi Loadaa jokainen Form muistiin (tai sitte kun kaikki on näkyvissä) ja sitte:
For Each f In Forms f.Icon = LoadResPicture(101, vbResIcon) Next
Jossain on parantamisen varaa, jos ohjelma sisältää sata formia. Kuten esakom sanoi, niin koodaamine käy välillä työstä. Pienellä ennakkosuunnittelulla hommasta saattaa päästä helpommalla.
BadSource kirjoitti:
Jossain on parantamisen varaa, jos ohjelma sisältää sata formia.
Heitin luvun hatusta. Kai tuokin on mahdollista?
Itse en pidä siitä että konemaisesti copy pastetetaan jotain lausetta joka paikkaan. Mielummin oivaltaa / oppii tavan miten asian voi tehdä helpommin.
olet kasetti ihan oikeassa, että kannattaa miettiä miten kyseenalaisen asian voisi muuten toteuttaa, jos tuntuu että sellainen olisi ylipäätään mahdollista. Yleensä parantaa koodin laatuakin, kun pysähtyy vähäksi aikaa miettimään. Joskus copypasten helppous vain on liian houkutteleva...
Usein käy kans sitten niin, että vaihtoehtoinen tapa kyllä toteuttaa asian, mutta voi aiheuttaa muita "sivuvaikutuksia". esim toi soodan koodisample on oikein hyvä ja pätevä, mutta jos nyt sattuu olemaan ne sata formia ja kaikilla paljon tavaraa, niin kestää jo aikansa niitä latailla ja muistia syö... Esim. itse kyllä vielä vaikka kymmeneen formiin copypasteisin resurssinlatausfunktion (tai kutsun bas-modulin funktioon jossa temppu tehdään)
Saat kasetti joka tapauksessa pisteet kotiin siitä että vaihtoehtoisia tapoja kannattaa aina miettiä...
Aihe on jo aika vanha, joten et voi enää vastata siihen.