webForumDet fria alternativet

Unit >> int

7 svar · 371 visningar · startad av h00karem

h00karemMedlem sedan mars 200524 inlägg
#1

Hejsan
Alltså nu har jag kört fast på ett riktigt struntproblem. Har försökt leta men hittar aldrig det jag vill :OO

Vill kolla en bilds höjd och vidd med if-satsen nedan men hur kollar man >>. Det funkar ju med == men det vill jag ju inte använda nu jue. Den klagar på att "operatorn inte kan användas på System.Web.UI.WebControls.Unit eller int"

Vet att det antagligen är en mindre smart fråga :r

Image bild = new Image();

bild.ImageUrl = "bildKategorier/" + Request.QueryString["bild"];

bild.AlternateText = Request.QueryString["alt"];

if (bild.Width > 500)
	{
		bild.Width = 500;
	}

	if (bild.Height > 400)
	{
		bild.Height = 400;
	}

bildTd.Controls.Add(bild);

Tack på förhand

janrochMedlem sedan jan. 200518 inlägg
#2

Felet beror på att du försöker jämföra en "System.Web.UI.WebControls.Unit" med en "int". Det går inte.
En Unit är en värde plus en enhet. Jämför värdet med "inte":en istället så funkar det nog.

För mer info om Unit kolla:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolsunitmemberstopic.asp

h00karemMedlem sedan mars 200524 inlägg
#3

Hur menar du? :r

h00karemMedlem sedan mars 200524 inlägg
#4

Aah jag tror att jag fattar :) Typ bild.Width.Value > men det funkar inte heller. Den säger att det är längden på Unit'en. Alltså sidan körs men den struntar i villkoret. Om jag däremot vänder på det så att Width.Value<500 så körs villkoret men dock på alla bilder. Även de små som inte ska bli större?!

h00karemMedlem sedan mars 200524 inlägg
#5

skriver ut value som tydligen är 0 för alla bilder

h00karemMedlem sedan mars 200524 inlägg
#6

Ursäkta att jag bombar nu men testar samtidigt

int.Parse(bild.Width.ToString()) > 500

det skulle ju funka om den kände av Width för bilden (vilket jag trodde den skulle göra) eller är det nå't man måste sätta själv. I så fall måste jag alltså skicka med det från sidan jag kollar vidd och bredd på bilden?!

janrochMedlem sedan jan. 200518 inlägg
#7

just det, tänkte inte på det men vidden sätter du själv. Det är den som motsvara width-attributet på img-taggen så den har du inte så stor användning av. Du får använda System.Drawing.Bitmap istället om du vill ha reda på vad vidden är...

h00karemMedlem sedan mars 200524 inlägg
#8

mmh men sen skulle jag vilja sätta om vidden å då säger den ju att vidden är ReadOnly

Men jag skickar med bredd och höjd och använder Image() Då kan man lätt sätta alt å så till bilden. Eller har du något bättre förslag.

Så här gör jag nu

protected System.Web.UI.HtmlControls.HtmlTableCell bildTd;
		protected System.Web.UI.HtmlControls.HtmlTable Table1;
		protected System.Web.UI.HtmlControls.HtmlForm Form1;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			//Skapa en Image att lägga in i td'n på sidan sedan
			System.Web.UI.WebControls.Image bild = new System.Web.UI.WebControls.Image();

			//Tala om vilken bild det är med sökvägen
			bild.ImageUrl = "bildKategorier/" + Request.QueryString["bild"];

			//Ge bilden en alt-egenskap
			bild.AlternateText = Request.QueryString["alt"];
			
			//spara bildens bredd och höjd från querysträngen
			float bredd = int.Parse(Request.QueryString["bredd"]);
			float hojd = int.Parse(Request.QueryString["hojd"]);
			float NyBredd;
			float NyHojd;

			//Kolla bredd och höjd så att bilden inte blir för stor
			if (bredd > 500)
			{
				NyBredd = 500;
				NyHojd = (500/bredd)*hojd;
				bredd = NyBredd;
				hojd = NyHojd;
			}

			if (hojd > 400)
			{
				NyHojd = 400;
				NyBredd = (400/bredd)*hojd;
				bredd = NyBredd;
				hojd = NyHojd;
			}

			float test = (int) bredd;

			//Ge bilden rätt bredd och höjd
            bild.Width = (int) bredd;

			//Lägg in bilden i td'n på sidan
			bildTd.Controls.Add(bild);
136 ms totalt · 3 externa anrop · v20260731065814-full.beb2e261
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)