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