Seite 1 von 1
Bildschirmausgabe von Zeilen
Verfasst: Fr, 22. Sep 2017 15:42
von GrillenHirni
Ich möchte gerne im GUI-Modus am Bildschirm das
Array aZeile zweilenweise ausgeben und in der Ansicht
navigieren.
Ist hier jemand, wo mir eine entsprechende Anwendung
verkaufen oder mich gegen Entgelt bei der entsprechenden
Entwicklung unterstützen könnte?
Herzlichen Dank für Zuschriften
Grilli
Re: Bildschirmausgabe von Zeilen
Verfasst: Sa, 23. Sep 2017 10:35
von Koverhage
siehe Sample EBROWSE.PRG von Alaska
im Ordner Source\samples\basics\guibrow
Re: Bildschirmausgabe von Zeilen
Verfasst: Sa, 23. Sep 2017 10:51
von GrillenHirni
Guten Morgen Koverhage
Ja das guck ich mir gerne mal an - gute Idee
und danke für den Tipp!
Ich kenn es schon ein bisschen - habe es vor
kurzem in einen tastaturgesteuerten Editor
direkt auf einer Datei mit Einfügen und
Löschen von DatenSätzen ausgebaut (was
ich allerdings nur selten in einem selbst
gebastelten CASE-Tool brauche)...
Wenn ich schon mal anfange zu überlegen:
Ich hätte für das Array aZeile einfach nur
eine einzige Spalte und der DataLink müsste
wahrscheinlich für die Verbindung mit einem
Array schon ganz anderst sein....?
Schönes WochenEnde!
Grilli
Re: Bildschirmausgabe von Zeilen
Verfasst: Sa, 23. Sep 2017 23:03
von AUGE_OHR
hi,
manchmal sind deine Fragen "komisch" ... unter Windows gibt es keine "Zeilen" sondern "Pixel"
ein Array hat man unter Cl*pper mit ACHOISE() dagestellt, unter Windows GUI wäre das eine (aufgeklappte) Listbox.
---
wenn du mehrere Spalten hast käme ein Quick- / Browse in Frage.
bei XbpQuickBrowse() kannst du ein Array per DacPagedDataStore() als o:Datalink verwenden und brauchst keinen extra "Skipper".
c:\ALASKA\XPPW32\SOURCE\samples\basics\QBrowse\QBROWSE1.prg
bei XbpBrowse benötigt man zum navigieren den o:Skipblock Callback Slot
c:\ALASKA\XPPW32\SOURCE\samples\basics\GuiBrow\EBROWSE.prg
Code: Alles auswählen
oBrowse:SkipBlock := {|nSkip,oBrowse| ::Skip(nSkip,oBrowse) }
METHOD EditForm:Skip( nSkip )
LOCAL nCanSkip
IF ::nRecno + nSkip < 1 // "BoF"
nCanSkip := 1 - ::nRecno
TONE ( 1000 )
ELSEIF ::nRecno + nSkip > ::nLastRec // "EoF"
nCanSkip := ::nLastRec - ::nRecno
TONE ( 500 )
ELSE
nCanSkip := nSkip
ENDIF
::nRecno += nCanSkip
RETURN nCanSkip
nun ist das ganze ähnlich dem DBF-Skipper. für Array das geht nun noch kürzer
Code: Alles auswählen
oBrowse:SkipBlock := {|nSkip| -::nRecno + (::nRecno := MAX(1, MIN(LEN(aData), ::nRecno + nSkip))) }
d.h. die gesamte Method Skip mit "Bof" = MIN() und "Eof" = MAX() kann man in ein Codeblock schreiben.
Re: Bildschirmausgabe von Zeilen
Verfasst: So, 24. Sep 2017 11:54
von GrillenHirni
Hallo Jimmy
Anscheinend hatte ich die Frage missverständlich
formuliert?
Ich habe halt die Situation, dass ich Daten, welche
zeilenweise aufbereitet sind, am Bildschirm ausgeben
möchte...
Über den Umstand, dass in Windows in Pixel gerechnet
wird, sind wir uns einig.
Mir war nicht ganz klar, welcher Ansatz schliesslich
der Beste sein würde - eigentlich suche ich ja auch
jemand, der mir eine solche Anwendung verkaufen
würde oder mich bei der Entwicklung - auch von
anderen Controls - unterstützen würde...
Durch Deinen Tipp habe ich in der Hilfe von Xbase
ein Beispiel zum Objekt XbpQuickBrowse() gefunden,
von dem ich so aus dem Handgelenk denke, dass ich
es fast eins zu eins übernehmen kann...
Herzlichen Dank und einen schönen Sonntag!
Grilli