Înțeles, a tastat modulul și a construit Scroll, dar a existat o altă întrebare.
Cum de a face ca, la reducerea dimensiunii unei ferestre, alergătorul să nu alerge prea departe? Ie Cu fereastra standard deschisă, totul este bine, dar merită să modificați mărimea ferestrei, deoarece derularea poate fi împinsă la o valoare foarte mare în jos / stânga.
Și există încă o urmă, cum să scapi de ea? Redactarea cu reîmprospătare nu a ajutat. Pur și simplu redigulează formularul, dar nu îl actualizează.
Kekir a scris: (a) Cum să facem ca atunci când dimensiunea ferestrei să fie redusă, cursorul nu merge prea departe? Ie Cu fereastra standard deschisă, totul este bine, dar merită să modificați mărimea ferestrei, deoarece derularea poate fi împinsă la o valoare foarte mare în jos / stânga.
Este necesar să faci totul corect, conștient de ceea ce este punctul în fiecare acțiune elementară pe care o faceți.
Faceți-vă, bucurați-vă de înțelegerea a 40% din tot ceea ce faceți și faceți restul de la considerații de conformitate cu anumite ritualuri, tradiții sau pur și simplu prin inerție.
Nimic altceva decât programele de buggy îngrozitoare pe care această abordare le generează.
Și folosirea funcției ScrollWindow pentru acest scop este o sfat foarte rău. Nu puteți utiliza funcția ScrollWindow pentru a derula controlleri pe formulare VB!
- Îi separăm fețele zâmbitoare de restul corpului lor, căpitane.
- Așa este! Le decapităm.
VBTerminator a scris (a): Hacker, vrei să spui că dacă formularul nu se potrivește pe ecran, atunci designul său trebuie redenumit de la zero?
Nu am vrut să spun asta. Am vrut să spun că există oameni care se apropie de cod ca o vrajă. Foarte tremurător, în primul rând. Scrisoarea este frică să fie atinsă. Dintr-o data, vraja nu mai functioneaza. În general, acestea operează cu bucăți de cod, rugându-se pe performanța acestor piese, dar se tem sau nu doresc sau nu pot citi codul de pe atomii nu menyaeyut-l pentru tine, și nu prea înțeleg ce se întâmplă. Aceasta este cea mai gravă abordare, desigur, așa cum se întâmplă.
Dar, apropo, da, cred că există o problemă cu designul. Ce înseamnă că fereastra nu se potrivește pe ecran? Acest lucru este acceptabil pentru ferestrele care afișează un document. Text, imagine, desen, hartă. Dacă există doar controale, atunci cel mai probabil o eroare de proiectare. Sau o fereastră cu o mie de casete de text. O urăsc! Oamenii s-au mutat de la formele de hârtie la programele de calculator, dar programele sunt încă făcute ca și cum ar fi o formă de hârtie care trebuie completată.
VBTerminator a scris (a): Nu înțeleg de ce? În prezent, cunoașterea costă bani, mai ales că această cunoaștere nu este o povară grea de blestem sau ceva în acest spirit.
Ei bine, cunoștințele pe care le am, este o peșteră în oceanul global al cunoașterii. Care este diferența, a existat doar o peșteră a cunoașterii, a existat o peshanka de alte cunoștințe. Am fost în sfârșit convins că puterea nu este în cunoaștere, ci în capacitatea de a extrage cunoștințele necesare extrem de eficient.
Ei bine, de fapt, nu sunt împotriva cunoașterii, dacă nu interferează cu capul tău. Lăsați capul, memoria și cunoștințele stocate în el să fie un fel de cache. A fost o problemă - știm cum să o rezolvăm - este minunată. Nu știm cum să o rezolvăm - nu o întrebare, în 10 minute vom ști.
VBTerminator a scris (a). și din nou ucide pentru ea o mulțime de timp?
De ce o grămadă? Este necesar să lucrați pentru dvs. în așa fel încât dobândirea de cunoștințe noi să dureze un timp minim
- Îi separăm fețele zâmbitoare de restul corpului lor, căpitane.
- Așa este! Le decapităm.
Hackerul a scris: "Oamenii s-au mutat din formele de hârtie la programele de calculator, dar programele sunt încă făcute ca și cum ar fi o formă de hârtie care trebuie să fie umplută.
Și decât este rău? Dacă Învoiți faptul că informatizarea nu a ajuns la 100%, în cazul în care încă împreună cu forme de calculator, formulare sunt utilizate în versiunea de hârtie, iar dacă estimați costul de re-formare umană, care este folosit pentru a completa formulare de hârtie, decizia de a face formulare electronice, care sunt la maximum va arata ca hartia este destul de evidenta. Un alt lucru este atunci când formele sunt utilizate numai în formă de eleron și sunt inițial dezvoltate pentru aceasta.
Hackerul a scris (a): A fost o problemă - știm cum să rezolvăm - este minunat. Nu știm cum să o rezolvăm - nu o întrebare, în 10 minute vom ști.
Ei bine, depinde direct de individul concret, de faptul că este necesar 10 minute, iar pentru cineva și zile nu va fi suficient. Din nou, capacitatea de a extrage cunoștințe depinde, printre altele. iar din cantitatea de cunoștințe pe care o persoană o are deja și o uită este de 99% din bagajul său de cunoștințe, este puțin probabil că va dobândi rapid și ușor cunoștințe noi. IMHO, aș spune că cu cât o persoană mai știe, cu atât mai repede poate obține cunoștințe noi. Desigur, nu există o dependență rectilinie, dar dependența însăși este, fără îndoială, prezentă.
Luptați și căutați, găsiți și ascundeți
Hackerul a scris (): Pentru că fereastra (creată CreateWindow) se mută, în loc de. Controlul crede că rămâne în vechiul loc. Verificați proprietățile comenzilor de sus și de stânga după aplicarea ScrollWindow ..
Deci, asta, IMHO, și există o abordare standard pentru derulare - "mutați recipientul, nu controlați", așa cum scria alibek. Și, așa cum o înțeleg, este exact sarcina pentru TS. Și dacă controltips-urile de la terțe părți atrage coordonatele ecranului, în loc de coordonatele clientului, controlul este o problemă - un astfel de control.
Kekir a scris: (a) Cum să facem ca atunci când dimensiunea ferestrei să fie redusă, cursorul nu merge prea departe? Ie Cu fereastra standard deschisă, totul este bine, dar merită să modificați mărimea ferestrei, deoarece derularea poate fi împinsă la o valoare foarte mare în jos / stânga.
Și există încă o urmă, cum să scapi de ea? Redactarea cu reîmprospătare nu a ajutat. Pur și simplu redigulează formularul, dar nu îl actualizează.
Nu au înțeles despre traseu și așa mai departe. Naryl este exemplul său vechi
arcă, conduci pe teribil.
Și aici sunt containerele și conținutul.
Există un subsistem de ferestre, pentru care User32 este responsabil, ale cărui obiecte de acțiune sunt ferestrele care au mânere și care au propriile legi ale vieții.
Există un subsistem de controale, construit pe un subsistem de ferestre. Obiectele acestui subsistem sunt controalele COM care au propriile legi ale vieții.
VB, desigur, folosește conceptul de control, construit deasupra ferestrelor.
Controalele sunt aranjate astfel încât atunci când accesează, de exemplu, proprietatea Top a controlului, implementarea controlului însuși mișcă fereastra corespunzătoare.
ScrollWindow acționează în jurul controalelor și mută ferestrele. În timp ce comenzile nu știu că ferestrele lor au fost mutate.
Cu alte cuvinte, Command1.Top și Command1.Left înainte de a apela ScrollWindow și după apelarea ScrollWindow va reveni la aceleași rezultate, deși butonul însuși se va schimba vizual. Deoarece implementarea clasei de comandă CommandButton nu implică faptul că fereastra similară butonului sa mutat în jurul butonului de control.
- Îi separăm fețele zâmbitoare de restul corpului lor, căpitane.
- Așa este! Le decapităm.
Hackerul a scris: Cu alte cuvinte, Command1.Top și Command1.Left înainte de a apela ScrollWindow și după ce a sunat ScrollWindow va reveni la aceleași rezultate
Da, da. Coordonatele clientului trebuie să rămână neschimbate. Vedeți un exemplu - mișc fereastra de derulare a ferestrei - în acest caz, întregul concept de ecran / client este salvat.
Adăugat: îmi pare rău, știind exactitatea dvs. față de acuratețe, nu WINDOW, ci partea sa de client
ark a scris: Ну да. Coordonatele clientului trebuie să rămână neschimbate.
Coordonatorul clientului a ce?
- Îi separăm fețele zâmbitoare de restul corpului lor, căpitane.
- Așa este! Le decapităm.