Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum accesez site-ul CNAS ?

Algoritm simplu de calculare al u...

Bitdefender Total Security ș...

casa verde 2024
 Intrerupator cu N - doza doar cu ...

Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata

Suprataxa card energie?!
 Cum era nivelul de trai cam din a...

probleme cu ochelarii

Impozite pe proprietati de anul v...

teava rezistenta panou apa calda
 Acces in Curte din Drum National

Sub mobila de bucatarie si sub fr...

Rezultat RMN

Numar circuite IPAT si prindere t...
 

Scriere multipla in ListBoxuri VB6

- - - - -
  • Please log in to reply
14 replies to this topic

#1
seichter

seichter

    Junior Member

  • Grup: Junior Members
  • Posts: 34
  • Înscris: 09.02.2015
Va salut,

In aplicatia pe care o dezvolt am nevoie sa scriu acelasi mesaj in 9 Listboxuri din 9 Formuri,deci:

Am 9 Form cu cite un ListBox in fiecare.
La generarea unui eveniment as vrea ca acelasi mesaj sa se scrie in toate ListBoxurile ca sa le vad in orice Form as fi.
Varianta primitiva ar fi sa pun in eveniment sa scrie in toate ListBoxurile:
Eveniment
Form1.ListBox.AddItem("Eroare")
Form2.ListBox.AddItem("Eroare")
Form9.ListBox.AddItem("Eroare")

Insa e total aiurea atitea linii de cod.Banuiesc ca o functie ar rezolva,dar nu stiu de unde sa incep.
Orice idee e binevenita

#2
paull

paull

    Junior Member

  • Grup: Members
  • Posts: 47
  • Înscris: 26.01.2004
O alta varianta care imi vine in minte este:
Sa afisez in Form1.Listbox("Eroare")
Si apoi apelez o procedura pe care o creez intr-un modul.
In procedura setez ca toate ListBoxurile de la 2 la 9 sa copieze continutul lui Form1.ListBox si sa-l afiseze.Astfel pot avea ce mi-am propus.


#3
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 19,980
  • Înscris: 24.02.2006
vezi ca ai postat cu clona :)

#4
paull

paull

    Junior Member

  • Grup: Members
  • Posts: 47
  • Înscris: 26.01.2004
Legat de clona,habar nu am ce se intimpla.M-am trezit cu 2 conturi,paull e unul vechi de prin 2000 si ceva  iar de seichter nu stiu de unde aparut,e userul de pe elforum.Poate imi spui cand a fost creat userul seichter,poate ma luminez si imi dau seama ce se intimpla.

#5
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005

View Postpaull, on 01 noiembrie 2016 - 21:31, said:

Legat de clona,habar nu am ce se intimpla.M-am trezit cu 2 conturi,paull e unul vechi de prin 2000 si ceva  iar de seichter nu stiu de unde aparut,e userul de pe elforum.Poate imi spui cand a fost creat userul seichter,poate ma luminez si imi dau seama ce se intimpla.
e greu cu cititul -- vezi sub imaginea generic
<----------- Înscris: 09.02.2015 -----------------

#6
paull

paull

    Junior Member

  • Grup: Members
  • Posts: 47
  • Înscris: 26.01.2004
Sa lasam clonele si revenim la topic,vreo idee Marian?

#7
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 19,980
  • Înscris: 24.02.2006
informatiile date de tine sunt prea putine incat sa ti se poata da o solutie corecta
tu ai de fapt 9 instante ale unor clase, care intamplator au toate o proprietate numita ListBox. cum se creeaza aceste instante, daca sunt cumva ale aceleiasi clase, de unde anume vrei sa le controlezi, n-avem de unde stii.
la modul general ai putea implementa o interfata in clasele respective (parca VB6 stia de asa ceva), iar acolo unde le instantiezi poti sa pastrezi un array cu instantele create; cand ai nevoie poti itera prin array si, profitand ca toate implementeaza o interfata care expune o proprietate ListBox, le poti adauga acel text in ListBox-uri.

#8
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,528
  • Înscris: 06.03.2016
Poti creea un array cu toate listbox-urile.
Nu cunosc vb6, deci nu intru in detalii.

Edited by red46, 02 November 2016 - 10:47.


#9
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
subclasezei listbox,
adaugi eveniment "broadcast" la care ii spui sa-si adauge in lista acel item "Eroare"

#10
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011
intr-una din forme, nu intr-un modul faci o functie care are ca unic parametru mesajul dorit
Private/Public Function fMsg(ByVal xMsg As String)
   Dim xFrm As Form
   Dim xLst As ListBox
   For Each xFrm in Forms
	  For Each xLst.AddItem xMsg: Next
   Next
End Function

apelare:
fMsg "Error"


Edited by MarianG, 29 March 2018 - 16:45.
[code]


#11
paull

paull

    Junior Member

  • Grup: Members
  • Posts: 47
  • Înscris: 26.01.2004
Multumesc pentru indrumari,am sa incerc sa implementez proounerile.

#12
seichter

seichter

    Junior Member

  • Grup: Junior Members
  • Posts: 34
  • Înscris: 09.02.2015
Salutare,m-am blocat intr-o chestie,poate ma deblocati voi:
O forma cu 6 textboxuri(un array).
Ma intereseaza ca atunci cand scriu  True in oricare din textbox sa se intimple urmatorul lucru:
-sa scrie in List1 niste informatii(Nr textboxului definit in proprietatea Tag,un text definit de mine si ora)
Toate acestea le-am realizat,insa problema o intimpin la trigger,in sensul ca
1.vreau sa scrie o singura data in List1 ca textbox1(0)  a avut valoarea True.
2.Din cauza ca folosesc Value_Change se "trigguie" de fiecare data si scrie in List1 si logul pentru textbox1(0) chiar daca true apare in textbox1(1) adica urmatorul textbox.
Mentionez ca trebuie sa evaluez cca 200 de textboxuri,care sunt folosite si ca vizualizare(se schimba culoarea in functie de True sau False).
Atasez si codul ca poate nu am reusit sa explic prea bine...
Private Sub Value_Change(Index As Integer)
Dim x As Variant
For x = 0 To 6
If Value(x) = "True" Then
Value(x).BackColor = &HFFFF80			'porto
Value(x).ForeColor = &H0&
List1.AddItem ("Nr") & Value(x).Tag & ("  ") & Now
End If
Next x
End Sub

Edited by MarianG, 29 March 2018 - 16:45.
[code]


#13
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018

View Postseichter, on 29 martie 2018 - 15:23, said:

Salutare,m-am blocat intr-o chestie,poate ma deblocati voi:
O forma cu 6 textboxuri(un array).
Ma intereseaza ca atunci cand scriu  True in oricare din textbox sa se intimple urmatorul lucru:
-sa scrie in List1 niste informatii(Nr textboxului definit in proprietatea Tag,un text definit de mine si ora)
Toate acestea le-am realizat,insa problema o intimpin la trigger,in sensul ca
1.vreau sa scrie o singura data in List1 ca textbox1(0)  a avut valoarea True.
Hello mai jos ai codul in Visual Basic .NET 2017 care face acest lucru. Ti-am anexat la sfarsit si proiectul in Visual Studio 2017 dar si un video ca sa vezi cum merge:

Public Class Form1
Dim mydata As Array
Public Sub New()
	 ' This call is required by the designer.
	 InitializeComponent()
	 ' Add any initialization after the InitializeComponent() call.
	 mydata = {
		 New StareControlText(TextBox1),
		 New StareControlText(TextBox2),
		 New StareControlText(TextBox3),
		 New StareControlText(TextBox4),
		 New StareControlText(TextBox5)
	 }
	 Timer1.Interval = 250
	 Timer1.Enabled = True
	 Dim i = 1
	 For Each item As StareControlText In mydata
		 item.refCtrlText.Tag = i
		 i += 1
	 Next
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
	 For Each i As StareControlText In mydata
		 If (i.refCtrlText.Text = "True") Then
			 i.schimbaStil()
			 If (Not (i.esteInListBox)) Then
				 i.adaugaInLista(ListBox1)
			 End If
		 ElseIf (i.refCtrlText.Text = "False" And i.esteInListBox) Then
				 i.reseteazaStil()
		 End If
	 Next

