Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Brogyi: CTEK akkumulátor töltő és másolatai
- potyautas: Stand up és én
- Luck Dragon: Asszociációs játék. :)
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- hege8888: Retro Kocka Kuckó harmadjára Hódmezővásárhelyen
Új hozzászólás Aktív témák
-
trisztan94
őstag
válasz
Alexios
#5528
üzenetére
Bocsi a megkésett válaszért.
Na, igazából az a helyzet, hogy egy .sqlite fájlt akarok deploy-olni az xap-ban.
Eddig futásidőben hoztam létre az adatbázist, de most megváltozott valami, ezért már külső fájlból kell belerakni. A futásidőben való létrehozás nyilvánvalóan az izolált tárhelyre hozta létre az adatbázist, és pontosan ugyanez kellene nekem.Ezt csináltam:
Behúztam az adatbázist a solutionbe. (Databases/db.sqlite az útvonal)
Jobb klikk rá, Properties->
Build Action -> Content
Copy to output directory -> Copy alwaysNa most, ha jól tudom, ez csak olvasható tárhelyre fogja rakni, tehát írni nem lehet majd. Ami nem jó, ezért ezzel a kóddal, amikor indul app átmásolom az izolált tárhelyre, ahol írni és olvasni is lehet:
public void CopyDatabaseToIsolatedStorage()
{
// Obtain the virtual store for the application.
IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
// Create a stream for the file in the installation folder.
using (Stream input = Application.GetResourceStream(new Uri("Databases/db.sqlite", UriKind.Relative)).Stream)
{
// Create a stream for the new file in the local folder.
using (IsolatedStorageFileStream output = iso.CreateFile("db.sqlite"))
{
// Initialize the buffer.
byte[] readBuffer = new byte[4096];
int bytesRead = -1;
// Copy the file from the installation folder to the local folder.
while ((bytesRead = input.Read(readBuffer, 0, readBuffer.Length)) > 0)
{
output.Write(readBuffer, 0, bytesRead);
}
}
}
}Ez van a MainPage osztály konstruktorában:
if (!database.IsDbPresent().Result) // Ez egy bool-t ad vissza
{
Debug.WriteLine("Database file not found in Isolated Storage. Copying...");
database.CopyDatabaseToIsolatedStorage();
}Na most az a probléma, hogy ez szépen működik, amíg debug módban emulatorban, vagy telefonon tesztelem. Onnantól kezdve, hogy lehúzom a telefont a gépről és később indítom el, valamiért nem tudja olvasni az adatbázist.
Hogyan kell ezt "rendesen" megoldani? Van ennek egy bevált módszere?

-
-
trisztan94
őstag
válasz
Alexios
#5449
üzenetére
Köszönöm!
Annyi kellett, hogy a RenderTransform értékét nullára állítottam, ahogy írtad

Más:
Van egy listám, és egy másik listám, aminek a tartalma pontosan ugyanaz, mint az első listának:
List<Tipus> eredetiLista;
List<Tipus> tempLista;
-- Konstruktorban
eredetiLista = valami.GetData();
tempLista = eredetiLista;Egy metódusban dolgozok a tempListával, ott van egy ilyen rész:
tempLista.remove(tempLista[elem])
Ez szépen ki is szedi a tempListából a megadott elemet, de közben kiszedi az eredetiLista-ból is.
Ez normális?
Mindenképpen így kell nekem dolgozni, két listával, úgy, hogy egymástól függetlenül tudjak törölgetni belőlük elemeket, és úgy, hogy mindkettőnek ugyanaz az induló értéke.
a valami.GetData() random értékeket ad át eredetiLista-nak, tehát nem tudom a tempLista-ra is lekérni úgy, hogy egyező legyen. -
Alexios
veterán
válasz
Alexios
#5425
üzenetére
illetve ha jól emlékszem minden frameworkelementnek van egy Tag property-je is, az is kiegészítő adat megadására van
Ja erre meg:
Én itt arra gondoltam, hogy csinálok egy globális Word típusú változót, amiben benne lesz a behúzott kártya List<Word> értéke. Ez hülyeség?Szerintem az, kicsit overkillnek hangzik, ha nagyon már valami ilyesmit akarsz akkor is bőven elég lenne csak az id-ket eltárolni, és összehasonlítani, mert ha jólértem az ugyanaz mindkettőnél.
-
haromegesz14
senior tag
válasz
Alexios
#5291
üzenetére
Igaz, jövök is a kódrészlettel. Tehát azt szeretném ezzel elérni, hogy a for ciklus változójáról ugye amit folyamatosan növel, ha éppen 5-el osztható, akkor legyen ott egy sortörés. A string tömbömet sikerült feltöltenem, csak ötössével tagolva szeretném sorokba rendezni az X elemét. Metódussal viszont csak idáig jutottam:
static bool otodikE(string[] A)
{
bool otodik = false;
for (int i = 0; i < A.Length; i++)
{
if (i%5=4) otodik true;
}
return otodik; -
válasz
Alexios
#5161
üzenetére
MEgoldottam Sting Arrayel. De csodálkozom hogy nem lehet C#-ban dinamikus tömbnek értéket adni...
Megoldás:int fCount = myReader.FieldCount;
for (int i = 0; i < fCount; i++)
{
String fName = myReader.GetName(i);
}
int fRcount = 0;
while (myReader.Read())
{
fRcount++;
}
myReader.Close();
string[,] Query = new string[fRcount, fCount];
myReader = catCMD.ExecuteReader();
int fRcount2 = 0;
while (myReader.Read())
{
for (int i = 0; i == fCount-1; i++)
{
Query[fRcount2, i] = myReader[i].ToString();
}
fRcount2++;
} -
válasz
Alexios
#5159
üzenetére
Ilyenkor hogy működik az értékadás?
while (myReader.Read())
{
fRcount++;
Query[fRcount][0] = myReader[0].ToString();
Query[fRcount][1] = myReader[1].ToString();
Query[fRcount][2] = myReader[2].ToString();
}Így próbáltam de azt mondta: Additional information: Az index az engedélyezett tartományon kívül esett. Az index nem lehet negatív, és kisebbnek kell lennie a gyűjtemény méreténél.
-
trisztan94
őstag
válasz
Alexios
#5144
üzenetére
No, belekezdtem a data bindingba,de egy kis problémába ütköztem:
Első körben az összes stringet ami az alkalmazásban van beraktam az AppResources.resx fájlba, mivel kétnyelvű lesz a program (angol és magyar). Minden flottul megy, gombokra működik a binding:
<Button
Name="login"
BorderThickness="0"
Height="70"
Click="login_Click"
Margin="311,388,265,22"
Content="{Binding Path=LocalizedResources.LogInText, Source={StaticResource LocalizedStrings}}">
<Button.Background>
<ImageBrush ImageSource="/Assets/Menu/mainMenuButton@2x.png"/>
</Button.Background>
</Button>Szépen megjelenik a string amikor futtatom az alkalmazást.
Viszont valamiért TextBlock-al nem működik. Nem egy darabbal, az összessel. Így használom:
<TextBlock
Name="sudentNameText"
Text="{Binding Path=LocalizedResources.LoggedInText, Source={StaticResource LocalizedStrings}}"
Margin="31,0,670,451"/>Természetesen ugyanúgy benne van a resource fájlban a string. Mint mondtam, egyik TextBlock-al sem működik a binding valamiért
Ha implicit beírom a Text attribútumba a szöveget, akkor megjelenik.Mit csinálok rosszul?

Bocsi a sok hülye kérdésért

-
Karma
félisten
válasz
Alexios
#5136
üzenetére
Én úgy csinálnám - ezzel nem akarom implikálni, hogy ez követendő minta, csak az ízlésem más -, hogy az oldal DataContextje (aki egy viewmodel) felelős ezért.
Lenne egy DispatcherTimere és egy olyan propertyje, amin a képfájl elérési útvonala érhető el. Belül meg van egy fájllistája, amiből tickenként kiveszi a következő elemet, és az INotifyPropertyChanged interfészen keresztül felszól a XAML-nek, hogy változott a kép.
Fenn pedig egy szimpla bindinggal le van tudva a történet, 0 C# kód.
Ha mondjuk fade animáció is kéne a képek között, az valószínűleg kicsit bonyolultabb, de akkor meg írnék egy attached propertyt, ami kezeli az effektet. A bemenete ugyanúgy a bindingból jönne.
-
Karma
félisten
válasz
Alexios
#5121
üzenetére
Juj és pfúj. Persze majd ha felengedi, akkor meg másik brusht állít neki kézzel
A codebehind nem arra való, hogy azokat a dolgokat írja meg az ember, amiket egyébként is tud a rendszer... amargo közben megelőzött 
Rengeteg deklaratív megoldás van erre a problémára. Például az alap Silverlight elemek legtöbbje rendelkezik Normal, Pressed, Disabled állapotokat, amiket könnyen felül lehet bírálni Blendben a States fülön.
A pozíciónálós történetet is meg lehetne oldani okosabban: például egy Converterrel, ami figyelembe veszi a skálázás értékét (Application.Current.Host.Content.ScaleFactor), és az alapján felszorozva amikor Thickness objektumot ad vissza.
-
trisztan94
őstag
válasz
Alexios
#5127
üzenetére
Hát nem az én ötletem, nekem is ki van a f*szom emiatt

Viszont nem nagyon vágom, hogy hogyan lehetne arányokkal olyan pontossággal megadni, mint pixelekkel?
Pl. egyik gomb margói: 270,92,270,289, az alatta lévőé: 308,-28,252,28
Tehát nem pontosan egymás alatt vannak. Ezt hogy adom meg arányokban?

-
trisztan94
őstag
válasz
Alexios
#5123
üzenetére
Azt a dolgot rakom össze amiről már korábban kérdeztem: "láthatatlan" gombokat rakok rá egy képre, hogy nyomható legyen. Margókkal játszadozom, hogy szépen fölé kerüljön, ezt a designerben csinálom, drag n droppal.
Na most amikor végre elégedett vagyok, hogy pont felette van, elindítom telefonon és valamennyivel el van csúszva a gomb, meg a grafika is kifér teljesen (16:9-es a grafika, a designer ahogy látom 15:9-es). Nem akkora probléma, de zavaró.
Közben sikerült véletlen kitörölnöm az AppResources.resx és AppResources.designer.cs fájlokat a Resources mappából, azt a következményt okozva, hogy hiányolja őket az alkalmazás, kb. 40 hibaüzenetet kapok. Újra lehet ezeket generálni az alapértelmezett beállításokkal, vagy csináljak egy új projektet, majd csak másolgassam át a kódom?
-
trisztan94
őstag
válasz
Alexios
#5121
üzenetére
Köszönöm!

Még egy gyors kérdés és hagylak titeket:
A designerben lévő "készüléket" nem lehet megváltoztatni? HTC 8x-en tesztelem az alkalmazást, de annak más a képernyő aránya, így pár dolog elcsúszva jelenik meg, mint designerben vagy emulatorban. Fontosabb, hogy a designernek ugyanaz legyen a képernyőaránya, mint a készülékemnek, hiszen azon "rakom össze" a kinézetet.

-
Karma
félisten
válasz
Alexios
#5110
üzenetére
Azért az elég gáz, ha egy potenciálisan nullt visszaadó hívás után nem nézed meg az eredményt.
Az as egyébként ilyen esetekben szerintem kevésbé ronda, mint kézzel típust ellenőrizni és utána direct castolni.Mondjuk sok múlik a környezeten. DependencyObjectek tájékán mindig as-t szoktam használni, mert a XAML felől nincs típusellenőrzés így sok csekkolást igényel. Máshol meg nem szoktam castolni, csak ha muszáj

Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- HIBÁTLAN iPhone 12 Mini 64GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3453
- Samsung Galaxy S20 128GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude 7420 Core i7-1185 G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- ÁRGARANCIA!Épített KomPhone i5 10400F 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- HP 200W töltők (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm, 928429-002
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



Mindössze egy átlátszó, az oldal felett lebegő, kézzel pozícionált, grafikus gyorsítás nélküli konténer. A képernyő elsötétítése, a belengő animáció, na meg a tartalom teljes egészében a fejlesztő reszortja.
Ha implicit beírom a 
A codebehind nem arra való, hogy azokat a dolgokat írja meg az ember, amiket egyébként is tud a rendszer... amargo közben megelőzött



