Seite 1 von 2

Unterstützung bei OOP

Verfasst: Sa, 29. Apr 2023 18:42
von Bruno
Hallo Mitglieder,
Ich möchte ein Programm auf GUI erstellen, bzw. ein vorhandenes Umstellen.
Dazu bräuchte ich tatkräftige Unterstützung. :D
Da bei dieser Umstellung wahrscheinlich viele Ansätze sind, wo ich nachfragen müsste, wollte ich wissen, ob dies in dem Thread GUI gemacht wird, oder in welchen Thread ich da rein sollte.

Re: Unterstützung bei OOP

Verfasst: Sa, 29. Apr 2023 18:51
von Wolfgang Ciriack
Ich kann dir dazu nur eXPress++ empfehlen, da ist die Umstellung einer bestehenden App relativ einfach. Funktioniert auch mit der 1.9Sl prima.

Re: Unterstützung bei OOP

Verfasst: Sa, 29. Apr 2023 19:30
von Bruno
Wolfgang Ciriack hat geschrieben: Sa, 29. Apr 2023 18:51 Ich kann dir dazu nur eXPress++ empfehlen, da ist die Umstellung einer bestehenden App relativ einfach. Funktioniert auch mit der 1.9Sl prima.
Hallo Wolfgang,
Ich wollte eigentlich wissen, ob der Thread GUI dafür der richtige ist.

Ich will pures Xbase++, ohne irgendwelche andere Tools, welche einem das Leben angeblich leichter machen. :D
Bin was OOP betrifft, Anfänger, da will ich mich noch nicht mit anderen Tools beschäftigen, erstmal Xbase++ ! :banghead:

Ich habe auf der DEVCON 2012 eExpress erworben, Roger hat das Passwort auf einen Bierdeckel geschrieben. Dieses Passwort funktioniert nur bei einer Datei, auf dem USB Stick sind 2 Dateien. Ich habe mehrmals eine Email an Roger gesendet, keine Antwort erhalten. Das habe ich ihm gemailt: The password only works with exp19255.exe, with exp19256 I get the message that the password is wrong.

Re: Unterstützung bei OOP

Verfasst: So, 30. Apr 2023 14:26
von AUGE_OHR
hi Bruno,
Bruno hat geschrieben: Sa, 29. Apr 2023 19:30 Ich habe auf der DEVCON 2012 eExpress erworben, Roger hat das Passwort auf einen Bierdeckel geschrieben. Dieses Passwort funktioniert nur bei einer Datei, auf dem USB Stick sind 2 Dateien.
du hat die Express xxx erworben für die das Passwort gilt.

nun wird Express++ ständig weiter entwickelt und es gibt kein "Subskription" was die neue Update garantiert
aber wenn du v1.9 nutzt kannst du neuer Futures, welche auf v2.x beruhen, eh nicht nutzen

p.s. ein Express++ Upgrade ist längst nicht so (über-) teuer die ein Xbase++ Upgrade
---

ich habe Express++ nie genutzt ... "zu viele" Optionen die Xbase++ "so" nicht hat

das selbe "Problem" habe ich mit FiveWin gegenüber HMG ( Harbour Mini GUI ) welche beide, wie Express, mit @ x,y #Command Befehlen arbeiten können

wenn man aber die #Command Befehle drauf hat kann man mit viel weniger Zeilen eine App schreiben

---

Mein Einstieg in OOP was der Formdesigner XppFD.EXE
damit bekommt man CODE wie sich Alaska das vorstellt

XppFD.EXE erzeugt 2 Dateien welche den Inhalt CLASS Newform und CLASS _Newform enthält
man muss also den CODE modifizieren weil IMMER die selben Namen erzeugt werden

! Achtung : Wenn XppFD.EXE "neuen" Code generiert wird die "_Datei" nicht überschrieben ABER die ohne "_" Datei

wenn du damit arbeitest werden wohl die ersten GUI Fragen kommen weil es unter Windows "anders" funktioniert

Re: Unterstützung bei OOP

Verfasst: So, 30. Apr 2023 15:12
von Bruno
Hi Jimmy,

jo das habe ich schon festgestellt, ich soll in der _Datei keine Änderungen machen, wie spreche ich aber einen Button an oder andere Objekt und hole oder ändere Werte.

Ich packe das mal in ne ZIP, wenn Du mal reinschaust und in der MAIN ein Beispiel machst, muss nicht funktionieren, sondern zum verstehen.
Ich hab mir ne Funktion zum Captionwechsel in der Statusbar gemacht, wie kann ich die in den activate eines Buttons machen, wenn die Buttons in der _Datei sind.

Da happert es noch mit dem Verstehen ! :banghead:

Re: Unterstützung bei OOP

Verfasst: So, 30. Apr 2023 21:57
von ramses
Bruno hat geschrieben: Sa, 29. Apr 2023 18:42 Ich möchte ein Programm auf GUI erstellen, bzw. ein vorhandenes Umstellen.
Hallo Bruno
es passt wohl nicht ganz zu deiner Frage. Aber ich würde mir an deiner Stelle heute ernsthaft und sehr gut und ausführlich Gedanken darüber machen ob es nicht besser wäre anstelle von NEU in die GUI-Programmierung unter XBase++ einzusteigen nicht gleich einen Schritt weiter zu machen und die APP auf eine zukunftssichere Web-App im Single Page Design umzustellen ......

Re: Unterstützung bei OOP

Verfasst: So, 30. Apr 2023 22:15
von AUGE_OHR
hi Bruno,
Bruno hat geschrieben: So, 30. Apr 2023 15:12 Ich packe das mal in ne ZIP, wenn Du mal reinschaust und in der MAIN ein Beispiel machst, muss nicht funktionieren, sondern zum verstehen.
wo hast du die DISPOEINGABE.PRG welche zum Anfang generiert wurde :?:
du hast zwar die CLASS _DISPOEINGABE aber die CLASS DISPOEINGABE taucht nirgends auf

also generiere aus der *.XFF noch mal CLASS CODE mit anderen Namen und hole dir die Sachen aus der neuen Datei. die dort enthaltene MAIN solltest du dann umbenennen

---

was deine MAIN angeht bist du wieder im Cl*pper Style ...
es gibt kein

Code: Alles auswählen

   nEvent := AppEvent ( @mp1, @mp2, @oXbp )
um Events zu empfangen (um sie dann auszuführen)

sehe ich das richtig das du "nur" Wissen willst ob die "Dispo" App läuft :?:

für den "doppelten" Start der App kommt eine "Prüfung" hier zu spät
wenn die App doppelt läuft hast du die auch doppelt im Taskmanager aber "wie" unterscheiden :?

deshalb die Prüfung per DLL-Call in der Appsys was ich gepostet habe und nicht die "billlig" Lösung ob man eine DBF Exclusive öffnen kann
wenn er die App findet dann bringt er die App auch "nach vorne" so das der User die "sieht"

p.s. ich würde dem User nur was "zeigen" wenn es die betreffenden Apps im Array "aList" steht

---

in deinen "Schleifen" denkst du wieder nicht daran das die DBF im Zugriff sein "könnte"
solche "Endlos-Schleifen" können Windows "lahm" legen wenn da kein SLEEP erfolgt

---

was noch komplett fehlt sind die SET am Anfang von MAIN wie

Code: Alles auswählen

   SET EXCLUSIVE OFF                                                  // Netzwerk SHARE

   SET EPOCH TO YEAR( DATE() ) - 50
   SET CENTURY OFF
   SET DATE GERMAN   
auch die Euro Zeichen Einstellung fehlt, hier für OEM

Code: Alles auswählen

   SETLOCALE( NLS_ICURRENCYEURO, "1" )
   SETLOCALE( NLS_SCURRENCY, CHR( 213 ) )
---

ich würde zunächt eine Intro / Login Fenster bauen
von da in das Haupt Fenster mit einem Menu (egal welcher Art)

du hast dann später für jedes Fenster eine PRG
packe alle *.PRG in ein "Project" XPJ File

Code: Alles auswählen

DIR *.PRG /B  > PROJECT.TXT
PBUILD @PROJECT.TXT
PBUILD PROJECT.TXT.XPJ /g
siehe dir nach jedem der Schritte die entsprechenden Dateien an und du wirst "sehen" was er gemacht hat
bei COMPILE_FLAGS füge /w hinzu und ändere bei GUI auf "yes" und "PROJECT.EXE" in deinen Namen

wenn du später neue Module hast schreibst du die *.PRG in de XPJ unter "STOP-AUTODEPEND" und das entsprechende OBJ unter "START-AUTODEPEN"

! Achtung : wenn man den Debugger startet wird eine Datei "Appname.XPJ" angelegt / überschrieben

---

wenn ich die XFF Datei öffne sehe ich 4 x Button und ein Feld wo "Arbeitsjahr" steht
im Source "sehe" ich das

Code: Alles auswählen

::Status  := XbpStatusBar():new( ::drawingArea, , {12,440}, {400,40} )
klar kannst du die Statusbar verwenden wie du will aber "gedacht" ist die Statusbar "unten" in einem Fenster

in der generierten MAIN steht so was

Code: Alles auswählen

   DispoEingabe():New():Create()
das muss man erweitern um es einer Variable zuzuweisen

Code: Alles auswählen

LOCAL oDlg

   oDlg := DispoEingabe():New():Create()
danach kannst du dann die Codeblock Slots für die Buttons "belegen"

Code: Alles auswählen

   oDlg:Button1:activate := {|| MsgBox("Hello 1") }
   oDlg:Button2:activate := {|| MsgBox("Hello 2") }
   oDlg:Button3:activate := {|| MsgBox("Hello 3") }
   oDlg:Button4:activate := {|| MsgBox("Hello 4") }
da du noch keine "Eingabe" Felder eingebaut hast "fehlt" noch die ganze Sache mit dem "Datalink" für XbpSLE

im XppFD kannst du eine DBF auswählen und die FELDer welche er in den Fom-Designer übernehmen soll
aber das ist dann noch ein anderes Thema

Re: Unterstützung bei OOP

Verfasst: So, 30. Apr 2023 22:36
von AUGE_OHR
hi Carlo,
ramses hat geschrieben: So, 30. Apr 2023 21:57 GUI-Programmierung unter XBase++ einzusteigen nicht gleich einen Schritt weiter zu machen und die APP auf eine zukunftssichere Web-App im Single Page Design umzustellen ...
braucht man dafür dann noch Xbase++ ... :roll:

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 0:58
von Bruno
AUGE_OHR hat geschrieben: So, 30. Apr 2023 22:15 hi Bruno,
Bruno hat geschrieben: So, 30. Apr 2023 15:12 Ich packe das mal in ne ZIP, wenn Du mal reinschaust und in der MAIN ein Beispiel machst, muss nicht funktionieren, sondern zum verstehen.
wo hast du die DISPOEINGABE.PRG welche zum Anfang generiert wurde :?:
du hast zwar die CLASS _DISPOEINGABE aber die CLASS DISPOEINGABE taucht nirgends auf

Sorry Jimmy,
da ist wohl was falsches in der ZIP gelandet.
Hier nochmal die ZIP.

Ich hab mit XBFDD den Code machen lassen, in der einen _Datei steht man soll keine Änderungen darin sondern in der Datei ohne _

Da in der _Datei die Buttons mit drin stehen, wie kann ich die über die Datei ohne _ Die Codeblöcke an die Buttons zuweisen?

Das war meine Frage?

Meine Dispo funktioniert in einem CrtFenster, also ändert sich nicht viel, ausser das Hybrid WIN32 wird.

Und nein, ich wollte keine Bestätigung das die Dispo läuft.
Für mich heisst das einfach Schritt für Schritt, erstmal muss ich begreifen, wie man Objekte welche in der _Datei gemacht sind, in der MAIN oder einer anderen PRG Datei dann erreicht und anspricht.

Ich habe vor, die Verwaltung, welche momentan in der Dispo mit drin ist, zukünftig getrennt laufen zu lassen. Ich zeig dir mal das Bild momentan.
Screenshot 2023-05-01 010954.jpg
Screenshot 2023-05-01 010954.jpg (47.45 KiB) 3271 mal betrachtet
Wie auf dem Bild erkennbar, ist alles in einem, das soll sich beim Neuschreiben ändern, deshalb habe ich mit XBFDD angefangen erstmal ein Dialog für die Eingabe zu erstellen.

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 1:34
von AUGE_OHR
hi Bruno,
Bruno hat geschrieben: Mo, 01. Mai 2023 0:58 Da in der _Datei die Buttons mit drin stehen, wie kann ich die über die Datei ohne _ Die Codeblöcke an die Buttons zuweisen?
lies bitte die Stellen wo du CODE siehst, da hab ich dir alles geschrieben.

du musst den CODE modifizieren wenn du "nachträglich" was ändern willst.
dazu brauchst du eine Variabel die der CLASS zugeordnet wird

Code: Alles auswählen

   oDlg := DispoEingabe():New():Create()
alles was "Child" angeht wird mit "Parent:Child" angesprochen

Code: Alles auswählen

   oDlg:Button1:activate := {|| MsgBox("Hello 1") }
auch Property, Method oder Codeblock Slot werden mit ":" angesprochen

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 6:32
von Bruno
AUGE_OHR hat geschrieben: Mo, 01. Mai 2023 1:34 hi Bruno,
Bruno hat geschrieben: Mo, 01. Mai 2023 0:58 Da in der _Datei die Buttons mit drin stehen, wie kann ich die über die Datei ohne _ Die Codeblöcke an die Buttons zuweisen?
lies bitte die Stellen wo du CODE siehst, da hab ich dir alles geschrieben.

du musst den CODE modifizieren wenn du "nachträglich" was ändern willst.
dazu brauchst du eine Variabel die der CLASS zugeordnet wird

Code: Alles auswählen

   oDlg := DispoEingabe():New():Create()
alles was "Child" angeht wird mit "Parent:Child" angesprochen

Code: Alles auswählen

   oDlg:Button1:activate := {|| MsgBox("Hello 1") }
auch Property, Method oder Codeblock Slot werden mit ":" angesprochen
Hi Jimmy,
wie heisst es so schön? Es hat geklingelt !!! :D Jetzt hab ich das , sobald ich das New der Variable oDlg zuweise, wird auch New ausgeführt, und alle Objekte kann ich dann über oDlg erreichen, ändern, manipulieren, etc. !
Vielen Dank für den Weckruf :D , hatte Tomaten auf den Augen :banghead: ! Nur der Aufruf von New startet zwar das Fenster, aber mehr auch nicht.
Genau das meinte ich mit Beispiel !!! :D
Mit dem Hinweis der Zuordnung an eine Variable, hätte mir das schon begreiflich gemacht. Wenn du nur geschrieben hättest setz mal ein oDlg:= vor DispoEingabe():New():Create() , dann hätte ich im Debugger gesehn, aha sieh mal.
Vielen Dank !

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 6:59
von Bruno
Hi Jimmy, Du hast ja die Funktion zum ändern der Caption gesehen, die kann ich jetzt aber nicht mehr so verwenden ?

Code: Alles auswählen

PROCEDURE AenderCaption( oSBar, oXbp,cOldCaption )
    LOCAL oParent := oSBar:setParent()
    LOCAL oPanel
    oPanel := oSbar:getItem( "TXTPANEL" )
    IF oPanel:caption <> oXbp:caption
        oPanel:caption  := oXbp:caption
        oPanel:autoSize := XBPSTATUSBAR_AUTOSIZE_CONTENTS
    ELSE
        oPanel:caption:=cOldCaption
        oPanel:autoSize := XBPSTATUSBAR_AUTOSIZE_CONTENTS
    ENDIF
RETURN
Ich kann beim Aufruf ja nur das oDlg mitgeben.
Ich merke, OOP ist doch etwas anderes.
Oder müsste das als Methode in der Klasse definiert werden?

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 14:05
von Bruno
ramses hat geschrieben: So, 30. Apr 2023 21:57
Bruno hat geschrieben: Sa, 29. Apr 2023 18:42 Ich möchte ein Programm auf GUI erstellen, bzw. ein vorhandenes Umstellen.
und die APP auf eine zukunftssichere Web-App im Single Page Design umzustellen ......
Hallo Carlo,
bitte näher erklären

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 14:18
von AUGE_OHR
hi Bruno,
Bruno hat geschrieben: Mo, 01. Mai 2023 6:59 Du hast ja die Funktion zum ändern der Caption gesehen, die kann ich jetzt aber nicht mehr so verwenden ?
warum nicht, du hast doch Zugriff auf die XbpPushButton() und XbpStatusbar()

Code: Alles auswählen

oDlg:Button1:activate := {|| oDlg:Status:Caption := oDlg:Button1:Caption, MsgBox("Hello 1") }
es geht auch über deine Function die IMHO überflüssig ist

Code: Alles auswählen

oDlg:Button1:activate := {|| AenderCaption( oDlg:Status, oDlg:Button1, oDlg:Button1:Caption ), MsgBox("Hello 1") }

Re: Unterstützung bei OOP

Verfasst: Mo, 01. Mai 2023 17:54
von ramses
Bruno hat geschrieben: Mo, 01. Mai 2023 14:05 Hallo Carlo,
bitte näher erklären
Hi Bruno
eine allen bekannte Web-App ist z.B. das Online-Banking usw. hier im Board findest du auch einiges über Web-Apps oder z.B. unter https://de.wikipedia.org/wiki/Webanwendung

Bei xb2.net findest du das nötige Tool für xbase++1.9.XXX und einige Beispiele ....

Re: Unterstützung bei OOP

Verfasst: Do, 04. Mai 2023 10:10
von Bruno
Hallo Carlo,

Dies bedeutet doch Sicher, das ein Server ( MS Server ) in Betrieb sein müsste???

Eine reine Netzwerkfestplatte ( Webdrive ) ??? Wie sieht es da aus ?

Web App hört sich gut an, wenn jedoch damit ein richtiger Serverbetrieb erfordert wird, ist das nicht so unser Ding.

Wir nutzen eine interne NAS.

Ob die NAS xBase++ Programme verarbeitet wissen wir nicht. Synology DS 218.

Re: Unterstützung bei OOP

Verfasst: Do, 04. Mai 2023 10:28
von Jan
Xbase++-Programm brauchen (noch) zwingend Windows als Betriebsystem. Egal ob als Server oder als Client. Ob sich da was dran ändern wird irgend wann werden wir ja vielleicht ab morgen erfahren in den Sessions von Alaska. Vor Jahren wurde von Alaska mal offiziell kommuniziert das die das auch auf Linux lauffähig machen wollen, aber da ist bislang noch nichts passiert, wurde auch nie wieder erwähnt.

Und nur so nebenbei: Xbase++ ist ein Eigenname. Und wird genau Xbase++ geschrieben. Nicht xBase++, nicht xbase++, oder sonst wie. Wobei xBase allgemein der Begriff für alle Sprachen ist, die von dBASE abstammen.

Jan

Re: Unterstützung bei OOP

Verfasst: Do, 04. Mai 2023 14:01
von ramses
Bruno hat geschrieben: Do, 04. Mai 2023 10:10 Dies bedeutet doch Sicher, das ein Server ( MS Server ) in Betrieb sein müsste???
Hallo Bruno

ja, leider. Nicht zwinged ein Server: Windows10 auf einem MiniPC reicht auch. Auf den üblichen NAS kannst du Xbase++ Programme nicht aufführen.

Wir haben auch alle Daten, Datenbankem usw. auf Unix Server unter Windows läuft nur der Web-App Server. Das nervt zwar, ein Umstieg ist aber nur schon wegen der vielen verwenden Zusattools zur Dokumenten Erstellung usw. gar nicht möglich auch wenn es Xbase++ für Unix gäbe die vielen Tools gibts nicht dazu....

Re: Unterstützung bei OOP

Verfasst: Do, 04. Mai 2023 14:52
von Bruno
Jan hat geschrieben: Do, 04. Mai 2023 10:28 Xbase++-Programm brauchen (noch) zwingend Windows als Betriebsystem. Egal ob als Server oder als Client. Ob sich da was dran ändern wird irgend wann werden wir ja vielleicht ab morgen erfahren in den Sessions von Alaska. Vor Jahren wurde von Alaska mal offiziell kommuniziert das die das auch auf Linux lauffähig machen wollen, aber da ist bislang noch nichts passiert, wurde auch nie wieder erwähnt.

Und nur so nebenbei: Xbase++ ist ein Eigenname. Und wird genau Xbase++ geschrieben. Nicht xBase++, nicht xbase++, oder sonst wie. Wobei xBase allgemein der Begriff für alle Sprachen ist, die von dBASE abstammen.

Jan
Hiermit entschuldige ich mich offiziell für die falsche Schreibweise !

Re: Unterstützung bei OOP

Verfasst: Do, 04. Mai 2023 15:00
von Jan
Hallo Bruno,

:lol: Bei mir mußt Du Dich nicht entschuldigen. Wenn überhaupt nur bei Alaska. Ich wollte nur darauf hinweisen, weil alleine in diesem Thread mind. 2 Mitdiskutanten das falsch geschrieben haben, und das auch sonst recht beliebt ist (meistens die Variante xBase++). Womit wir ja alle leben können, wir wissen ja was gemeint ist.

Jan

Re: Unterstützung bei OOP

Verfasst: Do, 04. Mai 2023 15:35
von Frank Grossheinrich
Jan hat geschrieben: Do, 04. Mai 2023 15:00 :lol: Bei mir mußt Du Dich nicht entschuldigen. Wenn überhaupt nur bei Alaska. Ich wollte nur darauf hinweisen, weil alleine in diesem Thread mind. 2 Mitdiskutanten das falsch geschrieben haben, ...
Ich wollte es schon schreiben/anmahnen. Es brannte unter den Nägeln und ich war dankbar für deinen Einwurf!
Mir tut diese falsche Schreibweise in den Augen weh. Das ist wie Franck oder Jann oder Burno oder ...
Eben falsch.