End Sub
End Class
Public Class StareControlText
Public refCtrlText As TextBox
Public esteInListBox As Boolean = False
Public pozitiaInLista As Integer = -1
Public valoarePentruLista As String = "NEDEFINIT_INCA"
Public Sub New(referintaImplicitaTextBox As TextBox)
	 refCtrlText = referintaImplicitaTextBox
End Sub
Private Function creazaValoarea() As String
	 valoarePentruLista = "Nr" & refCtrlText.Tag & " " & Now
	 schimbaStil()
	 Return valoarePentruLista
End Function
Public Sub schimbaStil()
	 refCtrlText.BackColor = Color.Blue
	 refCtrlText.ForeColor = Color.White
End Sub
Public Sub reseteazaStil()
	 refCtrlText.BackColor = Color.White
	 refCtrlText.ForeColor = Color.Black
End Sub
Public Sub adaugaInLista(refListBox As ListBox)
	 refListBox.Items.Add(creazaValoarea)
	 pozitiaInLista = refListBox.Items.Count
	 esteInListBox = True
End Sub
End Class

Attached Files


Edited by MarianG, 31 March 2018 - 17:53.
removed link


#14
WinstonMontana

WinstonMontana

    Active Member

  • Grup: Members
  • Posts: 1,913
  • Înscris: 20.02.2018
Revin cu un mic update, pentru tine, have fun  :
Public Class Form1
Dim mydata As Array
Public Sub New()
	 ' This call is required by the designer.
	 InitializeComponent()
	 ' Add any initialization after the InitializeComponent() call.
	 mydata = {
		 New StareControlText(TextBox1),
		 New StareControlText(TextBox2),
		 New StareControlText(TextBox3),
		 New StareControlText(TextBox4),
		 New StareControlText(TextBox5)
	 }
	 Timer1.Interval = 250
	 Timer1.Enabled = True
	 Dim i = 1
	 For Each item As StareControlText In mydata
		 item.refCtrlText.Tag = i
		 i += 1
	 Next
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
	 For Each i As StareControlText In mydata
		 If (i.refCtrlText.Text = "True" And Not (i.esteInListBox)) Then
			 i.adaugaInLista(ListBox1)
		 ElseIf (i.refCtrlText.Text = "False" And i.esteInListBox) Then
			 i.scoateDinLista(ListBox1)
			 For Each item As StareControlText In mydata
				 If (item.esteInListBox And item.pozitiaInLista > i.pozitiaInLista) Then
					 item.pozitiaInLista = item.pozitiaInLista - 1
				 End If
			 Next
		 End If
	 Next
End Sub
End Class
Public Class StareControlText
Public refCtrlText As TextBox
Public esteInListBox As Boolean = False
Public pozitiaInLista As Integer = -1
Public valoarePentruLista As String = "NEDEFINIT_INCA"
Public Sub New(referintaImplicitaTextBox As TextBox)
	 refCtrlText = referintaImplicitaTextBox
End Sub
Private Function creazaValoarea() As String
	 valoarePentruLista = "Nr" & refCtrlText.Tag & " " & Now
	 schimbaStil()
	 Return valoarePentruLista
End Function
Public Sub schimbaStil()
	 refCtrlText.BackColor = Color.Blue
	 refCtrlText.ForeColor = Color.White
End Sub
Public Sub reseteazaStil()
	 refCtrlText.BackColor = Color.White
	 refCtrlText.ForeColor = Color.Black
End Sub
Public Sub adaugaInLista(refListBox As ListBox)
	 refListBox.Items.Add(creazaValoarea)
	 pozitiaInLista = refListBox.Items.Count - 1
	 esteInListBox = True
End Sub
Public Sub scoateDinLista(refListBox As ListBox)
	 refListBox.Items.RemoveAt(pozitiaInLista)
	 esteInListBox = False
	 reseteazaStil()
End Sub
End Class

Am atasat si proiectul si un video care prezinta update-ul.

Attached Files


Edited by WinstonMontana, 31 March 2018 - 18:59.


#15
seichter

seichter

    Junior Member

  • Grup: Junior Members
  • Posts: 34
  • Înscris: 09.02.2015
Va multumesc pentru efortul vostru...deocamdata nu am mai lucrat la proiect...ma lupt cu efectele atacului cu WanaCry....

Edited by seichter, 01 April 2018 - 00:20.


Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate