Getlist auswerten mit Readmodal funktionier nicht

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo an alle Forumsmitglieder,

meine erste Frage ans Forum, da ich am verzweifeln bin. Meine ersten Gehversuche in XBase++ - nichts funktioniert.

Kann mir jemand sagen, wo der Fehler in diesen Code-Zeilen liegt:
(Habe schon viele Stunden verbracht mit den verschiedensten Schreib-Varianten).

local oGet:={}

oGet := Get():new(wt+03,wl+sp)
oGet:block := {|x| IIf(x==NIL, Name1, Name1 := x )}
oGet:name:= "NAME1"
oGet:colorSpec := "N/BG,W+/B"
oGet:display()

oGet := Get():new(wt+04,wl+sp)
oGet:block:= {|x| IIf(x==NIL, Name2, Name2 := x )}
oGet:name:= "NAME2"
oGet:colorSpec := "N/BG,W+/B"
oGet:display()

oGet := Get():new(wt+05,wl+sp)
oGet:block := {|x| IIf(x==NIL, Name3, Name3 := x )}
oGet:name := "NAME3"
oGet:colorSpec := "N/BG,W+/B"
oGet:display()

ReadModal( {oGet},1 )

Ich kapiers nicht - der focus steht immer nur auf der letzten Zeile - in die Datenbank geschrieben wird auch nichts. Woran mags wohl liegen???

Grüße
Wilfried
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von Jan »

Hallo Wilfried,

mit den textbasierten Funktionen kennen ich mich nicht so aus, ich habe damals gleich komplett den Schritt auf GUI gemacht. Aber ich könnte mir vorstellen, daß es daran liegt, das alle drei Felder oGet heißen, und Du nur nach dem Letzten ein ReadModal() machst. Und da ist oGet natürlich nur noch das letzte Feld, alle anderen wurden ja inzwischen überschrieben.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo Jan,

vielen Dank für die rasche Rückanwort. Dein Tipp mit dem oGet-Aufruf war sehr hilfreich (siehe unten).

Was noch fehlt:

Das Schreiben der Daten in die Datenbank - vermutlich fehlt die Auswertung des codeblocks. Ich dachte das macht Readmodal - macht es aber offensichtlich nicht.

Vorgestern hatte ich schonmal diese Variante:

Local oGet[3]
Local wt:=10,sp:=40

oGet[1] := Get():new(wt+03,wl+sp)
oGet[1]:block := {|x| IIf(x==NIL, Name1, Name1 := x )}
oGet[1]:name := "NAME1"
oGet[1]:colorSpec := "N/BG,W+/B"
oGet[1]:display()

oGet[2] := Get():new(wt+04,wl+sp)
oGet[2]:block := {|x| IIf(x==NIL, Name2, Name2 := x )}
oGet[2]:name := "NAME2"
oGet[2]:colorSpec := "N/BG,W+/B"
oGet[2]:display()

oGet[3] := Get():new(wt+05,wl+sp)
oGet[3]:block := {|x| IIf(x==NIL, Name3, Name3 := x )}
oGet[3]:name := "NAME3"
oGet[3]:colorSpec := "N/BG,W+/B"
oGet[3]:display()

ReadModal( oGet,1 )

Hier funktioniert ReadModal mit cursor rauf/runter (hatte das vergessen, weil was anderes nicht hingehauten hatte).

Ostergrüße
Wilfried


Mein Programmierermotto: Wenn etwas nicht funktioniert - versuch was anderes, vielleicht funktioniert das ja auch nicht.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von brandelh »

Hallo Wilfried,

Wenn du nicht genau weißt, warum du das alte "@ SAY GET" System statt mit den normalen Befehlen
mit "oGet := ..." benutzt, dann lass es sein :!:

Für den Textmodus ist die alte Syntax viel einfacher und völlig ausreichend.
Nur das GetList - Array, sollte local sein, so kann man in unteren Funktionen ein eigenes ohne Nebenwirkungen aufmachen.

