Archívum - Feb 5, 2008 - Fórum téma
VB.NET dinamikus típus konverzió
Sziasztok,
Egy olyan kérdésem lenne, hogy hogyan tudom azt megoldani VB.NET-ben, hogy adott néhány osztályom közös szülőosztállyal, ezeket szépen belepakolom egy ArrayList-be, vagy bármely más listába és amikor végig iterálok a listán, akkor az aktuális elem render metódusát meghívva, na a szülő osztály render-e fusson le?
Régebben csináltam ilyet php-ben, ott ez teljesen sim ügy.
Egy rövid példakód, hogy mire gondolok:
Ebben az esetben a kód ugyan lefut hiba nélkül, de mindkét esetben a base render metódusa fut.
Sajnos egyetlen lehetőséget találtam ennek kikerülésére, az pedig az, hogy egy select case-el a lista(i).GetType alapján szétválasztom és típuskényszerítem a különböző objektumokat. Ez viszont elég rugalmatlan sok különböző objektum esetén.
amire szükségem lenne, az logikailag így nézne ki:
de ez sajnos nem működik...
Ha valaki tud erre a select case-nél rugalmasabb megoldást az pls help!
előre is köszi,
Halee
■ Egy olyan kérdésem lenne, hogy hogyan tudom azt megoldani VB.NET-ben, hogy adott néhány osztályom közös szülőosztállyal, ezeket szépen belepakolom egy ArrayList-be, vagy bármely más listába és amikor végig iterálok a listán, akkor az aktuális elem render metódusát meghívva, na a szülő osztály render-e fusson le?
Régebben csináltam ilyet php-ben, ott ez teljesen sim ügy.
Egy rövid példakód, hogy mire gondolok:
...
public class base
public sub new()
end sub
public function render() as string
return "Base"
end function
end class
public class child
inherits base
public sub new()
MyBase.new()
end sub
public function render() as string
return "Child"
end function
end class
...
Dim lista as ArrayList = new ArrayList()
lista.add(new base())
lista.add(new child())
for i as integer=0 to lista.Count()-1
Response.WriteLine(lista(i).render())
next
public class base
public sub new()
end sub
public function render() as string
return "Base"
end function
end class
public class child
inherits base
public sub new()
MyBase.new()
end sub
public function render() as string
return "Child"
end function
end class
...
Dim lista as ArrayList = new ArrayList()
lista.add(new base())
lista.add(new child())
for i as integer=0 to lista.Count()-1
Response.WriteLine(lista(i).render())
next
Ebben az esetben a kód ugyan lefut hiba nélkül, de mindkét esetben a base render metódusa fut.
Sajnos egyetlen lehetőséget találtam ennek kikerülésére, az pedig az, hogy egy select case-el a lista(i).GetType alapján szétválasztom és típuskényszerítem a különböző objektumokat. Ez viszont elég rugalmatlan sok különböző objektum esetén.
amire szükségem lenne, az logikailag így nézne ki:
(CType(lista(i),lista(i).GetType())).Render()
de ez sajnos nem működik...
Ha valaki tud erre a select case-nél rugalmasabb megoldást az pls help!
előre is köszi,
Halee
Dinamikus DIV IE-ben nem megy
Sziasztok!
Bocs, hogy új témát nyitotam, de elég "egyedi" a bajom.
Adott egy kód:Ez FF-ben gyönyörűen működik, de IE-ben a layer 1x1 pixeles, ha pedig direktben belövöm a méretét 100x100-asra mondjuk, a színeket tartalmazó tábla nem látszik rajta.
Van tippetek, mitől lehet?
Ha kialertelem a tabla változó innerHTML-ét, akkor szépen látszik, hogy a tábla rendben legenerálódott.
Üdv:
hemu
■ Bocs, hogy új témát nyitotam, de elég "egyedi" a bajom.
Adott egy kód:
function createcp(name){
layer = document.createElement("div");
layer.id = name;
layer.style.background = "#FFFFFF";
layer.style.border = "1px solid black";
layer.style.position = "absolute";
layer.style.visbility = 'hidden';
layer.style.top = yMousePos + "px";
layer.style.left = xMousePos + "px";
var colors = Array('FF','CC','00','99','66','33');
if (!clrs){
var clrs = Array();
for (i = 0;i < colors.length;i++){
for (j = 0;j < colors.length; j++){
for (k = 0;k < colors.length; k++){
clrs[clrs.length] = '#' + colors[i] + colors[j] + colors[k];
}
}
}
}
tabla = document.createElement("table");
tabla.cellSpacing = 0;
tabla.cellPadding = 0;
for (i=0;i<clrs.length;i++){
if(i%18==0){
TR=document.createElement("tr");
TR.style.height = 10 + 'px';
tabla.appendChild(TR);
}
TD = document.createElement("td");
TD.style.cursor = "pointer";
TD.style.width = 10 + 'px';
TD.style.height = 10 + 'px';
TD.style.border = '1px solid white';
TD.bgColor = clrs[i];
TD.onclick = function(){colorFormat(this.bgColor,name)};
TD.onmouseover = function(){this.style.border = '1px solid black';};
TD.onmouseout = function(){this.style.border = '1px solid white';};
TD.innerText = " ";
TR.appendChild(TD);
}
layer.appendChild(tabla);
document.body.appendChild(layer);
document.getElementById(name).style.visibility = 'visible';
}
Van tippetek, mitől lehet?
Ha kialertelem a tabla változó innerHTML-ét, akkor szépen látszik, hogy a tábla rendben legenerálódott.
Üdv:
hemu
Mi a baj a kódommal?
Sziasztok!
Van egy flash php kommunikációm, de csak egyirányú, nevlist.php:adatbázisból kiszedek egy halom nevet, amit "\n"-el elválasztok egymástól és a $nevek3-ba tárolom
flashben combo boxban jelenítem meg, action script:a combo boxban meg is jelenik, de ha kiválasztok egy nevet, rányomok egy gombra, ami meghív egy másik php-t, nem adja át így: $neve = $_POST['nevek'];
a leyerre kell rakni az as-et vagy a comboboxra?
■ Van egy flash php kommunikációm, de csak egyirányú, nevlist.php:
<?php
include("db.php");
$nevek=mysql_query("select * from nevek");
while ($sor=mysql_fetch_array($nevek))
{
$nevek2 .=$sor["nev"]."\n";
}
$nevek3 = mb_convert_encoding($nevek2, "UTF-8");
print $nevek3;
?>
flashben combo boxban jelenítem meg, action script:
myVars = new LoadVars();
myVars.load("nevlist.php");
myVars.onData = function(raw) {
tmp = raw.split("\n");
for(var i=0;i<tmp.length;i++) {
tmp2 = tmp[i].split(":");
nevek.addItem(tmp2[0], tmp2[1]);
}
}
function traceCombo(nevek) {
trace ("Selected Data: " + nevek.getSelectedItem().data);
}
a leyerre kell rakni az as-et vagy a comboboxra?
Sablon rendszerrel kapcsolatban kérnék segítséget
A segítségeteket szeretném kérni, régóta foglalkoztat a gondolat, hogy egy sablon rendszert elkezdjek használni. Smarty-t egyszer megnéztem és biztos vagyok benne, hogy jó és használható, de miután eleget olvasgattam a témában úgy gondolom sokkal ésszerűbb php nyelven kezelni a sablonokat több szempontból is. A problémám abból adódik, hogy hiába töltöttem estéket azzal hogy utánajárjak annak, hogy php-ben hogyan tudnám megvalósítani ezt, nem sikerült megértenem jobban a hogyanját. Sajnos nem vagyok phpguru, de látom a pozitív oldalát a sablonoknak és ha valaki megtenné, hogy elmagyarázza, hogyan működik a sablon kezelés pontosan és mit érdemes tudnia egy ilyen rendszernek, akkor nagyon szépen megköszönném. Ha esetleg példákkal is meg tudná valaki mutatni azt is megköszönném, de nem várok kész megoldást, bár nem titkolom kerestem hasonló egyszerű rendszert, hogy az alapján sajátot írhassak. Furcsának tűnhet, hogy ha nem tudom hogyan is működik a dolog akkor miért akarom használni, no a válaszom az, hogy egyrészt a kinézetét az oldalnak könnyebben megtudnám változtatni, másrészt ha olyasvalakivel dolgozok együtt egy projecten aki nem programozó, akkor ne kelljen neki a php kóddal túl sokat foglalkoznia, csak alapvető dolgokat kelljen megmutatnom neki. Elnézéseteket kérem mindenesetre, mert tudom hogy ez a téma már sokszor felmerült, igyekeztem megoldást találni de sajnos már nemtudom hol keressem a választ. Segítségeteket előre is köszönöm.
■