Seite 1 von 1
Datenbanken GUI mit PB - Ideen gesucht.....
Verfasst: 16.04.2009 22:21
von chris_bdnsee
Hallo,
ich hab' einen kleineren Durchhänger (nee eigentlich einen großen !) mit PB und suche Anregungen zum Thema Datenbanken.
Ich habe vor einigen Jahren Erfahrung mit Clipper, VFP, VB 5.0 gesammelt und bin jetzt auf Grund von einigen kleinen Projekten wieder beim Programmieren und auch bei PB gelandet.
Bei den bisherigen Tools hatte man die Möglichkeit der datengebundenen Gadgets. Für PB habe ich leider auch keine Tools von Drittanbietern gefunden. OK, also dann wieder per Hand.
Und nun kommt mein Durchhänger....viele Wege führen nach Rom, aber welcher ist der mit dem wenigsten Aufwands bei hoher Wiederverwertbarkeit ?
Bislang ist mein Plan die Daten über LinkedList im Progi zu halten und dann die Gadgets anzufüttern. Aber wie die einfachen Funktionen bei der Anzeige von einzelnen Datensätzen wie vorwärts blättern, erster Datensatz anspringen usw. da steh' im Moment auf dem Schlauch.
Ich bin für jede Anregung dankbar.
Ein Ratsuchender.....
Gruß
Christian
Verfasst: 17.04.2009 03:37
von Bisonte
Wenn die DB lokal ist, kannst du immer direkt einlesen und anzeigen... da ist die Zeit des Datenzugriffs nicht so gross.
Bei der Linklist hilft dir evt. die PB-Hilfe (F1) .... NextElement() PreviousElement() usw...
beim suchen muss man allerdings meist immer die ganze liste durchwühlen,
wenn man keinen passenden Algo zur hand hat.
Verfasst: 19.04.2009 14:02
von chris_bdnsee
Danke für deine schnelle Antwort.....
das ist leider nicht mein "Problem".
Ich hänge eher an dem Punkt:
Du hast mehrere Windows mit einer Menge von string gadgets.
Anstelle jedes dieser Gadgets nun an eine Variable zu knüpfen, ist es mein Ziel über einen Zwischenlayer die Daten bereitzustellen.
Ich mach' mal ein Beispiel:
Window_Adr enthält Gadget string_1 und string_2.
Da ich bislang leider keine Möglichkeit gefunden habe eigene Properties in den Gadgets/Windows zu definieren, muss über eine Tabelle dem Window und dem Gadget das Datenfeld/Tabelle zuordnen. Soweit komme ich klar.
Allerdings hab' ich noch keine Idee wie ich mit diesem Layer "kommunizieren" kann, wie zum Beispiel - gehe eine Datensatz weiter, speichere die aktuelle Änderung. In VB würde ich hierfür mittels RaiseEvent dies im Eventmodell unterbringen, den haben wir nunmal nicht in PB (oder ich mit meinen bisherigen PB Kenntnissen und Fähigkeiten zumindest nicht).....
Vielleicht hat einer von Euch eine zündende Idee für mich !
schönen Sonntag noch.....
Gruß
Christian
Verfasst: 19.04.2009 14:15
von Kaeru Gaman
die meisten SetGadgetDingenskirchen-Kommandos lösen mindestens ein Event aus...
du kannst auch die WM_ Events in deinem Eventloop checken, nicht nur die in PB definierten die CrossPlatform vorhanden sind.
Verfasst: 19.04.2009 15:46
von chris_bdnsee
Sach nur auch anwendungsspezifische Events, also selbst definierte, können gefeuert und in der Windows Message quue abgefragt werden ?
Hast Du für so eine Lösung einen Bsp code ????
Das wäre 'ne Hammerlösung !
Danke
Christian
Verfasst: 19.04.2009 21:23
von Falko
Ich weiß jetzt nicht genau was RaiseEvents sind, aber vielleicht könnte das
Beispiel Dir von Kiffi hier weiter helfen.
http://www.purearea.net/pb/CodeArchiv/I ... seEvent.pb
Gruß Falko
Verfasst: 19.04.2009 21:37
von ts-soft
Oder ohne API:
Code: Alles auswählen
Import ""
PB_Gadget_SendGadgetCommand(hWnd, EventType)
EndImport
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "void", #PB_Window_SystemMenu)
ButtonGadget(0, 10, 10, 200, 30, "Ich zeige den Debug")
DisableGadget(0, #True)
ButtonGadget(1, 10, 50, 200, 30, "Ich löse das Ereignis aus")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow : Break
Case #PB_Event_Gadget
Select EventGadget()
Case 0
Debug "Hallo"
Case 1
PB_Gadget_SendGadgetCommand(GadgetID(0), #PB_EventType_LeftClick)
EndSelect
EndSelect
ForEver
Das Ereignis für Button 0 wird durch Button 1 ausgelöst, Button 0 selber
kann ja keins auslösen, da disabled
So kann man also diverse Gadget-Ereignisse simulieren.
Gruß
Thomas
Verfasst: 19.04.2009 21:52
von chris_bdnsee
Danke an alle,
das hilft mir weiter.....
Gruß
Christian