1. Artikel
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forum
  • Anmelden
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Paules-PC-Forum.de
  2. Mitglieder
  3. KJH

Beiträge von KJH

  • XProfan noch Lebensfähig...?

    • KJH
    • 14. September 2023 um 16:24

    Ich kann mir vorstellen, daß bei Roland über die Jahre einfach voll 'die Luft' 'raus ist, der Bock und die Motivation nachgelasssen haben.

    Und wir 65+ altrigen wissen auch, daß wir kaum irgendwo leistungsfähiger werden. Sich langsam verabschiedende Elternteile und eventuell erste eigene bösartige Erkrankungen.führen auch nicht zu mehr Aktivität im Hobby, wie so mancher von uns sicher bestätigen kann.

    Von daher hab' ich recht viel Verständnis für Menschen in schwierigen, schwebenden Phasen, in denen man nicht immer allen gerecht werden kann, oder will.

    Aber unsere Spekulationen führen zu nichts.

    Jens Arne schrieb aber passend dazu von dem Eindruck, bei Nachfragen ignoriert zu werden. Das ist in der Tat nicht so gut.

    Den Eindruck konnte man aber eventuell auch schon die ganzen letzten Jahre stetig steigend im alten Original-Forum haben.

    Auch wenn Fragen sinnvollerweise direkt an Roland gerichtet waren (was ich persönlich meist vermied), war die Chance auf eine Antwort sehr klein.

    Wahrscheinlich auch ein typischer Internet-Forum-Verschleißseffekt, wo man über die Jahre keine Lust mehr hat, die immer gleichen oder vermeintlich 'unnötigen' oder gar 'blöden' Fragen zu beantworten.

    Dazu kam, daß sich alles quasi schleichend vom alten Forum wegbewegte (hierhin). womit Rolands Forum anfing zu verwaisen.

    Zudem zogen sich viele tolle Helfer im Forum mehr und mehr zurück.

    Speziell ohne einen Heinz Brill (und ein paar andere) hätte etwas später kaum jemand im alten Forum Antwort auf eine Frage bekommen.

    Aber zur Zeit hat sich das alte Forum ja eh erledigt...

    Ich selbst habe aktuell darauf verzichtet, einen OOP- Bug im Compiler zu posten, der offenbar nur im Interpreter gefixt wurde.

    Ich befürchte, das nervt nur... wie ich es leider auch schonmal erfahren mußte.

    Trotzdem find ich XProfan klasse,und bin dankbar den Lehrern und Wegweisern, die ich im alten Forum noch hatte, und für die Freude an der Sache.

    Schlußendlich würde ich Jens-Arnes Beitrag unterstreichen wollen.

    Gruß

    KJ

  • Toolbar32

    • KJH
    • 5. Februar 2022 um 19:09

    Ich dachte zuerst CreateMenu [H] wäre die Lösung und hatte daher ein passendes Dialogfenster für die Gridbox erstellt.

    Das gab nur Fehlermeldungen, aber ich hatte allerdings auch Childwindow benutzt, was in der Hilfe bei CreateMenu nicht extra als unterstützt erwähnt wird.

    CreateMenu [H] wäre für mich ok, da ich sowieso nix ohne Dialogfenster auf dem Hauptfenster mache.

    Aber ein erfolgreicher Test steht noch aus.

    Und Dein GetFocus klappt ja super.

  • Toolbar32

    • KJH
    • 5. Februar 2022 um 18:08

    Bei mir klappt es,

    aber beachte bitte, daß man bei Mouse(20, 250 - 570, 240) Koordinaten angibt, anders als bei Erstellung der Gridbox, wo man tatsächlich die Grösse angibt.

    Mein Test:

    Code
    Window 1000,750
    var long e = 0
    var t$ = "Links;0;180;Mitte;2;100;Rechts;1;80"
    var gb& =Create("GridBox", &hwnd, t$, 0, 100, 100, 550, 250)
    
    While e = 0
    WaitInput
     If %MouseKey = 2
     If Mouse(100,100 - 650,360)
    
          CreateMenu
           AppendMenu 201,"Datensatz löschen", 0
           Set("MenuTextCol", RGB(0, 255, 0))
           AppendMenu 202, "PDF anzeigen", 0
           Separator
           Set("MenuTextCol", RGB(0, 0, 255))
           AppendMenu 203,"Chip - Info", 0
           
          TrackMenu %MouseX,%MouseY
        EndIf
      EndIf
    EndWhile
    Alles anzeigen
  • Toolbar32

    • KJH
    • 5. Februar 2022 um 15:47

    Eben hab ich Folgendes erfolgreich probiert.

    Oder seh ich das falsch?

    Code
    window 1024, 768
    var long hBild = create("hSizedPic", 0, "TOOLBAR32",4736,64,0)
    var long hBildliste = create("ImageList", 64, 64, hBild, rgb(192,192,192))
    var long hToolbar = create("Toolbar", %hWnd, hBildliste, 0, 0, 2000, 1)
    deleteobject hBild
    Toolbar("AddButton", hToolbar, 11, 9000, "Neu")
    Toolbar("AddButton", hToolbar, 12, 9001, "CSV laden")
    Toolbar("AddButton", hToolbar, 13, 9002, "CSV speichern")
    Toolbar("Separator", hToolbar)
    WaitKey
  • Toolbar32

    • KJH
    • 5. Februar 2022 um 14:03

    Hi Heinz,

    vielleicht direkt mit

    hTB& = create("hSizedPic", 0, "TOOLBAR32"........)

    eine Bitmap aus der Toolbar in gewünschter Größe erstellen.

    Gruß

    KJ

  • XProfan X5

    • KJH
    • 9. Mai 2020 um 18:35

    Offenbar Zeit, kurz mal Flagge zu zeigen!
    Interesse : Auf jeden Fall!
    Count me in!

    Gruß
    Kj

  • Scrollbares Formular

    • KJH
    • 11. Dezember 2018 um 13:16

    Danke für die Info und das Angebot, Thomas!
    Ich denke, das passt schon so, wie es ist. Es geht ja nur um 2 Zeichen.

    Gruß
    KJ

  • Scrollbares Formular

    • KJH
    • 11. Dezember 2018 um 12:31

    Ein unschöner Nachlässigkeitsfehler meinerseits im Code, bei der Initialisierung der Scrollbar,
    (den Windows aber offenbar automatisch korrigiert):

    Da SI#.nMin& = 1 gesetzt ist, (also gewollt nicht nullbasiert)
    sollten SI#.nPos& und SI#.nTrackPos& natürlich auch mindestens auf 1 gesetzt werden.

    Leider fand ich eben keine Möglichkeit, den Post zwecks Korrektur erneut zu bearbeiten, aber ich schau nochmal.

    Gruß
    KJ

  • Scrollbares Formular

    • KJH
    • 9. Dezember 2018 um 22:41

    Ein OK ist völlig unnötig, aber mich bedanken für alles, was ich von Euch lernen durfte - das möchte ich hiermit gerne tun! :)

    Gruß
    KJ

  • Scrollbares Formular

    • KJH
    • 9. Dezember 2018 um 16:21

    Hallo Heinz,

    was speziell das Scrollen von Controls angeht, bin ich Dank einer Anregung von Andreas Miethe (Gruß nach oben...) und etwas MSDN
    auf dieses hier gekommen. Zumindest hab ich nix ähnliches in unseren Foren gefunden.
    Es wird eine Systemscrollbar genutzt, und alle drei Scrollarten (Linescroll, Pagescroll und Thumbtrackscroll) funktionieren
    bei mir wunderbar. Die Größe des Thumb spiegelt dabei das Verhältnis des sichtbaren zum gesamten Bereich wider.
    Vielleicht hat jemand aber auch noch wichtige Hinweise oder Verbesserungen dazu.

    Gruß
    KJ

    Code
    'Aufgabe: Es sollen 3 Seiten eines Fensters mit Controls vertikal scrollbar sein.
    $H Windows.ph
    $H Messages.ph
    Def &INKLUSIVE_REDRAW 1
    Declare long ende
    Declare handle txt1, txt2, txt3, txt4, pic
    Declare long cWidth, cHeight, comparePos, step, linestep
    '---------------------------------------------------------------------------
    Declare SI#
    Struct SCROLLINFO = cbSize&, fMask&, nMin&, nMax&, nPage&, nPos&, nTrackPos&
    Dim SI#, SCROLLINFO
    '---------------------------------------------------------------------------
    CLS Rgb(50, 50, 50)
    'Ein Fenster definieren
    var handle PANEL = Create("ChildWindow", &hWnd, "", 0, 0, 300, Height(&hWnd))
    'Stil ändern: Rahmenloses Panel mit vertikaler Scrollbar erzeugen
    SetStyle PANEL, $50600000
    'Sicherheitshalber, da unter gewissen Umständen der neue Stil nicht sichtbar wird:
    ~SetWindowPos(PANEL, ~HWND_TOP, 0, 0, 0, 0, ~SWP_FRAMECHANGED | ~SWP_NOMOVE | ~SWP_NOSIZE)
    cWidth = Width(PANEL) : cHeight = Height(PANEL)
    '---------------------------------------------------------------------------
    'Ein paar Controls, damit man auch was sieht:
    pic =Create("hNewPic", 170, 90, Rgb(70,70,200))
    Create("Bitmap", PANEL, pic, 60, 160)
    txt1 = Create("text", PANEL, "Seite 1 / 3 (scroll mich)",50, 0 * cHeight, 200, 16)
    txt2 = Create("text", PANEL, "Seite 2 / 3 (scroll mich)",50, 1 * cHeight, 200, 16)
    txt3 = Create("text", PANEL, "Seite 3 / 3 (scroll mich)",50, 2 * cHeight, 200, 16)
    txt4 = Create("text", PANEL, "Schluß mit Scrollen",      80, 3 * cHeight -16, 200, 16)
    Create("MultiEdit",PANEL,"ABC\nDEF\nGHI\nJKL\nMNO\nPQR", 70, 170, 150, 70)
    '---------------------------------------------------------------------------
    'Da die Texte 16 Pixel hoch sind, soll 16 auch der minimalste Scrolleffekt sein.
    linestep = 16
    '---------------------------------------------------------------------------
    ' Vertikale Scrollbar initialisieren
      SI#.cbSize&    = SizeOf(SI#)
      SI#.fMask&     = ~SIF_ALL     'Combination of SIF_PAGE, SIF_POS, SIF_RANGE, and SIF_TRACKPOS.
      SI#.nMin&      = 1
      SI#.nMax&      = cHeight *3   'Drei Seiten sollen scrollbar sein
      SI#.nPage&     = cHeight      'Erlaubter Bereich 0 bis (SI#.nMax& - SI#.nMin& +1)
      SI#.nPos&      = 1
      SI#.nTrackPos& = 1
      ~SetScrollInfo(PANEL, ~SB_VERT, SI#, &INKLUSIVE_REDRAW)
    '---------------------------------------------------------------------------
    SubclassProc
      Declare pointer wp
    
    
      If SubclassMessage(PANEL, ~WM_VSCROLL)
        wp = LoWord(&swparam)
        Select wp
          CaseOf ~SB_LINEDOWN
            SI#.fMask& = ~SIF_ALL
            ~GetScrollInfo(PANEL, ~SB_VERT, SI#)
            SI#.nPos& = SI#.nPos& + linestep
            Case SI#.nPos& > (SI#.nMax& - SI#.nPage& + 1) : SI#.nPos& = (SI#.nMax& - SI#.nPage& + 1)
    
    
          CaseOf ~SB_LINEUP
            SI#.fMask& = ~SIF_ALL
            ~GetScrollInfo(PANEL, ~SB_VERT, SI#)
            SI#.nPos& = SI#.nPos& - linestep
            Case SI#.nPos& < SI#.nMin& : SI#.nPos& = SI#.nMin&
    
    
          CaseOf ~SB_PAGEUP
            SI#.fMask& = ~SIF_ALL
            ~GetScrollInfo(PANEL, ~SB_VERT, SI#)
            SI#.nPos& = SI#.nPos& - SI#.nPage&
            Case SI#.nPos& < SI#.nMin& : SI#.nPos& = SI#.nMin&
    
    
          CaseOf ~SB_PAGEDOWN
            SI#.fMask& = ~SIF_ALL
            ~GetScrollInfo(PANEL, ~SB_VERT, SI#)
            SI#.nPos& = SI#.nPos& + SI#.nPage&
            Case SI#.nPos& > (SI#.nMax& - SI#.nPage& + 1) : SI#.nPos& = (SI#.nMax& - SI#.nPage& + 1)
    
    
          CaseOf ~SB_THUMBTRACK
            SI#.fMask& = ~SIF_TRACKPOS
            ~GetScrollInfo(PANEL, ~SB_VERT, SI#)
            SI#.nPos& = SI#.nTrackPos&
        EndSelect
    
    
            SI#.fMask& = ~SIF_POS
            ~SetScrollInfo(PANEL, ~SB_VERT, SI#, &INKLUSIVE_REDRAW)
            step = comparePos - SI#.nPos&
            comparePos = SI#.nPos&
            ~ScrollWindowEx(PANEL, 0, step, 0, 0, 0, 0, ~SW_SCROLLCHILDREN | ~SW_INVALIDATE | ~SW_ERASE)
      EndIf
    EndProc
    '---------------------------------
    Subclass PANEL,1
    UserMessages $10
    '---------------------------------
    WhileNot Ende
      WaitInput
    
    
      If %UMessage = $10
        Ende = 1
        Shutdown
      EndIf
    EndWhile
    '---------------------------------
    Proc Shutdown
      DeleteObject pic
      Subclass PANEL,0
      Dispose SI#
    EndProc
    
    
    End
    Alles anzeigen
  • ALGORITHMEN - Teil XVII: Im Gruselkeller der Hirnwindungen

    • KJH
    • 21. Juni 2018 um 10:32

    NmR 12: Radfahrer
    (120 / Sqrt(32^2 + 24^2)) = 3 Stunden später ?

    ------------------------------------
    Zu NmR 5 ´Dreieck´ (gelöst)
    finde ich das Folgende auch sehr anschaulich :


    1. alle Winkel als Vielfache von alpha
    alpha = alpha * 1
    beta = alpha / 3
    gamma = alpha * 2


    2. Faktoren ausklammern
    alpha * (1 + 1/3 + 2) = 180


    3. alpha ausrechnen
    alpha = 180 / (1 + 1/3 + 2)

    4. Beta und gamma ergeben sich nun aus Punkt 1

  • ALGORITHMEN - Teil XVII: Im Gruselkeller der Hirnwindungen

    • KJH
    • 16. Juni 2018 um 18:11

    KPA 1
    -------
    Hab' demnächst eh mit der Umsetzung von Spielbrettern zu tun, von daher kam mir die Übungsaufgabe gelegen.
    Ich hatte mich bisher nur mit Objekten in dynamischen Arrays beschäftigt und wollte nun Dank Deiner Anregung auch mal ein mehrdimensionales probieren.
    Feldeigenschaften und Methoden sind aber so gut wie nicht vorhanden, also rechtfertige ich diesen Post allein damit, daß Herr Specht Schachbretter sehen wollte..
    Danke für Deine Anregungen!
    Gruß
    KJ

    Spoiler anzeigen


    //XProfan X4
    Declare end&
    UserMessages $10
    //-----------------------------------------------
    Declare mem feld[11,11] // 8x8 plus 2 Randfelder
    Class einzelfeld = color&,\ // weiss, schwarz, oder Randfarbe
    x&, y&,\ // Position des Feldes
    FigurID&,\ // 0 = Feld ist frei
    setFigurID@


    Proc einzelfeld.SetFigurID
    Parameters Long id
    .FigurID& = id
    EndProc


    Dim feld[],einzelfeld
    //-------------------------------------------------


    Declare mem brett
    Class schachbrett = feldgroesse&,\ // Kantenlänge eines Feldes in Pixel
    offset&,\ // Rand linksoben im Clientbereich
    weiss&,\
    schwarz&,\
    rand&,\
    schachbrett@,\
    anzeigen@

    Proc schachbrett.schachbrett
    Parameters Long offset, weiss, schwarz, rand
    Declare long i, j, x, y
    .offset& = offset
    .weiss& = weiss : .schwarz& = schwarz: .rand& = rand
    .feldgroesse& = (Height(&hwnd) - (2* offset)) / 12
    For i,0,11
    For j,0,11
    feld[i,j].x& = i * .feldgroesse& + offset
    feld[i,j].y& = j * .feldgroesse& + offset

    If Between(i,2,9) And Between(j,2,9)
    If Not(TestBit(i,0) Or TestBit(j,0)) Or (TestBit(i,0) And TestBit(j,0))
    feld[i,j].color& = .weiss&
    Else
    feld[i,j].color& = .schwarz&
    EndIf
    Else
    feld[i,j].color& = .rand&
    EndIf

    EndFor
    EndFor
    .anzeigen()
    EndProc


    Proc schachbrett.anzeigen
    Declare long i, j
    For i,0,11
    For j,0,11
    Rectangle feld[i,j].x&, feld[i,j].y& - feld[i,j].x& + .feldgroesse&, feld[i,j].y& + .feldgroesse&
    UseBrush 1, feld[i,j].color&
    Fill feld[i,j].x& +1, feld[i,j].y& +1,0
    EndFor
    EndFor
    EndProc

    Window 800,800
    brett = New(schachbrett, 15, $D0F0F0,$303030, $001040)


    '---------------------------------
    WhileNot end&
    WaitInput


    If (%UMessage = $10)
    end& = 1
    Shutdown


    EndIf
    EndWhile
    '---------------------------------


    Proc Shutdown
    Dispose feld[]
    Dispose brett
    EndProc

Windows 11

  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™