Tehnici de machetare ecran (tpz; atribMarci;)

Slides:



Advertisements
Prezentări similare
Şcoala Gimnazială Nr. 7 "Sfânta Maria" Timişoara-România
Advertisements

Relatii intre radacini si coeficienti (relatiile lui Viète)
Algoritmii Dijkstra si Bellman-Ford pentru determinarea costului minim
Determinarea divizorilor unui numar
-Algebra Relațională II-
Registrul Potentialilor Contractori (RPC)
Persistenta datelor Multe aplicatii doresc sa asigure persistenta datelor Metode/Tehnologii: Fisiere Serializare Baze de date Probleme: Decuplarea componentelor.
Eurobot 2019.
Internet - notiuni generale
Review: Broker In contextul aplicatiilor distribuite (bazate pe interactiuni de tip client-server), se doreste: Separation of concerns: logica aplicatiei.
Educație financiară Internet banking.
ÎNTREBĂRILE PE CARE AR TREBUI SĂ NI LE PUNEM
CONSFĂTUIREA PROFESORILOR DE LIMBA ȘI LITERATURA ENGLEZĂ
SUB LUPA COFACE INTERCREDIT
CREAREA DE LINK-URI.
Lectia a II-a PowerPoint
Birotica  Excel_2 C6 / Prezentare generală Ferestra Excel
TABELE.
Curs 4 Analiza structurii unei lucrări (de ce mi-a plăcut această lucrare?) Analiza conţinutului unei abordări în QA.
Facultatea de Informatică Universitatea “Al. I
.NET Framework Limbajul C#.
Birotica  Excel_1 C5 / Prezentare generală Ferestra Excel
CRITERII DE REPARTITIE
Conținut Matrice.
MEDIUL LIMBAJULUI DE PROGRAMARE STUDIAT
Management performant în administrația publică din Municipiul Vulcan
PORTMEIRION - LOCUL EXOTIC DIN TARA GALILOR
Sisteme Încorporate Curs 2.
CRITERII DE REPARTITIE
HTML Formatare text.
Inserarea hiperlegaturilor
Alimentatia.O viata mult mai buna si sanatoasa
Organizarea informaţiilor pe disc
MODULUL III: NOILE TEHNOLOGII SI OPTIMIZAREA LOR IN EDUCATIE
Pentru a insera acest diapozitiv în prezentare
Mid-Term Planning International 2016 Country Name
Eveniment de lansare proiect Activitati si rezultate
Pentru a insera acest diapozitiv în prezentare
SORTAREA PRIN METODA BULELOR
2. Unitatea aritmetică și logică
Instrumente şi mecanisme de promovare prin sectorul public
Aplicații for Nivel - Inițiere.
S t r u c t u r i l i n i a r e  .
Optimizarea funcțiilor de pierdere. Algoritmul coborârii pe gradient.
Prof. univ. dr. DORIN MITRUŢ
Nivel, protocol, serviciu Modele de referinta Echipamente de retea
Paşii de urmat pentru instalarea Revisal - versiunea
Perspectivele implementarii SEPA in Romania
SENZORI ȘI TRADUCTOARE INTELIGENTE
CONFERINTA in parteneriat cu SECTRA si
Verificarea unei relatii între date. Funcţia IF Functia COUNTIF
Fă parte din Agricultura Susținută de Comunitate!
Instrumentele financiare derivate
Top 100 România 2003 Caracteristica esenţială: pentru prima oară, după 7 ani consecutivi cu pierderi, rata consolidată a profitabilităţii generale este.
Implicarea în procesul de formare profesională a Patronatului Român din Industria de morărit și panificație - Rompan Dr. ing. Daniela Voica – Director.
Cursul 7: Memorarea şi managementul informațiilor economice
Curs 10-Operatii cu pointeri -Pointeri la tablouri
Lectia “Binomul lui Newton” clasa a X-a
Prezentare Unitate Centrala
Cum facem un CD sau DVD bootabil cu Nero
ESANTIONAREA SI CUANTIZAREA IMAGINILOR 1. Introducere
Sisteme de operare în timp real Contiki
Introducere in Geoinformatica
Outlook să lucreze pentru dvs.
Curs 9-Pointeri la variabile -Pointeri la siruri de caractere
Structura sistemelor de calcul (02-3)
2005 – ANUL IMM-urilor BANCA TRANSILVANIA Bucuresti, 22 martie 2005.
Profesor coordonator: prof. ing. POP ȘTEFAN DAN
Proiect Tehnologia informatiei si comunicarii
Transcriere de prezentare:

Tehnici de machetare ecran (tpz; atribMarci;) Instanţiere dinamică de controale Masive de controale Derivare din controale; validare Completare date prin suprapunere de controale Ghidare utilizator prin sincronizarea controalelor Serializare / deserializare obiecte; shallow/deep copy

Instanţiere dinamică de controale Designer => static; dinamic => program ex: schimbare opţiuni/proprietati, legare-dezlegare funcţii public TextBox txtBoxDinamic; // declaratie in clasa // in constructor sau undeva in zona cod executabil txtBoxDinamic = new TextBox(); txtBoxDinamic.Location = new Point(100, 100); this.Controls.Add(txtBoxDinamic);

Masive de controale public TextBox[][] m; // in clasa Form1 m = new TextBox[3][]; for (i = 0; i < 3; i++) m[i] = new TextBox[6]; // in cons Form1, dupa InitializeComponents, sa existe t00,... m[0][0] = t00; m[0][1] = t01; m[0][2] = t02; m[0][3] = t03; m[0][4] = t04; m[0][5] = t05; m[1][0] = t10; m[1][1] = t11; m[1][2] = t12; m[1][3] = t13; m[1][4] = t14; m[1][5] = t15; m[2][0] = t20; m[2][1] = t21; m[2][2] = t22; m[2][3] = t23; m[2][4] = t24; m[2][5] = t25;

Masive de controale private void btnAddLinie_Click(object sender, System.EventArgs e) { TextBox[] n; n = new TextBox[m[0].Length]; // linie noua,cu atatea referinte cat linie 1 int dist = m[1][0].Location.Y - m[0][0].Location.Y; // dist pe verticala intre primele doua linii for (i = 0; i < m[0].Length; i++) // cate col are linia n[i] = new TextBox(); //instatiere textBox pt fiec col n[i].Location = new Point(m[0][i].Location.X, m[m.Length - 1][i].Location.Y + dist); // aliniere: orizontala=acelasi x ; verticala=Y crescut cu dist n[i].Size = m[0][i].Size; this.Controls.Add(n[i]); // dimensionare ca textBox+ul analog linie 1 + adaugare } n[n.Length - 1].ReadOnly = true; TextBox[][] aux = m; // redimensionare matrice de textBoxuri m = new TextBox[aux.Length + 1][]; // vectorul de linii + inca una noua for (i = 0; i < aux.Length; i++) m[i] = aux[i]; // leg liniile existente m[aux.Length] = n; // adaug si pe cea noua

Derivare controale (textBox numeric) public class TextBoxNumeric: TextBox // dupa cls Form1 !! { protected override void OnKeyPress(KeyPressEventArgs e) if(e.KeyChar >='0' && e.KeyChar <= '9' ) base.OnKeyPress (e); else e.Handled=true; }   public TextBoxNumeric txtBoxNum1; // in cls Form1 txtBoxNum1= new TextBoxNumeric(); // in constructor Form1 txtBoxNum1.Location = new Point(100, 200); this.Controls.Add(txtBoxNum1); 

Completare date prin suprapunere de controale Un sigur ComboBox (meniul restaurantului) se afiseaza peste diverse textBox-uri private void tb_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { cine=(TextBox)sender; cb1.Location= cine.Location; cb1.Visible=true; } Funcția de tratare MouseDown se leagă de toate textBox-urile care trebuie sa reacționeze la suprapunere de comboBox. private void cb1_SelectedIndexChanged(object sender, System.EventArgs e) cine.Text = cb1.Text; cb1.Visible = false;

Ghidare utilizator prin sincronizarea controalelor private void marca_SelectionChangeCommitted(object sender, System.EventArgs e) { this.pers.Enabled = true; this.marca.Enabled = false; } private void pers_SelectedIndexChanged(object sender, System.EventArgs e) { ListViewItem itm = new ListViewItem(marca.Text); itm.SubItems.Add(pers.Text); lv.Items.Add(itm); // pers.Items.Remove(pers.SelectedItem); this.pers.Enabled = false; this.marca.Enabled = true; }

Serializare / deserializare obiecte Atributul [Serializable] private void btnSave_Click(object sender, System.EventArgs e) { ArrayList list = new ArrayList(); for (int i = 0; i < m.Length; i++) LinFact lin = new LinFact(m[i][1].Text, m[i][2].Text, m[i][3].Text, m[i][4].Text); list.Add(lin); } FileStream s = new FileStream("NotePlata.dat", FileMode.Create); BinaryFormatter f = new BinaryFormatter(); f.Serialize(s, list); s.Close();

Serializare / deserializare obiecte private void btnRestore_Click(object sender, System.EventArgs e) { FileStream s; s = new FileStream("NotePlata.dat", FileMode.Open); BinaryFormatter f = new BinaryFormatter(); ArrayList lista = (ArrayList)f.Deserialize(s); s.Close(); foreach (LinFact lin in lista) // procesare ArrayList } - ce obiecte stochează(deschid fisier cu Notepad); ArrayList doar le înlănţuie - ce format (intern) ? De ce nu initializez lista = new ArrayList() ?

Clonarea obiectelor public class Pers { public int Varsta; public string Nume; public Vehicul Auto; public Pers(int v, string n) { Varsta = v; Nume = n; } // ….. public Pers ShallowCopy() return (Pers)this.MemberwiseClone(); }

Clonarea obiectelor public class Pers { public int Varsta; public string Nume; public Vehicul Auto; public Pers(int v, string n) { Varsta = v; Nume = n; } // ….. public Pers DeepCopyCons() Pers other = (Pers)this.MemberwiseClone(); other.Auto = new Vehicul(this.Auto.IdNumber); return other; }

Clonarea obiectelor [Serializable] public class Pers { public int Varsta; public string Nume; public Vehicul Auto; public Pers(int v, string n) { Varsta = v; Nume = n; } // ….. public Pers DeepCopySerializ() MemoryStream m = new MemoryStream(); BinaryFormatter b = new BinaryFormatter(); b.Serialize(m, this); // serializeaza this, adica obiect Pers m.Position = 0; return (Pers)b.Deserialize(m); // deserializeaza, instantiind si vehicolul // recursiv: Pers refera Auto, Auto refera Fabrica etc. }