local getlist := {} // ich hoffe ich habe mich jetzt nicht verschrieben, es ist schon so lange her ;-)

Bitte sieh dir meinen Beitrag zur DEVCON an, das macht es eventuell klarer.
Wenn du in Funktionen dann einzelne Objekt Eigenschaften des Getsystems brauchst, kannst du das jeweilige Objekt aus der Getlist holen (bei der Übergabe an die Funktion, denn wir haben ja eine LOCAL GETLIST).
Gruß
Hubert
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo Hubert,

zur Erläuterung: Der Auslöser für die ganze Aktion war:
Wie bekomme ich mit "copy & paste" z.B. die email-Adresse oder eine Handynummer aus einer email in das entsprechende
Datenfeld in der Kundendatenbank. Geht das ohne Ahnung von objektorientierter Programmierung? Da man irgendwie mal
anfangen muß, war das mein erster Versuch.

Unter Clipper (und WIN XP) ging copy&paste ja einfach - da hat WIN XP die Funktionalität zur Verfügung gestellt. Wie
mache ich es aber mit XBase++?? (Vielleicht sollte ich mal den ehemaligen Verteidigungsminister Dr.G.... befragen, der
scheint sich damit ja bestens auszukennen).

Bei den ALASKA-Beispielen mit GUI-Oberfläche geht es "automatisch" - ohne daß ich den erforderlichen Code in den
Beispielen erkennen könnte.

Hat jemand für die copy&paste-Geschichte ohne GUI-Oberfläche eine Lösung??

Grüße
Wilfried
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von brandelh »

Hi,

des Lesen AUS der Zwischenablage geht einfach, siehe Beispiel bei CLIPBOARD
Wie das mit der Maus bei XbpCrt() geht, weiß ich nicht - habe ich nie genutzt - aber z.B. den Tastendruck (shift einf)
kann man abfragen und damit das Getfeld gestücken.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von AUGE_OHR »

WilfriedK hat geschrieben:Wie bekomme ich mit "copy & paste" z.B. die email-Adresse oder eine Handynummer aus einer email in das entsprechende
Datenfeld in der Kundendatenbank. Geht das ohne Ahnung von objektorientierter Programmierung? Da man irgendwie mal
anfangen muß, war das mein erster Versuch.

Unter Clipper (und WIN XP) ging copy&paste ja einfach - da hat WIN XP die Funktionalität zur Verfügung gestellt. Wie mache ich es aber mit XBase++??
im Prinzip genau so ;)

Wenn du über GET sprichst solltest du dir C:\ALASKA\XPPW32\Source\SYS\GetSys.prg ansehen.
in der PROCEDURE GetApplyKey( oGet, nKey ) werden nun "Tasten" behandelt ... aber es gibt kein STRG-V oder STRG-C ...

wenn du aber nun GET im Hybrid Modus ( /PM:PM ) verwendet musst du dafür die C:\ALASKA\XPPW32\Source\SYS\GetSysX.prg modifizieren
und es in der PROCEDURE GetHandleEvent() einbauen.

da du für eine Adresse vermutlich mehrere Felder hast würde ich eine "eigenen" GET-Reader konstruieren der dann gleich mehrere Felder "belegen" kann.
gruss by OHR
Jimmy
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo,

vielen Dank für Eure Mühe. Dank Eurer Hinweise habe ich inzwischen eine Lösung gefunden - allerdings hat es mich fast zur Verzweiflung gebracht.

Vorab noch eine Verständnisfrage an Jimmy:

Die unter "C:\ALASKA\XPPW32\Source\SYS\....." stehenden .prg's werden die bei einer Programmerstellung mitcompiliert??

D.h. wenn ich dort Code ändere, reagiert dann auch mein Programm entsprechend anders?

Grüße
Wilfried
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14655
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von Jan »

Wilfried,

nein. Die sind die Grundlage für einige Funktionen in den Xbase++-ddl. Wenn Du Details ändern möchtest, dann kannst Du das am original Quellcode machen, mußt aber die geänderte prg dann mit zusammen mit all deinen anderen prg einbinden.

Natürlich immer nur mit Kopien der Original-prg arbeiten ;-)

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo Jan,

dachte mir schon, daß man die .prg's einbinden muß - aber man weiß ja nie....

Was heute für viel Verwirrung gesorgt hat, ist folgendes:

- Wenn ein (einfaches) READ abgearbeitet ist, wird der Inhalt der Getlist gelöscht.
- Wenn READMODAL() abgearbeitet ist, wird der Inhalt der Getlist offensichtlich nicht gelöscht.

Wenn nach einem @GET --> READMODAL() in einem ganz anderen Programmteil wieder eine @GET-Abfrage kam, wurde die "alte" Getlist nochmals
abgearbeitet und hat dabei natürlich den ganzen aktuellen Bildschirm überschrieben. Wenn dann alle alten @Gets durchwaren, kamen dann die
"neuen" @Get-Abfragen.

Je nachdem, ob in einem Programmteil ein READ oder READMODAL() ausgeführt wurde, hat alles funktioniert oder es hat das Chaos geherrscht.

Ich hatte vermutet, daß durch die HOTKEY-Belegung des CRTL-V über SetAppEvent() irgendwas Amok läuft. Auf die Idee mit der Getlist bin ich
erst nach stundenlangem Probieren gekommen.

Seit ich hinter jedem READMODAL() ein Getlist := {} dranhänge funktioniert wieder alles.

Aus GetSys.prg und insbesondere GetSysX.prg kann ich nicht erkennen, wo der Inhalt der Getlist gelöscht wird - da steht einfach zu viel
Unbekanntes drin - da bin ich überfordert.

Grüße
Wilfried
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von georg »

Hallo, Wilfried -


ich kann nur auf die Dokumentation zu ReadModal verweisen:
The READ command is translated by the preprocessor to a call to ReadModal(), which is passed the array GetList . After the READ ends, an empty array is assigned to the variable GetList . If the SAVE option is used with the READ command, the empty array is not assigned, so that the GetList array is left intact.
Wenn Du "reine" Clipper Kompatibilität haben willst, solltest Du die "alten" Clipper Befehle wie READ verwenden, da neuere Funktionen (wie ReadModal) eben abweichend funktionieren, weil das dahinterliegende Konzept etwas anders ist.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo Georg,

wo Du Recht hast, hast Du Recht.

Ich hatte mich zu sehr auf den Satz konzentriert:

"Nach Abschluß von READ, wird der Variablen GetList wieder ein leeres Array zugewiesen."

Die irrige Schlußfolgerung des XBase++-Anfängers, daß dies zwangsläufig auch auf READMODAL() zutreffen müsste, läßt sich nicht ableiten.

Noch 2 Fragen:

- Das Markieren innerhalb einer XBase++ Anwendung im Textmodus ist etwas mühsam - meist fehlt beim Markieren das erste Zeichen. Gibt es eine
Möglichkeit den "Markierungscursor" zu verändern/verbessern?

- Sobald man nach dem Markieren die Maustaste losläßt, wird der Text sofort ins clipboard übertragen. Gibt es auch eine Möglichkeit, die Windows-übliche Vorgehensweise:
"Markieren mit gedrückter Maustaste - Maustaste loslassen - (markierter Text ist hervorgehoben) - CTRL_C (einfügen) - Hervorhebung ist weg"
zu realisieren?
(Macht zwar wenig Sinn - zum Verständnis der Funktionalität würde es mich trotzdem interessieren.)

Grüße
Wilfried
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von AUGE_OHR »

WilfriedK hat geschrieben:Das Markieren innerhalb einer XBase++ Anwendung im Textmodus ist etwas mühsam - meist fehlt beim Markieren das erste Zeichen. Gibt es eine Möglichkeit den "Markierungscursor" zu verändern/verbessern?
im Text Modus verhält es sich wie Cl*pper.
Wenn "Zeichen" fehlen kann es daran liegen das für die CMD Box die Option "Quickedit" eingeschaltet ist.
Frage : hast du "insert" oder "overstrike" im Edit Modus ?
WilfriedK hat geschrieben:- Sobald man nach dem Markieren die Maustaste losläßt, wird der Text sofort ins clipboard übertragen. Gibt es auch eine Möglichkeit, die Windows-übliche Vorgehensweise:
"Markieren mit gedrückter Maustaste - Maustaste loslassen - (markierter Text ist hervorgehoben) - CTRL_C (einfügen) - Hervorhebung ist weg" zu realisieren?
ja aber nicht im Textmodus, dazu muss die Application Event gesteuert sein um auf die Maus zu reagieren ( SetMouse(.T.) ).
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von brandelh »

Hi,

laut der deutschen Doku wird READ vom Preprozessor nach READMODAL() übersetzt.
Wenn du die Option /P beim Kompilieren setzt, kannst du in der entstehenden .PPO Datei
sehen wie die Clipperbefehle in Funktionen übersetzt werden.
DOKU hat geschrieben:Der Befehl READ wird vom Präprozessor zu einem Aufruf der Funktion ReadModal() übersetzt, die das Array GetList erhält.
Nach Abschluß von READ, wird der Variablen GetList wieder ein leeres Array zugewiesen.
Dies kann vermieden werden, wenn bei dem Befehl READ die Option SAVE angegeben wird. Das GetList Array bleibt dann erhalten.
Der Versuch einem CONSOLEN Programm das Verhalten von Windowsfenstern beizubringen, ist mühselig und das Ergebnis wird KEINEN Windowsanhäger befriedigen !

Da wäre es leichter direkt ein GUI Fenster zu bauen. Ereignisorientierte Programmierung ist in beiden Fällen nötig.
Objekte werden in beiden Fällen benutzt (die GetList enthält GET-Objekte), richtiges OOP ist aber nicht nötig, solange man nur die XbParts verwendet.

PS: ich hatte in Clipper ein Programm geschrieben, das Texte anzeigte (Hardcopys von Host-Bildschirmen) und die Definition von Feldern per Tastatur ermöglichte:
1. Fx schaltet in Markierungsmodus um, nun erscheint ein ROTER Cursor, der mit den Pfeiltasten navigiert wird.
2. Mit der Taste [A] wird dann die aktuelle Position als Anfang (Zeile, Spalte) markiert (blaue Farbe)
3. Dann wird auf das Ende navigiert und mit der Taste [E] die aktuelle Position markiert (blaues Feld)
4. ...
5. [Enter] beendet die Markierung ...
Gruß
Hubert
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo,

ich hoffe, daß ich heute etwas weitermachen kann, nachdem ich die letzten Tage Geld verdienen musste.

"CMD Box", Option "Quickedit", "Application Event", AppEvent, Compiler-Schalter, "XbParts", ".PPO Datei" ..,

Ich muß alles erst nachlesen. Und dann gehts vom hundertsten ins tausendste, wobei ich trotz Forensuche noch immer nicht weiss, was "Quickedit" ist.

Meine Fragestellung hat darauf abgezielt, daß beim Drücken der linken Maustaste ein Markierungscursor auftaucht, bestehend aus 2
rechtwinkligen Schenkeln, vom dem ich nicht weiss, woher er kommt. Mit diesem Cursor trifft man den zu markierenden Text sehr schlecht,
insbesondere das erste Zeichen nicht. Wenn man es geschafft hat, daß auch das 1.Zeichen markiert ist, gehen beim einfügen keine Zeichen
verloren.

Bei der Leserei bin ich zu 1 wesentlicher Erkenntnis gekommen:

nEvent := AppEvent( @mp1, @mp2, @oXbp )

darf innerhalb eines Threads wohl nur 1 mal vorkommen, damit das WINDOWS-Konzept passt. Dazwischengestreute Funktionstasten-Abfragen sind
wohl nicht so doll.....oder???

So gaaaanz langsam glaube ich den Unterschied zwischen WINDOWS-klickerei und DOS-Programmen zu begreifen.

Grüße
Wilfried
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von georg »

Guten Morgen, Wilfried -


das absurde Hobby der Geldverdienerei kann einem den ganzen Tag vermiesen ...

Sorry, wenn die Informationen etwas "durcheinander" erfolgen. Quickedit ist eine Windows-Funktion, die unter CMD.exe genutzt wird. Da Du Dein Programm derzeit als VIO laufen lässt, gelten diese Funktionen auch dafür. Du solltest sie über die Eigenschaften-Seite Deines Programms im Explorer erreichen.

Wo genau willst Du hin? Wenn es Dein (erstrangiges) Ziel ist, das Programm als Windows-Applikation ans Laufen zu bekommen, dann lasse im ersten Schritt die Finger von AppEvent() und Konsorten. Wenn das Programm dann läuft (und die Kunden zufrieden sind), kannst Du versuchen, es in den GUI-Modus umzustellen - dann ist die Zeit da, diese Schmakazien anzusehen und zu lernen.

Wiewohl ich früher mit Begeisterung VIO-Programme geschrieben habe, sind es inzwischen GUI-Programme (ganz selten mal ein Programm, das keine Interaktion mit dem Anwender braucht), die ich schreibe.

Zu Deiner Frage zu AppEvent() - auch die Funktionstasten werden über den Event-Loop abgehandelt.


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo,

zur Erläuterung:

Umstellung cipper --> XBase++ : fertiggestellt + läuft
Umstellung Menüsystem auf GUI : fertiggestellt + läuft (AppEvent erforderlich)

Dann festgestellt, daß die copy&paste Funktion fehlt. Lästig, wenn man alles von Hand eintragen muß und dabei auch noch Tippfehler macht.

Zum nächsten Schritt, eine GUI-Abfrage zu basteln, bin ich schon gar nicht mehr gekommen.

Bin jetzt am Versuch copy&paste wieder einzubauen ("wird ja wohl nicht so schwer sein") --> bis jetzt gescheitert.

Es gibt eine @say - get - Read Abfrage mit 20 Zeilen und eine hotkey-Belegung von CTRL-V mit

SetAppEvent( xbeK_CTRL_V, {|mp1,mp2,obj| PasteWK2(mp1,mp2,obj) } )

Ins clipboard wird ein oder mehrzeiliger Text eingelesen und in aListe[] zeilenweise eingetragen. (Anregung von Jimmy)

"PasteWK" funktioniert wie Weltmeister - solange ich nicht bei mehrzeiligem Text in der @say-get Abfrageliste um 1 Position nach oben gehe.
(Auch wenn GetListPos() z.B. 3 ist und daher nach unten noch viel Platz ist).

Dann wird:
Getlist[GetListPos()+1]:buffer == NIL
und ich bekomme eine Fehlermeldung.

(Bei einzeiligem Text, d.h. es gibt nur aListe[1] und sonst nichts funktioniert auch alles.)


FUNCTION PasteWK(mp1,mp2,obj)
*bei CTRL_C clipboard (WINDOWS Zwischenablage) einfügen - hier Testversion

DECLARE aListe[3]
aListe[1] := "ClipBoard-Text 1"
aListe[2] := "ClipBoard-Text 2"
aListe[3] := "ClipBoard-Text 3"

cTextinbuffer := Getlist[GetListPos()+0]:buffer //Pos. 0
cTextinbuffer := ALLTRIM(cTextinbuffer)

cTextinbuffer := Getlist[GetListPos()+1]:buffer //Pos. +1
* ? Getlist[GetListPos()+1]:buffer // == NIL
cTextinbuffer := ALLTRIM(cTextinbuffer) // Fehlermeldung

cTextinbuffer := Getlist[GetListPos()+2]:buffer //Pos +2
cTextinbuffer := ALLTRIM(cTextinbuffer)

cText:= aListe[1]
Getlist[GetListPos()+0]:varPut(cText) // in aktive Zeile schreiben
Getlist[GetListPos()+0]:display() // und anzeigen

cText:= aListe[2]
Getlist[GetListPos()+1]:varPut(cText) // in aktive Zeile schreiben
Getlist[GetListPos()+1]:display() // und anzeigen

cText:= aListe[3]
Getlist[GetListPos()+2]:varPut(cText) // in aktive Zeile schreiben
Getlist[GetListPos()+2]:display() // und anzeigen

RETURN(.T.)


Grüße
Wilfried
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von georg »

Hallo, Wilfried -


eigentlich würde ich - wenn Dein Programm an Input-Dialog nur eine "Seite" hat - das Programm neu direkt als GUI schreiben, d.h. mit Xbase-Parts und nicht im Hybrid-Modus. Das tut einmal weh, bis man den Dreh raus hat, und dann geht es fast so schnell wie @ SAY / GET.

In dem Moment, wo Du die Xbase-Parts verwendest, kannst Du auch die Windows-eigenen Copy/Paste Funktionen nutzen und musst nichts "bauen".

Ich habe derzeit ein uraltes Clipper-Programm, das ich mit einem sehr geduldigen Anwender gerade nach Xbase++ portiere, und zwar als reine VIO-Anwendung. Wenn alles läuft (Programm-Logik, denn da war eine Änderung erforderlich), werde ich das Programm nach GUI portieren, indem ich ein neues Framework aufsetze, d.h. Window, Menü, die wenigen Dialog über Xbase-Parts realisiere. Die reinen Auswertungs- und Rechenroutinen werde ich dann (fast) unverändert übernehmen (die Änderungen betreffen die Verwendung von PUBLIC Variablen).


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
WilfriedK
Rookie
Rookie
Beiträge: 18
Registriert: Mi, 28. Mai 2008 20:18

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von WilfriedK »

Hallo,

habe den Fehler und damit auch die Lösung gefunden:

cTextinbuffer := Getlist[GetListPos()+i]:buffer

ist falsch (hatte ich von irgendwoher kopiert und daher angenommen, daß es richtig sein müsste)

so funktionierts: cTextinbuffer := Getlist[GetListPos()+i]:varget()
(wie in der Doku beschrieben)

Danke für Eure Hilfe.

So jetzt kanns ans Datenbereinigen gehen......mit copy&paste.

Grüße
Wilfried
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Getlist auswerten mit Readmodal funktionier nicht

Beitrag von AUGE_OHR »

WilfriedK hat geschrieben:Umstellung cipper --> XBase++ : fertiggestellt + läuft
Umstellung Menüsystem auf GUI : fertiggestellt + läuft (AppEvent erforderlich)
wo hast du jetzt das Menü eingebaut ?

wenn ich eine Cl*pper Appication auf Hybrid umstelle lege ich das ganze in die o:drawingArea eines XbpDialog.
Damit habe ich dann den "richtigen" Parent zum "malen" von XbParts und den ersten Schritt in Richtung GUI.

bei Umstellung nach "pure" GUI ist weniger das "lernen" von neuen Functionen das Problem sondern das du dein "Procedur-Denken" umstellen musst.
Bei Cl*pper legst du die Reihenfolge fest d.h. das 1st GET kommt "vor" dem 2nd GET aber wenn du eine Maus benutzt kann der User bei jedem GET anfangen.

In einer GUI Applikation "reagierst" du auf den User ... so als wenn du nAction := INKEY() hättest nur das AppEvent() nicht "wartet"
gruss by OHR
Jimmy
Antworten