Hirdetés

2024. május 3., péntek

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual Basic

Hozzászólások

(#2051) vilag válasza sztanozs (#2050) üzenetére


vilag
tag

Basszus, már össze-vissza beszélek.

A középre rendezéses kérdésem a MsgBox-ra vonatkozott. Csak ezért nem akartam egy új formot csinálni, gondoltam hátha van lehetőség arra, hogy középre rendeztessem a megjelenítendő szöveget, netalán tán még a színét is megváltoztassam.
Azonban ha jól értem akkor ezekre nincs lehetőség.

A korábbi kérdéseim pedig azért merültek fel, mert le akartam cserélni egy InputBox-ot saját formra, mert szükség lenne még ezen a beviteli panelen néhány más dolog 'eldöntésére' is.
Ez utóbbi nagyjábból úgy tűnik sikerült, bár most újra gondoltam az egészet és lehet, hogy máshogyan oldom meg.

(#2052) Bobrooney válasza vilag (#2051) üzenetére


Bobrooney
senior tag

MsgBox - rakj sima tabulátorokat untig elég, és egész gyors megoldás. Paraméterei között színezésre nem emlékszek.
InputBox - ez esetben érdemes a saját formod és TextBox.

(#2053) vilag válasza Bobrooney (#2052) üzenetére


vilag
tag

Ha addig nem beszélnénk, akkor Kellemes Húsvéti Ünnepeket és sok locsolót mindenkinek!

Gondolom sok itt a hölgy... :D

(#2054) Bobrooney válasza vilag (#2053) üzenetére


Bobrooney
senior tag

Viszont kívánom! :)) És több locsolót! :DDD

(#2055) alfa20


alfa20
senior tag

Sziasztok,

Excelben szeretnék makrót készíteni, és ehhez keresek magyar nyelvű könyvet, kettő könyv közt tanakodok:
1.) Demeter M. Ibolya: Visual Basic 6.0
2.) Peter G. Aitken - Visual Basic 6 - Kék könyv

nekem csak az Excelhez kell a VB és azt olvastam hogy erre a VB6 a jobb.
valaki tudna abban segíteni, hogy teljesen a nulláról, melyik könyvet érdemes választani esetleg mind kettőt, vagy van jobb választás?

Excelben azért otthon vagyok, írtam is már pár makrót rögzítéssel, de az összetettebbekhez kevés a tudásom

"Az agy olyan, mint az ejtőernyő: csak akkor működik, ha nyitott." (Thomas Dewar)

(#2056) Bobrooney válasza alfa20 (#2055) üzenetére


Bobrooney
senior tag

Szia!

Egyik tanárom jegyzete (nem végleges): [link] ez ingyenesen letölthető
Másik: Kovalcsik Géza: Az Excel programozása, Computerbooks, Budapest, 2005.

Erre mind a két könyv tökéletes, de kezdetnek talán az elsőt ajánlom.

(#2057) vilag


vilag
tag

Mi a különbség a CheckBox_Click és a CheckBox_Change között?

Értelmezésem szerint az lenne, hogy az egyik akkor fut e ha kattintanak, a másik meg akkor ha megváltozik.
Ez azt jelenti, hogy ha máshonnan változtatom meg az értékét, a change akkor is lefut, míg a másik esetben nem?

(#2058) sztanozs válasza vilag (#2057) üzenetére


sztanozs
veterán

KB igen - ez amúgy két külön esemény (pl. click után change is lefut, ha kattintás után megváltoztatod...)

alfa20 - VB6-nak kb annyi köze van a VBA-hoz (Visual Basic for Application - azaz az Office VB-je), hogy mind a kettő VB - persze, ha tudod programozni az egyiket, menni fog a másik is. No meg az alap nyelvi szintaktika is egyezik, de sem a fejlesztőkörnyezet, sem az alap osztály/függvény-könyvtár nem egyezik.

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2059) vilag


vilag
tag

Valaki áruja már el, hogy a vezérlők fókuszba hozása (setfocus paranccsal) mi a fészkes fenéért nem működik rendesen????

Már megőrjít.
Pl.: van nekem egy comboboxom amiben a település neveket lehet begépelni. Ha a megadott településnév hibás, akkor sima msgbox-al kap egy hibaüzenetet. Ezt 'leokézza', de a fókusz eltűnik, nem tudni hol van. Ez azonban még mind semmi, a visszatérési pontra (az msgbox üzenete utáni sorba) megírom a setfocus parancsot, de ennek ellenére sem kerül fókuszba.

Valaki mondja már meg mi vezérli, hogy mikor mi van fókuszban.

Köszönöm!

(#2060) martonx válasza vilag (#2059) üzenetére


martonx
veterán

Költői kérdésekre szerintem te is tudod a választ. Rég nem arra használod az excelt, és az excel makrót, amire az való.

Én kérek elnézést!

(#2061) pirit28


pirit28
csendes tag

Üdvözletem az uraknak !

Először is nem tudom ,hogy jó topik-ba írok-e,ha nem elnézést kérek.
A kérdésem a következő lenne.
2003-as excellben a fényképezőgép funkciót használva a képet beillesztettem egy cellába.
Egy másik táblában meg tudom -e jeleníteni ezt a képet egy függvény vagy makró használatával.
Pl:; 1 sheet1 b1-es cellájában van a kép, és a shett2 b1-es cellájába szeretném ezt látni valamilyen megoldással.A sheet a1-es cellában egy név található az b2-ben pedig a kép.A sheet2 a1 cellájába beírva a nevet, akkor az a sheet2 b1-es cellában megjelenjen.Remélem érthető voltam :) .

A választ előre is köszönöm.

(#2062) Bobrooney válasza pirit28 (#2061) üzenetére


Bobrooney
senior tag

Excel topic, én csak ennyiben tudok most segíteni, próbáld meg ott is.

(#2063) Burigabi


Burigabi
csendes tag

Sziasztok!
Nem vagyok járatos a Visual Basic-ben, de lenne egy problémám: 2010-es Accessben létrehozott Jelentést kell olyan szinten "leprogramozni", hogy a jelentés egyik mezője ha bizonyos értéket vesz fel, akkor a jelentés új mezőket jelenítsen meg. Ötlet?
Előre is köszönöm :)

(#2064) martonx válasza Burigabi (#2063) üzenetére


martonx
veterán

Ez alapján amit leírtál szerintem nem fog menni. A jelentéseknek mindig fix oszlopaik vannak, ráadásul hogy akarod a jelentés egyik mezőjét változtatni?

Én kérek elnézést!

(#2065) sztanozs válasza Burigabi (#2063) üzenetére


sztanozs
veterán

Ki kell rakni a mezőket a formra, a láthatóságot kikapcsolni és a figyelt mező format eseményébe bele kell íni, hogy ha felvesz a mező az adott értéket, akkor a plusz mezők láthatók, ha meg nem az, akkor nem láthatók:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Field2.Value = 1 Then
Field3.Visible = True
End If
End Sub

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2066) Burigabi válasza sztanozs (#2065) üzenetére


Burigabi
csendes tag

Private Sub Nyilvántartás_Click(Cancel As Integer, FormatCount As Integer)
If Nyilvantartás.Value = "D6" Then
Megjegyzés.Visible = True
End If
End Sub
így?

(#2067) sztanozs válasza Burigabi (#2066) üzenetére


sztanozs
veterán

Nem. Megnyitod a riportot design nézetben, kiválasztod az a felületet, ahol a megjelenítendő mezők vannak. Nekem Angol verzió van, ott Detail a neve annak a felületnek ahol az egyes adatokat rendezi, de ha a meződ fejlécben vagy láblécben van, akkor ott kell elhelyezni, nem "középen".
Ezután a Tulajdonságok lapon megkeresed az események tabot, att kiválasztod a Format eseményt (vagy ez is magyarítva van?), ott legenerálod az eseménykezelőt és abba illeszted be (nem a Click eseménybe, és nem a Nyilvantartas mező eseményébe, ahogy mutattad):
If Nyilvantartás.Value = "D6" Then
Megjegyzés.Visible = True
End If

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2068) Burigabi válasza sztanozs (#2067) üzenetére


Burigabi
csendes tag

Bocsi, hogy ilyen béna vagyok, de nem látszik sikerülni...
Megjegyzés mezö Visible paramétere false, a detail On Format eseménye pedig:
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
If Nyilvántartás.Value = "D6" Then
Megjegyzés.Visible = True
End If
End Sub

És hiába érkezik olyan mezö, amely értéke D6, ugyanúgy nem jelenít meg semmit

[ Szerkesztve ]

(#2069) Burigabi válasza Burigabi (#2068) üzenetére


Burigabi
csendes tag

Már megvan, kicsit másképp ugyan, de megvan. If-Else-be tettem bele a Visible-t és nem alapból letiltottam.
Köszönöm sztanozs a segítséget.

[ Szerkesztve ]

(#2070) dkaro


dkaro
őstag

Sziasztok!
Egy user felvelő scriptet fabrikálnék, de nem boldogulok a manager attributummal.
Van egy ilyen selectem amivel kilistázom a felhasználókat:
<select size="1" name="felettes">
<option selected value="-">-</option>
<script language="vbscript">
Set objOU = GetObject("LDAP://srv0101vg/ou=Varosgazda,dc=varosgazda,dc=hu")
objOU.Filter = Array("user")

For Each objUser in objOU
strUser=Right(objUser.Name, (Len(ObjUser.Name)-3))
document.write("<option value='"&objUser.Name&"'>"&strUser&"</option>")
Next
</script>
</select>

strFelettes=felettes.value
objNewUser.Put "manager", strFelettes

De hibával elszáll. Így is próbáltam megadni:
objNewUser.Put "manager", "CN="&strFelettes&",OU=ou,DC=domain,DC=hu"

Ezt se ettem meg. Nagyon láma vagyok a programozáshoz, valaki pls írja le mivel fog működni.:)
Köszönöm!
dkaro

(#2071) vilag


vilag
tag

Üdv!

Új kérdés merült fel bennem.

Alaphelyzet: van egy munkafüzetem ami automatikusan futtat egy userformot indításkor és a felhasználó minden változtatást csak ezen végezhet.

Lehet e azt valahogyan vizsgálni, hogy a nem az általam említett munkafüzet kerül fókuszba.

A kérdés oka az, hogy elég sok (de egy is elég lenne) vezérlőm menet közben kap értéktartományt RowSoure segítségével az említett munkafüzetből. Na már most ha a felhasználó futtatás közben a tálcán egy másik munkafüzetre kattint, akkor az enyém kikerül a fókuszból. Így amikor legközelebb a vezérlő a munkafüzetem egy bizonyos nevű lapjának bizonyos helyéről próbál értéket felvenni, akkor hibára fut mondván (és persze jogosan), hogy "Could' t set RowSource Property" Minthogy az aktív munkafüzetnek nincs olyan lapja amire én hivatkozok.

Továbbá érdekelne az is, hogy egy írásvédett munkafüzetet megnyitva azzal lehetővé tehető e az kódból, hogy önmagáról levegye az írásvédettséget, írjon a munkafüzetbe, mentse el majd újra legyen írásvédett a fájl.

Ennek célja, hogy az alapjáraton a felhasználók általi véletlen módosítások elkerülése érdekében levédett munkafüzetben bizonyos beállítások (ellenőrzött körülmények között) eltárolhatóak legyenek.

Előre is köszönöm a közreműködést!

(#2072) sztanozs válasza vilag (#2071) üzenetére


sztanozs
veterán

Ne "csak úgy" hivatkozz a lapokra, hogy "Sheet1" vagy Sheet("Alapadatok"), hanem mentsd el az elején a workbook-ot és hivatkozz rá úgy, hogy csinálsz egy publikus globális változót a workbookodnak:
'module1.bas - ba
Public databook As Workbook

'ThisWorkbook - ba
Private Sub Workbook_Open()
Set databook = Me
End Sub

'a többi modulban meg így használd
Public Sub akarmi()
'akarmi
'akarmi
'akarmi
'Sheets("Alapadatok") helyett használd:
databook.Sheets("Alapadatok")
'akarmi
'akarmi
'akarmi
End Sub

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2073) vilag válasza sztanozs (#2072) üzenetére


vilag
tag

Köszönöm a javaslatot.

Nekem volt egy másik ötletem is, miszerint:

Minden Change-hez beírom ezt:
Thisworkbook.Activate

Csak kicsit fárasztónak találtam ezt a megoldást.

A te javaslatod szerint ha jól értem, akkor az összes eddigi "régi típusú" hivatkozásomat le kell cseréljem?
Vajon a keresés/csere megoldást kínál nekem erre a problémára????

Másik problémára esetleg valami ötlet?

(#2074) sztanozs válasza vilag (#2073) üzenetére


sztanozs
veterán

Ha fájlrendszer szinten van rajta a read-only, akkor csak trükközéssel lehet levenni:
Megnyitni egy másik fájlt ami
- bezárja az aktuálisat,
- váloztatja a readonly attributomot
- beleír
- bezárja
- újra megnyitja
- visszadja a fókuszt és kilép

Szóval egyszerűbb, ha az adatok nem is az aktuális excelben vannak, hanem egy másikban amit szükség esetén szerkeszteni tud.

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2075) vilag válasza sztanozs (#2074) üzenetére


vilag
tag

Nagyjából nekem is ez a két megoldási lehetőség jutott eszembe.

Szívem szerint az elsőt csinálnám meg, már csak a kihívás kedvéért, de valószínűleg a második megoldás marad. Gondolom lefutásban is ez a megoldás tartana rövidebb ideig.

(#2076) vilag válasza sztanozs (#2074) üzenetére


vilag
tag

A második megoldás kész is van, de merült még fel néhány kérdés bennem.

Meg lehet-e azt oldani, hogy amikor megnyitom a segédtáblát, akkor az fel se ugorjon, csupán a háttérben nyíljon meg?

(#2077) martonx válasza vilag (#2076) üzenetére


martonx
veterán

Hogy nyitod meg? Szerintem amikor létrehozod az excel objektumot, rögtön tudsz neki display = false vagy valami ilyesmi értéket adni, és akkor mindent - a tényleges file megnyitást is - csak a háttérben csinálja.

Én kérek elnézést!

(#2078) vilag válasza martonx (#2077) üzenetére


vilag
tag

Megnyitás:

segedtabla = eleresiut + "\Sz.T.K._Segédtábla.xls"

On Error Resume Next 'ha esetleg valamilyen okból már nyitva lenne
Workbooks.Open (segedtabla)
On Error GoTo 0

(#2079) martonx válasza vilag (#2078) üzenetére


martonx
veterán

ok, akkor előtte, ahol a Workbooks.ot létrehozod, vagy még előtte, ahol az excel objektumot létrehozod, kellene hogy beállítsd. Csak körülbelülre mondom, lusta vagyok kipróbálni:

set ea = new excel.application vagy valami ilyesmi sorod van elvileg.

Aztán ea.display vagy ea.visible = false kell, és ekkortól az az excel objektumod végig a háttérben marad.

Én kérek elnézést!

(#2080) vilag válasza martonx (#2079) üzenetére


vilag
tag

Nem tudom, hogy számít e, de nem kell létrehozni a munkafüzetet, mert azt én már megcsináltam és azt nyitom ha bele kell írni, majd mentem és zárom, majd legközelebb ugyan ez a tábla kerül megnyitásra.

Úgy is mondhatnám ebben fogom tárolni a szükséges elmentendő dolgokat.

Az általad leírtakból azért megpróbálkozom a lehetőségekkel.

(#2081) martonx válasza vilag (#2080) üzenetére


martonx
veterán

"nem kell létrehozni a munkafüzetet, mert azt én már megcsináltam" - erről beszélek. Ahol ezt megcsináltad ott kell beállítani, hogy visible = false legyen.

Én kérek elnézést!

(#2082) vilag válasza martonx (#2081) üzenetére


vilag
tag

Többféleképpen is próbálkoztam, de egyelőre nincs eredmény.

Kísérletek:

Workbooks.Open(segedtabla).Display = False
Workbooks.Open(segedtabla).Visible = False

Eleddig nem sikerült elérnem a kíván eredményt.

(#2083) martonx válasza vilag (#2082) üzenetére


martonx
veterán

Megvan, bár ez lehet, hogy csak külső forrásból működik?

Application.Visible = False

Ezzel tudod kikapcsolni az exceled láthatságát. Viszont lehet, hogy ez a meglévő exceledet is eltünteti? Ez akkorj ön jól, amikor egy vbscriptel, vagy bármivel excel-t kell macerálni, és nem akarom villogtatni a képernyőn.
Magából az excelből belülről használva, nem tudom működik-e?

Én kérek elnézést!

(#2084) vilag válasza martonx (#2083) üzenetére


vilag
tag

Elsőre úgy tűnik működik, de már csak holnap vagy hétfőn tudom pontosabban megnézni.
Majd írok.

Addig is köszönöm!

(#2085) martonx válasza martonx (#2083) üzenetére


martonx
veterán

hú visszaolvastam, amit írtam, és tele van helyesírási hibákkal. Ezer bocsánat. :(

Én kérek elnézést!

(#2086) palimre válasza martonx (#2060) üzenetére


palimre
csendes tag

Miért kell egy fontos kérdésre szamárságot válaszolni? Nekem például ugyanez a problémám, már órák óta keresgélem a megoldást, de nem találom. Szóval örültem volna egy értelmes (hozzáértő) válasznak a kérdésre. Amúgy angol nyelvű lapokon már láttam, hogy ezzel többeknek gondja van, csak még a megoldást nem találtam meg.

(#2087) sztanozs válasza palimre (#2086) üzenetére


sztanozs
veterán

Az excelnek nem jó a fókusz-kezelése, ez egyértelmű.

Amúgy az adott vezérlő egy userformon van, vagy a worksheet felületén? Most hirtelen nem tudtam reprodukálni a problémát...

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2088) martonx válasza palimre (#2086) üzenetére


martonx
veterán

vilag-gal ez egy régi történet. Ő is tudja, hogy már rég túllépte azt a határt, amire az excel makró programozást kitalálták.
Ha te is túllépted ezt a határt, akkor ezt ideje felismerned, és a programodat immár nem excelben, hanem valamilyen más erre kitalált keretrendszerben újraírni.
Ha pedig - mint vilag - valamilyen külső infrastrukturális körülmény miatt ezt nem tudod megtenni, akkor meg nem kell csodálkozni, hogy az exceles makród néha bizony furcsán fog működni.
Ezt hozzáértőként javaslom. Mi itt cégen belül sok mindent excelben programozunk, de mindent abban programozni butaság lenne.

Én kérek elnézést!

(#2089) vilag válasza sztanozs (#2087) üzenetére


vilag
tag

Csak UserFormon vannak vezérlők, mert gyakorlatilag a munkalapokat a felhasználók számára "kiiktattáma".

A felépítés: UserForm amenyen van egy Frame (persze több is de az most nem érdekes), amelyen belül található a ComboBox.
A ComboBox-nak kötött az értéktartománya, ezért mikor abban nem szereplő adatot viszel be, feljön egy MsgBox, melyen csak egy OK gomb van.
Ha ezt megnyomod, akkor a MsgBox értelem szerűen eltűnik, azonban a fokusz nem tudni hová kerül, mert a kurzor sehol nem villog, mintha a fókusz nem került volna vissza a UserForm-ra.

(#2090) vilag válasza martonx (#2088) üzenetére


vilag
tag

Na igen, ez már valóban nem ma kezdődött, hanem egy messzi, messzi galaxisban... :)

Persze sok problémán átsegítettek már az itt tevékenykedők, főként martonx és sztanozs, és bizonyára még rengeteg kérdésem lesz, melyek közül számos hülyeség lesz :)

De aki nem kérdez, az általában nem is kap választ...

(#2091) vilag válasza palimre (#2086) üzenetére


vilag
tag

Esetleg ha megtalálod a megoldást, az engem is nagyon érdekelne.

Szerk: ezzel a hozzászólásommal Taggá váltam :)

[ Szerkesztve ]

(#2092) Bobrooney válasza vilag (#2091) üzenetére


Bobrooney
senior tag

Ezt mondjuk 1 HSZ-be is rakhattad volna....

(#2093) sztanozs válasza vilag (#2089) üzenetére


sztanozs
veterán

Próbáld meg, hogy először a frame kapjon focus-t és utána a benne levő kontrol.

Rájöttem mi a gond - gondolom a ComboBox1_Exit eseményt használod.
Ha szeretnéd visszaadni a fókuszt a comboboxra, cancel-eld le az eseményt:
Cancel = True - ne setfocussal próbáld meg megtartani a fókuszt, mert az eseménykezelő végén a környezet "veszi el" azt kontrolltól.

Ezt írja az Exit eseménykezelő help-je:
Note
To prevent the control from losing focus, assign True to the Cancel argument of the Exit event.

Másrészt ezt írja a SetFocus help-je:
The SetFocus method is valid for an empty Frame as well as a Frame that contains other controls. An empty Frame will take the focus itself, and any subsequent keyboard events apply to the Frame. In a Frame that contains other controls, the focus moves to the first control in the Frame, and subsequent keyboard events apply to the control that has the focus.

Exitnél alapvetően vagy másik kontrollra megy a fókusz, vagy input controlloknál Enter (és talán Esc) gomb hatására. Enter leütésénél a szülő kontroll kapja meg a fókuszt (form vagy frame) és osztja ki a beállításainak megfelelően.

Feltehetően egy olyan kontroll kapja meg a fókuszt (azon van a TabStop = 0 a properties ablakban), ami alapból nem kezel eseményeket (pl label, picturebox, vagy hasonló) és nem látszik rajta a fókusz. Legegyszerűbb, ha a combobox Tabstop-ja 0-ra van állítva, és akkor a panel fókuszba kerülésével ő kapja meg majd a fókuszt.

[ Szerkesztve ]

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2094) vilag válasza Bobrooney (#2092) üzenetére


vilag
tag

Azért írtam külön hozzászólásba, hogy követhető legyen, hogy kinek válaszoltam, így találtam logikusabbnak, nem a hozzászólások számát kívántam szaporítani.

Szerintem eztán is így fogok tenni, hacsak nem tiltja valamilyen szabály.

(#2095) Bobrooney válasza vilag (#2094) üzenetére


Bobrooney
senior tag

Nem igazán szokták szeretni :|

Vilag2: Itt a masik hsz

Vilag3: Valahogy így szokták, és el is van különítve.

(#2096) Rapido251


Rapido251
csendes tag

Üdv, szeretnék egy kis segítséget kérni tőletek, hátha valaki tud segíteni. Egy játékot csinálok egy versenyre, és egy dologgal nem tudok megbirkózni. Van egy céltábla és 3 részre van osztva. Nos, mind a 3 részére szeretnék írni egy feltételt. Például: a közepe 50 pontot érjen, a középső kör 25-öt, és a külső 10-et. De sehogy se boldogulok ezzel, hogy hogyan kell azt észlelni, hogy mikor melyik körben kattint. (A Visual Basic-et kb. 7 hónapja tanulom (programozást kb. másfél éve))

Itt a kép róla:

[ Szerkesztve ]

(#2097) martonx válasza Rapido251 (#2096) üzenetére


martonx
veterán

Ez most VB.Net-es winforms akar lenni?
Mert ott mondjuk megcsinálhatod, hogy 3 kör alakú vezérlőt raksz egymás fölé. A legnagyobb pirosat legalulra, a középső fehéret középre, legkisebb pirosat legfelülre.
Így el tudod kapni a kattintást, és le tudod kezelni, hogy éppen melyik részére ment a kattintás.

Én kérek elnézést!

(#2098) sztanozs válasza Rapido251 (#2096) üzenetére


sztanozs
veterán

Vagy matek: ha tudod, hogy pontosan mekkorák a körök, akkor kiszámolod, hogy kontoll középpontjától milyen messze kattintott és az alapján adsz pontot a click mouseup, vagy mousedown eseményben (mert csak ott kapod meg a koortdinátákat, a clickben nem).

JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...

(#2099) vilag


vilag
tag

Valahogyan ki lehet deríteni, hogy egy programból megnyitott fájl csak olvasásra nyílt-e meg?

Oka: a korábbiakban tárgyaltaknak megfelelően egy segédfájl létrehozása mellett döntöttem, tehát az elmentendő szükséges változókat ebbe teszem.
Mivel azonban a programot többen is használják (akár) egyszerre ezért előfordulhat, hogy a segédtáblát már megnyitotta írásra egy felhasználó (pontosabban ugye a program) amikor a másik felhasználó is meg akarja nyitni szintén írásra a fájlt.

A segédtábla meglehetősen rövid ideig van nyitva (a lehető legrövidebb ideig), talán 1-2 másodperc, de statisztikailag van rá esély, hogy egyszerre nyissák meg.

Ezért a második felhasználó által futtatott program nem tudja elmenteni a fájlt.

Fentiek miatt indokoltnak látom ennek a hibalehetőségnek az előre történő lekezelését.

Esetleg tegyem közös használatúvá a fájlt?

(#2100) vilag válasza vilag (#2099) üzenetére


vilag
tag

Kipróbáltam ezt a közös használatot. Egyelőre működőképesnek tűnik, de azért ha van valakinek valami jó ötlete ne fogja vissza magát, mert ebben a megoldásban nem bízom maradéktalanul.
Megnyugtatóbb lenne ha le tudnám kezelni az esetleges összakadásos hibát.

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Visual Basic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.