Grüße
Frank

PS: und wenn ich schon am klugschei**en bin ... das ist alles noch kein OOP. Hier schreibt keiner eine eigene Klasse oder Methoden, sondern es wird eine Klassenfunktion angewendet, Objektinstanzen erzeugt und verwendet, aber alles im funktionalen Stil. Das gab es schon bei Clipper.

Re: Unterstützung bei OOP

Verfasst: Fr, 05. Mai 2023 9:48
von Bruno
Frank Grossheinrich hat geschrieben: Do, 04. Mai 2023 15:35
PS: und wenn ich schon am klugschei**en bin ... das ist alles noch kein OOP. Hier schreibt keiner eine eigene Klasse oder Methoden, sondern es wird eine Klassenfunktion angewendet, Objektinstanzen erzeugt und verwendet, aber alles im funktionalen Stil. Das gab es schon bei Clipper.
Hallo Frank,
sehr gut, immer auf die Kleinen :D ,
Es wäre für mich hilfreich, wenn Du mir einfach mal das :

Code: Alles auswählen

PROCEDURE AenderCaption( oSBar, oXbp,cOldCaption )
    LOCAL oParent := oSBar:setParent()
    LOCAL oPanel
    oPanel := oSbar:getItem( "TXTPANEL" )
    IF oPanel:caption <> oXbp:caption
        oPanel:caption  := oXbp:caption
        oPanel:autoSize := XBPSTATUSBAR_AUTOSIZE_CONTENTS
    ELSE
        oPanel:caption:=cOldCaption
        oPanel:autoSize := XBPSTATUSBAR_AUTOSIZE_CONTENTS
    ENDIF
RETURN
im OOP Style zeigst. Ich will nicht die direkte Übersetzung einfach so, sondern mit Hinweisen wie, wie, wo, warum, am besten so, etc.! So nach dem Motto für einen der keine Ahnung hat und es verstehen ( gedanklich übersetzten ) möchte. ( Lernen ). :D

Wird das B nach dem X ( Xbase++ ) auch groß geschrieben ?

Re: Unterstützung bei OOP

Verfasst: Fr, 05. Mai 2023 10:24
von Jan
Bruno,

wie ich schrieb (und es auch oben im Foren-Banner steht): Xbase++

Jan

Re: Unterstützung bei OOP

Verfasst: Fr, 05. Mai 2023 10:53
von AUGE_OHR
hi Bruno,
Bruno hat geschrieben: Fr, 05. Mai 2023 9:48 Es wäre für mich hilfreich, wenn Du mir einfach mal das :

im OOP Style zeigst.
eine Procedure in eine Method zu wandeln ist ganz einfach :

umbenennen von Procedure in Method
die neue Method aufnehmen in die CLASS

---

wenn du die Dateien vom Formdesigner nimmst kannst du die neue METHOD in die CLASS dort rein schreiben

Code: Alles auswählen

CLASS DispoEingabe FROM _DispoEingabe
   EXPORTED:
      METHOD init
      METHOD create
      METHOD AenderCaption(oXbp()
ENDCLASS
du kannst weiter mit Parameter bei der Übergabe arbeiten aber wenn es Control von der CLASS sind brauchst du es nicht

Code: Alles auswählen

PROCEDURE AenderCaption( oSBar, oXbp,cOldCaption )

   oPanel := oSbar:getItem( "TXTPANEL" 
wird zu

Code: Alles auswählen

METHOD AenderCaption(oXbp, cOldCaption )

   oPanel := ::Status:getItem( "TXTPANEL" 
   IF oPanel:caption <> oXbp:caption
wobei die Abfrage IHMO "überflüssig" ist

Code: Alles auswählen

METHOD AenderCaption(cNeuCaption)
   ::Status:Caption := cNeuCaption
RETURN self

Re: Unterstützung bei OOP

Verfasst: Fr, 05. Mai 2023 11:29
von Bruno
Jan hat geschrieben: Fr, 05. Mai 2023 10:24 Bruno,

wie ich schrieb (und es auch oben im Foren-Banner steht): Xbase++

Jan
Hi Jan,
ich möchte auch mal mäkeln, :D , Im Forenbanner steht " Xbase-Forum " , " Xbase-Welt " , " Xbase-Entwickler " ! :D
Da fehlt überall das " ++ " :evil4: :evil4: :evil4:
Ich hoffe ihr versteht einen kleinen Spass ! :D