ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > listview | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
29.11.2009, 13:57 Uhr AGSzabo Posts: 1663 Nutzer |
das hier soll eine ideen-sammlung sein wie man schrittweise ein listview programmieren könnte das mit clipblit() o.ä. scrollt und nur das was wirklich neu ist neu zeichnet. die anweisungen wie weit gescrollt werden soll kommen von einem slider. da müsste man evt auch noch was aus- oder umrechnen. -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 29.11.2009 um 14:02 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 14:25 Uhr akl Posts: 265 Nutzer |
@AGSzabo: Seit es GadTools gab - und weitergehende Ansätze - war ich ehrlich gesagt froh, mich um derlei Details nicht mehr kümmern zu müssen. Das muss vor 1993 gewesen sein. Wozu also 16 Jahre später damit wieder anfangen. Warum eigentlich ClipBlit? Sollen die einzelnen ListView-Zeilen nicht klickbar sein? [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 14:34 Uhr AGSzabo Posts: 1663 Nutzer |
@akl: > Wozu also 16 Jahre später damit wieder anfangen. gui toolkit vom grund auf coden. ist "hello world" für amiganer. > Warum eigentlich ClipBlit? um den inhalt rauf oder runter zu bewegen. > sollen die einzelnen ListView-Zeilen nicht klickbar sein? doch, ich verstehe deine frage nicht. -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 20:13 Uhr thomas Posts: 7718 Nutzer |
@AGSzabo:Zitat: Und warum kommst du damit hier her ? Das Entwickeln eines Algorithmus zur Lösung einer Aufgabe ist der wesentliche Teil, der das Programmieren ausmacht. Das Programm hinterher in einer beliebigen Programmiersprache zu formulieren und einzutippen, das kann jeder Depp mit zwei Händen und einer Tastatur. Vor diesem Hintergrund frage ich mich, was du überhaupt selbst machst. Immer, wenn es etwas neues zu entwickeln gibt, kommst du hier her und läßt andere deine Arbeit machen. Du übernimmst dann nur noch die Aufgabe des ... mit den Händen und der Tastatur. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 20:28 Uhr AGSzabo Posts: 1663 Nutzer |
@thomas: > Und warum kommst du damit hier her ? weil ich allein nicht weiter komme und das forum hier eine goldgrube an kompetenz ist. wer nicht mitmachen will soll es halt lassen. es sind schon zig leute in den credits und das macht einen guten eindruck von interesse! Andreas -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 20:46 Uhr thomas Posts: 7718 Nutzer |
@AGSzabo:Zitat: Nun, deine Frage liest sich so, als hättest du noch gar nichts. Das würde ich nicht als "nicht weiter kommen" bezeichnen. Wenn du schreiben würdest, wie weit du allein gekommen bist, könnte man dir einen Tipp geben, wie du weiter kommst. Gruß Thomas -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 21:01 Uhr AGSzabo Posts: 1663 Nutzer |
@thomas: der stand der dinge ist dass die reine darstellung der liste schon komplett funktioniert, wobei man dazu angeben kann ab welcher sichtbaren zeile wievile zeilen gedrawt werden sollen, wobei man dazu einen vert-distanz-wert angeben kann der sagt um wieviele pixel das ganze verschoben seinn soll - das ist für soft scrolling gedacht. was fehlt ist der teil um aus dem slider die soft-position der liste zu berechnen und daraus um wieviel der inhalt verschoben werden muss (vert-distanz-wert) und ab welcher bis zu welcher zeile neu gezeichnet werden muss. -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 21:42 Uhr inq Posts: 445 Nutzer |
Zitat: tja, und das wäre dann in etwa die gleiche routine zur berechnung. da muss ich mich leider dem thomas anschließen (hat nicht viel zu bedeuten...): suchst du eigentlich nur bestätigung oder ist die credits-liste nötig für die betatests? gruß inq [ - Antworten - Zitieren - Direktlink - ] |
29.11.2009, 22:10 Uhr Holger Posts: 8116 Nutzer |
Zitat:Gar nicht. Statt clipblit benutzt man natürlich ScrollRaster, danach überprüft man auf (rp->Layer->Flags & LAYERREFRESH) und zeichnet bei Bedarf die Liste zwischen den Aufrufen von BeginRefresh und EndRefresh neu. Wenn man das richtig macht, kümmert sich das OS darum, unnötige Zeichenbefehle zu ignorieren. Zitat:Das ist Dein Part. Ist ja auch Dein Slider, den Du so gestaltet hast, dass man die Werte noch mal umrechnen muss... [ - Antworten - Zitieren - Direktlink - ] |
30.11.2009, 06:53 Uhr AGSzabo Posts: 1663 Nutzer |
@inq: > suchst du eigentlich nur bestätigung oder ist die credits-liste nötig für die betatests? ich suche natürlich auch bestätigung aber es ist ja umgekehrt auch eine bestätigung für die leute die in meiner liste stehen. ich weis nicht ob du dich daran erinnerst wie das mit den credits in den ganzen demos und intros war... in denen war den credtis ein eigener part mit eigener musik gewidmet und so. also sehr wichtig! > danach überprüft man auf (rp->Layer->Flags & LAYERREFRESH) und zeichnet bei Bedarf die Liste zwischen den Aufrufen von BeginRefresh und EndRefresh neu das geht aber nur bei simplerefresh. ich benutze aber smartrefresh. -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 30.11.2009 um 07:02 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
30.11.2009, 11:57 Uhr Holger Posts: 8116 Nutzer |
Zitat:Selber schuld, würde ich sagen. Sollte aber kein Problem sein, den Bereich selbst in die Damage-Liste einzutragen, wenns denn unbedingt smartrefresh sein muss. -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
30.11.2009, 15:35 Uhr AGSzabo Posts: 1663 Nutzer |
@Holger: wie dem auch sei, ich habe schon die selbstmach-methode umgesetzt dass nur das neue neu gezeichnet wird, es wird auch geclippt falls nötig. aber die idee mit dem scrollraster ist gut, das werde ich so machen! es fehlt blos noch die kommunikation mit dem slider, wie ich da die scrolldistanz berechne und die position und menge der zeilen die neu gezeichnet werden müssen, bzw auch ab welchem listeneintrag das gemacht werden soll. -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 30.11.2009 um 15:49 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
02.12.2009, 12:43 Uhr AGSzabo Posts: 1663 Nutzer |
ok, ich habs bis zu dem punkt gebaut an dem ich nimmer weiter weiss. folgende funktion errechnet aus der proportionalen position des sliders (0-$fff) die nummer des listeneintrags (0 bis total_enträge minus 1) der in der liste oben erscheinen soll (abgelegt in d0). davon wird der rest durch die höhe des fonts geteilt und davon der rest als scroll offset von der pixel oberkanbte des listview-breichs verwendet. was ist falsch? es scrollt schon bisserl, springt aber zwischendurch immer wild herum. ich ahne schon was, nämlich fehlt da irgendwi ein pixelwert? code:--calc_vdist moveq #0,d0 move.w oxNL_items(a3),d0 ; total list entrys sub.w oxNL_bodylines(a3),d0 ; visible list entrys mulu.w oxNL_softpos(a3),d0 ; proportional offset from top move.w #XUIPROP_SOFTMAX,d1 ; total proportional value ($fff) divu.w d1,d0 move.l d0,d1 swap d1 ; hole rest ext.l d1 move.w rp_TxHeight(a2),d2 ; rest durch fonthöhe divu d2,d1 ; teilen swap d1 ; hole rest vom geteilten rest neg.w d1 move.w d1,oxNL_vdist(a3) ; setze scroll offset, ; muss sein zwischen 0 und ; fonthöhe Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ Dieser Beitrag wurde von AGSzabo am 02.12.2009 um 13:26 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
04.12.2009, 11:13 Uhr Holger Posts: 8116 Nutzer |
Zitat:Ich hab Dir ja schon in dem anderen Thread gesagt, dass es nicht sinnvoll ist, eine Schnittstelle für proportionale Daten zu entwerfen, die einen willkürlich gewählten Bereich wie 0-fff verlangt. Jetzt bist Du, wie vorhergesagt, an dem Punkt angelangt, bei dem Du überflüssige und fehleranfällige Konvertierungen durchführen musst. Außerdem empfand ich schon den 16Bit-Wertebereich der originalen Amiga-PropGadgets als Einschränkung. Aber Dein 12 Bit Bereich schießt natürlich den Vogel ab... Zitat:Du errechnest aus einer Position, also einem absoluten Wert, einen Scroll-Offset, also eine Differenz? Das kann gar nicht funktionieren. -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
06.12.2009, 18:30 Uhr AGSzabo Posts: 1663 Nutzer |
Ok, das problem wurde inzwischen gelöst. das maximum von fff ist eine konstante. nichts leichter als das zu ändern. -- Sam mini os4.1 -- e-uae 39bb2 -- A4000D 3.0 - 2mbchip/8mbfast - Ariadne_II - ide DVD und HD -- A500 3.1 (mkick) adide 50mb -- Duron 1200mhz Ubuntu Linux [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > listview | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |