windowed Screen auf einem Gadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: re:

Beitrag von Fluid Byte »

smateja hat geschrieben:Anzeige von vielen terminen + Zimmern zeigte in der Praxis ein tolles grafisches Laag - deshalb der griff zum screen
Was genau hast du getestet? Womit hast du getestet und wie? Außerdem was heißt "viele Termine"? Über was für Größeneinheiten reden wir hier? Ein ListView- sowie ListIconGadget sind probemlos in der Lage tausende von Einträgen schnell hinzufügen und anzuzeigen.
selbst wenn ich an mein auto n riesen würstchen oben drauf bauen mag - so ist doch wurst warum - fakt ist ich mag es machen oder?! - NARF
Was haben Würtschen und Autos damit zu tun? Das ist etwas völlig subjektives und hat nichts mit effizienter Programmierung zu tun. Sicher, im Endeffekt ist es mir scheißegal wie du es zusammenzimmerst aber es ist und bleibt eine "zweifelhafte" Lösung.
Ich hab vergessen zu sagen, dass ich es dann grafisch hübscher mit tollen effekten machen kann
Das ist nicht dein Ernst oder? Bild

Darf man fragen was genau du dir unter "tollen Effekten" vorstellst?
Windows 10 Pro, 64-Bit / Outtakes | Derek
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag von smateja »

Also damit man sich mal vorstellen kann was ich überhaupt meine:

Bild

Klar kann man das auch ohne Screen etc machen - nur beim scrollen des Planes entsteht dann meist ein verzögerter aufbau der einzelnen Elementen daher meine Idee zum Griff auf ein Screen.

Naja - wenn mir einer was Besseres vorschlägt nehme ich diese Idee gerne an.

Glaub nur, dass hier ein Screen einfach performanter ist.
PB 4.6 / 32 Bit / 64 Bit
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nuja... also ich sag mal...
wenn du sowieso eine ScrollArea benutzt, dann könntest du in diese auch ne menge ImageGadgets einsetzen.
ich würde schätzen, dann hast du nicht einen so stark verzögerten aufbau...
zusätzlich hättest du dann ja die Möglichkeit, die clicks direkt abzufangen anstatt ne riesenlatte koordinaten auswerten zu müssen.
und mit Images kann man auch schmucke Grafix machen.

wäre halt der "normale" Weg, so eine Anwendung zu bauen, einen Screen würde man da normalerweise nicht unbedingt verwenden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Kaeru Gaman hat geschrieben:nuja... also ich sag mal...
wenn du sowieso eine ScrollArea benutzt, dann könntest du in diese auch ne menge ImageGadgets einsetzen.
ich würde schätzen, dann hast du nicht einen so stark verzögerten aufbau...
zusätzlich hättest du dann ja die Möglichkeit, die clicks direkt abzufangen anstatt ne riesenlatte koordinaten auswerten zu müssen.
und mit Images kann man auch schmucke Grafix machen.

wäre halt der "normale" Weg, so eine Anwendung zu bauen, einen Screen würde man da normalerweise nicht unbedingt verwenden.
Genau dann wird es langsam und ein "Screen" hat da rein gar
nichts zu suchen. Der beste Weg, ist es wohl selber zu zeichnen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

edel hat geschrieben:Der beste Weg, ist es wohl selber zu zeichnen.
erklär doch mal, wie man sowas macht und ein paar mehr hintergrundinfos.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

smateja hat geschrieben:Klar kann man das auch ohne Screen etc machen - nur beim scrollen des Planes entsteht dann meist ein verzögerter aufbau der einzelnen Elementen daher meine Idee zum Griff auf ein Screen.
Wie jetzt? Es existiert bereits software?
Windows 10 Pro, 64-Bit / Outtakes | Derek
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

re:

Beitrag von smateja »

Nein - es besteht sogesehen kein Fertiges Produkt etc. - Ich mag einfach eine kleine Hotelsoftware zum verwalten von Terminen Proggen. Der Screenshot ist von ich glaub dem Produkt Protel.

Bei mir hier gibts im moment nicht mehr als ein paar gebastelte grafische Buttons eine paar Fenster eine Gesmatstruktur des Projekts und ein ziemlich schlechten Anfang einer Umsetzung des Zimmerplans + Dutzende Fertiggebaute MySql abfragen ohne odbc - Sowie n haufen Fertiggebastelte Fenster wie ne art Karteikarte etc.

Für mich heißt erstmal ncoh das Problem Zimmerplan in den Griff bekommen und danach die Puzzel zusammenfügen.
PB 4.6 / 32 Bit / 64 Bit
K.Putt
Beiträge: 122
Registriert: 01.09.2006 00:17

Beitrag von K.Putt »

Hallo,
Du könntest eventuell auch das Webgadget nutzen und eine HTML Seite basteln, die wird rasend schnell angezeigt (bis zu einer gewissen Größe) sobald das Webgadget geladen ist und der Interpeter damit bereit steht.

Ich hatte mal einen Table mit etwa...Moment... 25.000 Zellen und das lies sich noch darstellen. Ich denke nicht, dass Du so viele benötigst.

Was die Struktur angeht kannst Du da sehr einfach mit HTML und CSS operieren, Hintergrundgrafiken einbinden, eigene Buttons gestalten,
schnell und einfach alle Elemente per CSS abändern...
Das Problem mit dem Scrollen hätte sich dann auch erledigt, mit Ankern kommst Du dann sogar einfach und direkt zu jeder Zeile.

Für umfangreichere Bedienelemente würde ich mittlerweile nur noch das Webgadget benutzen, HTML ist für so etwas einfach wie gemacht.
PB 5.x & Win 7 64Bit
smateja
Beiträge: 250
Registriert: 25.11.2004 19:51
Computerausstattung: Alienware Aurora / Intel Core i7 CPU @ 2.8 GHz / 64 Bit OS

RE:

Beitrag von smateja »

An die Lösung via HTML + CSS + AJAX dachte ich auch. Werde ich mal ausprobieren, denke aber, dass dies eine bessere lösung ist als viaScreen oder sonst wie.

Merci derweil.
PB 4.6 / 32 Bit / 64 Bit
Benutzeravatar
kswb73
Beiträge: 319
Registriert: 04.02.2008 16:51
Kontaktdaten:

Scrollbar auf Scren

Beitrag von kswb73 »

Du könntest auch die Scrollbar selber auf den Screen malen. So könntest du selber die Scrollbar gestalten und an deinen Style anpassen. Auch das verzögerte Scrollen des Bilschirmes wäre damit gelöst.
Hier mal ein Beispiel wie das gehen/ausehen könnte:

Code: Alles auswählen

InitSprite()

OpenWindow(1,0,0,520,520,"Test",#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)

OpenWindowedScreen(WindowID(1),0,0,520,520,0,0,0)


ScreenBigX=1000
ScreenBigY=1000
viewX.d=0
viewY.d=0
Repeat
  Repeat
  Wevent=WindowEvent()
    Select WEvent
      Case #PB_Event_CloseWindow
      End
    EndSelect  
  Until WEvent=0
  
  If IsScreenActive()
  ClearScreen(RGB(0,128,0))
  LMouseX=MouseX
  LMouseY=MouseY
    If Not WindowMouseX(1)=-1
    MouseX=WindowMouseX(1)
    MouseY=WindowMouseY(1)
    EndIf
  MouseMoveX=MouseX-LMouseX
  MouseMoveY=MouseY-LMouseY
    If GetAsyncKeyState_(#VK_LBUTTON)
    MouseL+1
    Else
    MouseL=0
    Menu=0
    EndIf
  
    If MouseL=1
      If MouseX>500 And MouseX<520 And MouseY>viewY*400/(ScreenBigY-500) And MouseY<viewY*400/(ScreenBigY-500)+100
      Menu=1
      ElseIf MouseY>500 And MouseY<520 And MouseX>viewX*400/(ScreenBigX-500) And MouseX<viewX*400/(ScreenBigX-500)+100
      Menu=2
      EndIf
    EndIf
    
    If Menu=1 And GetAsyncKeyState_(#VK_LBUTTON)
    viewY+MouseMoveY*(ScreenBigY-500)/400
      If viewY<0
      viewY=0
      ElseIf viewY>ScreenBigY-500
      viewY=ScreenBigY-500
      EndIf
    ElseIf Menu=2
    viewX+MouseMoveX*(ScreenBigX-500)/400
      If viewX<0
      viewX=0
      ElseIf viewX>ScreenBigX-500
      viewX=ScreenBigX-500
      EndIf
    EndIf
  
  StartDrawing(ScreenOutput())
  DrawText(10,10,Str(MouseX)+"|"+Str(mouseY))
  DrawText(10,30,Str(viewX)+"|"+Str(viewY))
  
  Circle(500-viewX,500-viewY,20,RGB(0,0,255))
  
  
  Box(500,0,20,500,RGB(200,200,200))
  Box(500,viewY*400/(ScreenBigX-500),20,100,RGB(100,100,100))
  
  Box(0,500,500,20,RGB(200,200,200))
  Box(viewX*400/(ScreenBigX-500),500,100,20,RGB(100,100,100))
  Box(500,500,20,20,RGB(150,150,150))
  StopDrawing()
  EndIf
FlipBuffers()
Delay(30)
ForEver
/Edit Delay eingefügt.
Zuletzt geändert von kswb73 am 14.10.2008 15:31, insgesamt 2-mal geändert.
Windows XP: PB 4.31, PB 4.4, PB 4.51
Open Suse 11.2: PB 4.4
Antworten