Toon posts:

[ASP/VB] woordlengte in pixels

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb ooit eens in PHP een mooi script gemaakt mbv de GD lib waarbij je een woord kon invoeren, het lettertype kon selecteren, de lettergrootte en of deze regular/cursief/vet moest zijn. Daar kwam dan netjes de waarde uit in pixels van de woord lengte. Dit wil ik nu met ASP gaan realiseren omdat ze op mn werk hun CMS met ASP hebben gemaakt. Ik ben nu dus al een paar dagen aan het zoeken op GoT, Google en MSDN, maar kan werkelijk niks nuttigs vinden...

Heeft iemand hier ervaring mee of nuttig tips/links?

Alvast bedankt....

[ Voor 5% gewijzigd door Verwijderd op 30-07-2003 16:28 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Uhm....Er IS een Windows API die je in VB kunt aanroepen daarvoor. Effe zoeken, momentje ;)

• VB kent een TextWidth statement...
• Het Printer object heeft een .TextWidth property
note: waardes zijn in TWIPS, dus effe terugrekenen naar Pixels...

....Zoek nog effe verder...

@Curry684: GetTextExtentPoint!!! Die zocht ik ;) Kon er niet meer op komen ;)
offtopic:
@Curry684: Heb je mijn mail gehad?

[ Voor 83% gewijzigd door RobIII op 30-07-2003 16:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Je kunt met ASP toch gewoon aan de Win32 API? Zo ja zoek je de GetTextExtentPoint functie en zijn vriendjes.

Professionele website nodig?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

offtopic:
Ik heb gisteravond thuis per ongeluk Outlook aan laten staan dus m'n webmail doet nu niks, ik zie vanavond pas mail ;)

Professionele website nodig?


Verwijderd

Topicstarter
Das nog eens snel, had al wel een keer eerder voorbij zien komen, maar dacht dat goldt voor programmeren binnen C...

Bedankt voor de reacties!
offtopic:
Ben nog maar 4 weekjes bezig met ASP..

Verwijderd

Topicstarter
Toch nog maar ff door vragen: Ik ben bezig geweest met GetTextExtentPoint, maar kom niet echt verder. Dat zal wel aan mn kennis van ASP/VB liggen dat ik vastloop. Ik ben met GetTestExtentPoint aan het zoeken geslagen en het enige zinnige antwoord kwam van de link: [rml][ VB6] Grootte van een letter uitlezen[/rml]

Maar zelfs met dat stuk code kom ik er niet uit. Ik weet niet of het aan mn ASP versie ligt (3.0) of aan de VB versie (MajorVersion = 5 & MinorVersion = 6). Daarnaast twijfel ik of dit daadwerkelijk is wat ik zoek. Het is de bedoeling dat dit serverside gebruikt gaat worden. Ik moet een menu dynamisch opbouwen waarbij het van belang is dat de lengte van het woord icm de stylesheet bekend moet zijn. Handmatig toevoegen in de database is geen optie, evenals een clientside oplossing.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

ASP heeft er in eerste instantie helemaal niets mee te maken met de oplossing die hierboven wordt aangedragen. Verder moet je niet VB en VBScript door elkaar gaan halen.

Daarnaast heeft ASP geen enkel benul wat de stylesheet gaat uitvoeren. Dus je moet dan uitgaan van een vast aantal css-gegevens voor je menu. (iig relatief)
De breedtes kan je verder ook in een array neerzetten en uitlezen.

Dit kost even wat tijd; het resultaat erna kan je echter weer cachen in een application object.

[ Voor 95% gewijzigd door gorgi_19 op 01-08-2003 09:15 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Eerste twee alinea's waren voor mij al helder. Maar omdat je gebruik maakt van een lib dacht ik dat ASP daar ook weleens mee te maken kon hebben. Dat is dus nietzo volgens jou...

Het hele stylesheet verhaal was al duidelijk. Het is opzich geen probleem om bijvoorbeeld in global.asa m'n vaste instellingen voor m'n menu op te slaan (lettergrootte, lettertype etc). Daarnaast kan ik geen vaste waarde stoppen in een array. Het gaat hier nml om 10 sites binnen het intranet wat door tig mensen intern wordt bijgehouden daarbij dat ook de menustructuur wordt aangepast via een CMS en daardoor dus niet die array kan gebruiken. Ik kan opzich wel een array maken met alle leestekens en de lengte per karakter in de array zetten en deze elke aanspreken bij het opbouwen van elk woord binnen het menu, maar dat lijkt mij een beetje veel load geven. Maar als het niet anders gaat... Dan lossen we het op die manier op... Ik sta nog wel openen voor een betere oplossing dan het verhaal met de array

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 01 August 2003 @ 09:30:
Ik kan opzich wel een array maken met alle leestekens en de lengte per karakter in de array zetten en deze elke aanspreken bij het opbouwen van elk woord binnen het menu, maar dat lijkt mij een beetje veel load geven. Maar als het niet anders gaat... Dan lossen we het op die manier op... Ik sta nog wel openen voor een betere oplossing dan het verhaal met de array
Dan heb je een stukje nog gemist. Ik heb vervolgens gezegd dat je het te cachen resultaat moet opslaan in een application object.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Sorry, idd. Maar dan zal ik de implementatie van de woordlengte niet moeten leggen binnen het intranet, maar binnen het CMS wanneer dus het menu gewijzigd wordt. Dan zal ik dus dat object moeten ontgrendelen, nieuwe waarde toekennen. Binnen de pagina waar het menu opgebouwd wordt zal ik dan gebruik moeten maken van het object wat gecached is.

Of sla ik hier onzin uit...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 01 August 2003 @ 09:39:
Sorry, idd. Maar dan zal ik de implementatie van de woordlengte niet moeten leggen binnen het intranet, maar binnen het CMS wanneer dus het menu gewijzigd wordt. Dan zal ik dus dat object moeten ontgrendelen, nieuwe waarde toekennen. Binnen de pagina waar het menu opgebouwd wordt zal ik dan gebruik moeten maken van het object wat gecached is.

Of sla ik hier onzin uit...
Ik zou het nog makkelijker maken..
Invalideer alleen het object door het bijvoorbeeld op Nothing te zetten.
Controleer bij iedere request van je global.asax of het object bestaat. Zo ja, maak het dan aan en vul deze. Het application-item moest je sowieso toch vullen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
OK, das bijna duidelijk. Heb ff mn boek erbij gepakt om te kijken hoe het nu daadwerkelijk zit met mn global.asa.

Bij elke request wordt dus global.asa verwerkt. Alleen de toepassingsspecifieke onderdelen van global.asa worden bij de allereerste request gedaan. Wat als ik binnen global.asa mn object definieer en daar via een functie mn application.item vul, wordt dat dan bij elke request opnieuw gedaan of valt dat binnen de "toepassingsspecifieke onderdelen" en gebeurt dat eenmalig bij de allereerste request? Als dat laatste niet waar is zie ik geen voordeel ten opzichte van het direct op de pagina gebruiken van deze zelfde functie.

Als dat laatste wel waar is dan zal ik toch vanuit mn CMS deze variabele bij wijziging van het menu opnieuw moeten vullen met de juiste waarde.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 01 August 2003 @ 10:14:
OK, das bijna duidelijk. Heb ff mn boek erbij gepakt om te kijken hoe het nu daadwerkelijk zit met mn global.asa.

Bij elke request wordt dus global.asa verwerkt. Alleen de toepassingsspecifieke onderdelen van global.asa worden bij de allereerste request gedaan. Wat als ik binnen global.asa mn object definieer en daar via een functie mn application.item vul, wordt dat dan bij elke request opnieuw gedaan of valt dat binnen de "toepassingsspecifieke onderdelen" en gebeurt dat eenmalig bij de allereerste request? Als dat laatste niet waar is zie ik geen voordeel ten opzichte van het direct op de pagina gebruiken van deze zelfde functie.

Als dat laatste wel waar is dan zal ik toch vanuit mn CMS deze variabele bij wijziging van het menu opnieuw moeten vullen met de juiste waarde.
Je gaat bij iedere request controleren of het application item bestaat, zo niet, dan wordt deze gevuld. het caching idee werkt vervolgens, omdat het application object een global scope heeft, voor alle users en niet verwijderd wordt aan het einde van een request / sessie.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
OK, das helder. Maar dan zal ik indien het menu wijzigt het object op Nothing zetten zodat bij de eerst volgende request het item weer opnieuw wordt gevuld, om aan de gebruikers direct het nieuwe menu te laten zien... Anders blijftie in de chache staan en heeft geen zin om mn menu te wijzigen ;) Volgens mij heb ik'm nu...
Pagina: 1