- vindue numre i mdi redaktører

, håndtering, vindue er vigtig i en kompleks mdi "redaktør." du har brug for en stabil og ajourført vindue nummer liste.misligholdelse - liste, vinduet menu er ustabil, hvis du har mere end ti optegnelser.det giver mening at bygge deres egen sporing.,, sporing vindue numre i mdi redaktører af gene fowler, [email protected],,,, advarsel:, afprøvning af denne kodeks er borland er textedit demo, der kommer med delphi.hvis de indsamler i delphi 5 eller 5.01, får du brug for den ændrede forms.pas som jeg direkte til i mit tidligere artikel programmeringssystem /næste (tidligere) i mdi redaktører.,,, i beskrivelsen ovenfor, vil jeg sige, at vinduet menu vælge liste er ustabile, når mere end ti vinduer er åbne.jeg henviser til den kendsgerning, at ethvert arkiv over den niende, når de har valgt, bliver den niende.en bruger, vil ikke regelmæssigt har ti eller flere åbne vinduer og ikke vil lægge meget vægt på numrene på listen, alligevel.men microsoft 's opfattelse af brugere mentale evner er ikke gratis.numrene på denne liste er kun en genstand af et nummereret liste.og kun ni er nummereret, niende "udvikling" som dialogen kommer op, og andre er valgt.når et vindue op. der er intet at fastlægge sin holdning i en rækkefølge, endsige belastning for.system /næste (og tidligere), vender de z-stack (kendelse), der ændrer fra øjeblik til øjeblik. i ewriter, min mdi, textwriter (software efterkommer af det gamle materiel, skrivemaskine,), sætter jeg en kasse nummer (tildelt for lastning og ajourføres, når en fil med en lavere antal er lukket. om status bar sammen med dossieret er byte størrelse.klik status bar får "næste" fil i belastning for (den næste højere vindue nummer).for at hoppe, jeg bruger det gamle turbo alat + topnum&#for vindue... .alat + topnum� får en dialog har jeg på vinduet menu (over misligholdelse - liste).denne dialog giver fuld pathnames og er en pick - liste.hvis brugeren ikke er sikker, hvilket alt +&#han eller hun vil, alat + 0 og klik på pathname og en anden om går knap ikke langsomt over meget. kodeksen under gennemfører (i textedit) en enkelt sporingssystem, der holder øje med vinduet og antallet af sager, der er knyttet.jeg har en enkelt skærm, så du kan "check" vinduet tal efter din åbner, lukker, og man er.jeg ved ikke, hvorfor z-stack ordre ville være nyttig, men du kan se, at den enkleste måde at kontrollere fil /antal forbindelse afspejler også z-order i skærmen.,, note: i den fælde, for det, de bedste 2 n - vinduer i min, selektiv flisearbejde i mdi redaktører, gjorde jeg ikke i enhver håndtering for "titel" filer, enten før eller efter besparelser, der sætter i en pathname.i savingas1click, har jeg ikke tilføje nye fil at openfiles.og jeg har ikke noget om en "titel", der er ingen vej.hvis "titel" er et af de to vigtigste, det skaber ikke noget problem.i kode nedenfor, omfatter en saveas1click, der kan indgå i den nye kakler artikel kode.hvis du vil redde det nye dossier er placeret i openfiles og indgår i forarbejdningen.hvis du har gemt "titel" fil, men vil du har mærkelige effekter (som du gør nu, om sagen er sparet eller ikke).det, de bedste 2 n - vinduer, vil ignorere det.det vil vise sig i planen.tabet af genoprette størrelse ikke er et af de underlige virkninger.det skyldes, tile1click, som jeg kalder, fliser top 2 n - vinduer.kode:,,,, ved hjælp af textedit som et forsøg for mdi tekst redaktør udvikling, jeg gør i disse artikler, og nogle egenskaber, skal være fastsat. disse er: topendialog muligheder /ofallowmultiselect: det er rigtigt teditform windowstate: wsmaximized, i mdiframe.pas erklærer en global (interface) variable ved navn, edittag, der anvendes i den ændrede udgave af new1click og open1click.openfiles, anvendes senere, også er erklæret og er igangsat. tframeform,   ..., var,   ...,    edittag: longint;,    openfiles: tstringlist;, initialization... openfiles: = tstringlist. skabe;, openfiles. tekst: = ", open1click og new1click rutiner giver en værdi for edittag, før hver åbning.denne værdi vil blive sat i editform er et variabelt (i formcreate rutinemæssige).dette vil sikre, at hver enkelt, redaktør vil have et vindue. procedure tframeform. new1click (afsender: tobject), begynder,    lockwindowupdate (klare),    edittag: = mdichildcount + 1,    teditform. skabe (selvstændige),    lockwindowupdate (0);,;, procedure tframeform. open1click (afsender: tobject), var,    jeg: heltal, begynder,   , hvis openfiledialog. henret,    lockwindowupdate (klare),    for jeg: = 0 til openfiledialog.files.count - 1,      begynder,        edittag: = mdichildcount + 1,        med teditform skaber selv.),        åben (openfiledialog. filer [i]),     ;,    lockwindowupdate (0);,; i teditform (mdiedit. pas), alle de sporer er ordnet.i formcreate, kopi edittag til tag: procedure teditform. formcreate (afsender: tobject), begynder,    pathname: = defaultfilename;,    tag: = edittag;,;, edittag er (belastning sekvens) vindue.dette vil blive holdt i editform er et variabelt.disse lagrede numre vil blive flyttet ned ", når en redaktør med et lavere antal er lukket.nu, bygger vi i vores, virkelig - motor ved hjælp af teditform.close.denne rutine anvender, openfiles stringlist jeg erklærede i mdiframe. pas. procedure teditform. formclose (afsender: tobject; var aktion: tcloseaction), var,    i, j. longint;,    closetag: heltal, begynder,    closetag: = mærke;,    for j = 0 (frameform.mdichildcount - 1),    med frameform. mdichildren [j] som teditform,      begynder, hvis mærke        > closetag,        tag: = mærke - 1,     ;, for jeg   : = 0 openfiles. regne - 1,     , hvis openfiles [i] = pathname,        begynder,         openfiles. slette (i),         pauser,       ;,    aktion: = cafree;,;, procedure teditform. saveas1click (afsender: tobject), begynder,    savefiledialog.filename: = pathname;,   , hvis savefiledialog. udfør så    begynder,      pathname: = savefiledialog. filnavn,      forklaring: = extractfilename (pathname),      openfiles. indsæt (mærke, pathname); //over nye pathname,      save1click (afsender),   ;,,,,,,,,,,, - resultater: note:, seeren menupunkt anført nedenfor ser ud til at forårsage misligholdelse - liste til at droppe ud, i det mindste i delfi. 5.jeg har svindlet med selektorer ind og ud.du kunne have lyst til at pille ved den, og se om du kan få textedit tager over og ser den z-stack, før sporet vinduer.du har måske at genoprette vinduer til lille størrelse til at blande de z-order på vinduerne.det er sikkert kun i d5 (ikke d2-d4), der behandler menu bygning på en måde, jeg har ikke helt styr på.jeg genopbygge vinduet menu over misligholdelse - liste i ewriter første skriftlige i delpi 3 og sikres gennem delphi - 4 - 5.vi vil have en "reel" for at se resultaterne af vores tildeling og sporing af vindue numre, vi åbner, tæt og kravlede (z-stack) vinduer. i bunden af vinduet menu poster liste, tilføje en ny menupunkt:, overskrift: vindue, nummertildeling liste navn:, winnumlist1, tab, begivenheder, og double-click, onclick,.så udfyld, tilfælde fører til at skabe denne rutine: procedure tframeform. winnumlist1click (afsender: tobject), var,    i, j.: heltal,    liste: tstringlist;,   : snor, begynder,    //denne rutine er en smule indviklet, for at fange "nye sager",    liste: = tstringlist. skabe;,    liste. der tilsættes ('outermost vindue på toppen, z-stack for "# 13), for jeg   : = 0 (mdichildcount - 1),      begynder,       : = vindue nummer + inttostr (mdichildren [i]. tag);,       , hvis mdichildren [i]. legende = defaultfilename,          begynder,           : = s + + mdichildren [i]. legende,            liste. der tilsættes (s),         ,        andet,          begynder,          for j = 0 (openfilesgrev - 1),            hvis producentorganisationer (mdichildren [i]. legende, openfiles. strenge [j]) < > 0,              begynder,               : = s + + openfiles. strenge [j],                liste. der tilsættes (s),               pause,            ;,         ;,     ;,    messagedlg (list.text, mtinformation [mbok., 0),    list.free,;, her er et kig på resultatet:,, note:, at anvendelsen af dette vindue nummer sporer i den komplekse række alvorlige vindue håndtering, du kan lege med min ewriter textwriter.det er ikke kun freeware, men ikke installere sig i opbygningen af et system.det er nemt at spille med.alle åbne redaktør har sit vindue på status bar.klik status bar bliver den næste højere vindue nummer redaktør.alat + topnum&#(1. 9) får vinduet nummereret 1. 9.alat + topnum0 får fuld pathname pic liste om misligholdelse overskrift kun vælge liste er på vinduet menu for lidt hurtigere at pille.den fuldstændige liste over vej hente det på menuen.) 0. c, som i juni 2001, vil have vindue numre i pathname - liste, som følge af at skrive den artikel., sammenflettede bibliografi, begyndte jeg improviserer disse artikler om at gøre nogle af de ting, jeg gør,   i ewriter i delphi - demo textedit (som jeg byggede ewriter).  , er det naturligt, at samle alle disse i en kopi af textedit.og  , du bliver nødt til at gå frem og tilbage til at fylde nye, savnet, eller,   ændrede støtte rutiner.pakket sedler synes de fleste steder.figur,   er det igangværende "forretning" samtale...-, programmerings - system /næste (tidligere) i mdi redaktørerhttp://www.howtodothings.com/showarticle.asp?artikel = 143, selektiv flisearbejde i mdi redaktørerhttp://www.howtodothings.com/showarticle.asp?artikel = 147,,, - vindue numre i mdi redaktørerhttp://www.howtodothings.com/showarticle.asp?artikel = 154, stk. "'" fra en teksthttp://www.howtodothings.com/showarticle.asp redaktør?artikel = 178,,,



Previous:
Next Page: