Interface mit Daten (Beispiel für PB4)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Ist schon Ostern :?:

@ts-soft: War nicht da. Habe zur Zeit viel zu tun.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Sylvia hat geschrieben:Also, was ist den hier mit dem Begriff 'posthume' nicht in Ordnung ?
schlicht die tatsache, das posthum die abkürzung ist für

post humilitate = lat. nach dem Tode

ein gefallener Soldat kann posthum einen Orden bekommen,

ein verstorbener Schauspieler könnte vielleicht sogar posthum einen Oscar bekommen,

man könnte sagen, daß Van Gogh und andere die Anerkennung für ihre Werke erst posthum erhielten
(wobei der begriff damit schon arg strapaziert wäre)

Aber da sowohl du als auch TS und MK sich anscheinend noch bester Gesundheit erfreuen, ist der Begriff hier leider falsch.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Sylvia
verheiratet<br>1. PureGolf-Gewinner
Beiträge: 487
Registriert: 29.08.2004 09:42
Wohnort: Old Europe

Beitrag von Sylvia »

Sehr umstrittene Begriffe und Definitionen. Ich empfehle diese Seite:
Aus o.a.Link folgendes Zitat:
Deutsches Fremdwörterbuch, begonnen von Hans Schulz, fortgeführt von
Otto Basler, Berlin 1942, Band 2, S. 621: "postum, Adj. nachgeboren;
nachgelassen = lat. postumus 'der jüngste (Sohn); der Nachgeborene'
... offenbar erst in der 2. Hälfte des 18. Jahrhunderts im Schrifttum
allgemeiner verwendet [erster Nachweis von 1781; H.F.]; im 19.
Jahrhundert häufiger, gelegentlich im Sinn von 'verspätet; zu spät
(gekommen)' und darum 'nutzlos'
[1854, 1881 etc.; H.F.]. In der
lateinischen Form schon früher belegt und gebucht, in eigentlicher
Bedeutung und für die 'Nachgelassenen Schriften' [1701, 1789, 1709;
H.F.]. Die französischen und englischen Entsprechungen sind bei weitem
älter. ... Die deutsche Form Posthum erst bei Sanders 1871, bei Kehrein
1876."


>>ts-soft: Sind aber langsam genug Weich-Eier

Hätte aber noch ein paar Forums-Soft-Eis (alphabetisch sortiert):
  • Hypersoft
    Ice-Soft (Dr.Shrek)
    mk-soft
    OmegaSoft
    topSoft
    ts-soft
    Xsoft
Habe ich ein 'Softi' vergessen ? :mrgreen:
Basic Pur = PureBasic
Benutzeravatar
Lebostein
Beiträge: 674
Registriert: 13.09.2004 11:31
Wohnort: Erzgebirge

Beitrag von Lebostein »

Sylvia hat geschrieben:Habe ich ein 'Softi' vergessen ? :mrgreen:
Ja, Tomysoft :D
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

@sylvie:
Nachdem ich die "posthum - postum" Diskussionen las, machte ich mich auch auf die Suche. Nach Grimm, Duden,"Sprachbrockhaus" usw. die einen irgendwie im Regen stehen lassen, erstaunte mich der Wahrig mit der "klaren" Aussage: "posthum fälschl. für: postum".
Deshalb:
Das Wort postum - volksetymologisch posthum (Wortspiel, lateinisch etwa: nach dem Ableben) -, wird häufig gebraucht im Zusammenhang mit Ehrungen, sowie mit Veröffentlichungen von Werken einer bereits verstorbenen Person. Es geht zurück auf das lat. postumus (letzter, nachgeboren, nach dem Tode eintretend, Superlativ von posterus nachfolgend vgl. lat. post nach).
Und noch genauer:
Dies dürfte manchen Wortklauber überraschen: postum und posthum bedeuten tatsächlich dasselbe! Und zwar "nach jemandes Tod erfolgt" (zum Beispiel eine Auszeichnung) oder "nach jemandes Tod erschienen, nachgelassen". Dass nur "posthum" dies bedeutete, während "postum" mit "nachträglich" gleichzusetzen sei, ist ein Missverständnis.

Die Form ohne "h" ist die ältere. Sie wurde im 18. Jahrhundert aus dem lateinischen Wort postumus abgeleitet, welches "zuletzt geboren, nach dem Tod des Vaters geboren" bedeutet. Im Erbrecht gibt es den Begriff des Postumus, das ist der Spät- oder Nachgeborene.

Die Form mit "h" ist eine Nebenform, die sich volksetymologisch an das lateinische Wort humus (= Erde) und das davon abgeleitete humare (= beerdigen; daher: exhumieren = wiederausgraben) anlehnt. Weil man durch Verknüpfung mit "Humus" den Friedhofsgeruch förmlich riechen und sich somit die Bedeutung des Wortes postum besser merken konnte, schrieb man es vorzugsweise mit "h". Diese volkstümliche Variante hat sich durchgesetzt und die lateinische Form stark zurückgedrängt.

Wer heute postum statt posthum schreibt, der begeht aber keinen Fehler. Denn der Friedhofshumus ist dem Wort erst nachträglich beigemischt worden, die "reine" Form kommt ohne "h" aus und wird auch ganz normal auf der ersten Silbe betont: Postum - wie Punktum.
Aber hast recht. Es gibt genug Unwissende, die es wie du irrtümlich falsch benutzen, weil es viele um sie herum schon falsch benutzt haben. Das ist halt das kreuz mit den Fremdwörtern.

Schönen Abend.
Optimismus ist ein Mangel an Information.
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Interessant, wie sehr man sich an Worten zerfetzen kann. :)


Ist ein mittlerer Applaus wert.

Gruß Karl
The Kopyright Liberation Front also known as the justified ancients of Mumu!
PB 5.X
ullmann
Beiträge: 205
Registriert: 28.10.2005 07:21

Beitrag von ullmann »

Die OOP ist mir sehr fremd, Einstiegsversuche sind am Verständnis und an der kurzen verfügbaren Zeit gescheitert.

Dies hier ist ein sehr gutes Einstiegsbeispiel und noch dazu noch gut erklärt, danke :allright:

Wenn ich darauf schaue, glaube ich es verstanden zu haben, schaue ich weg, ... naja die Denkweise ist mir noch fremd.

Sehe ich das richtig, das in dem Interface die Methoden für MyObject in der gleichen Reihenfolge wie die Funktionsadressen in der DATA-Section geschrieben sein müssen ?

Wo ist der Vorteil von solchen Objekten, wo ich mit Methoden (letztendlich sind es die Prozeduren iGet und iPut) die Daten speichern kann?

Wie geht der nächste Schritt in der OOP? Hätte vielleicht jemand noch ein kleines Beispielprogramm? Z.B. auf einem 2D-Schachbrett 8 weiße und 8 schwarze Damesteine (einfache Kreise reichen aus) zufallsmäßig zu platzieren? Hat keinen Sinn, nur zum Verständnis der OOP. Prozedural bringe ich es selber.

Geht der Trend zu OOP? Wird mehr OO oder prozedural programmiert?

Danke für Antworten.

Rainer
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

ullmann hat geschrieben: Sehe ich das richtig, das in dem Interface die Methoden für MyObject in der gleichen Reihenfolge wie die Funktionsadressen in der DATA-Section geschrieben sein müssen ?
Das ist Richtig. Es werden ja nach den Compilieren nicht der Name der Methoden aufgerufen, sondern die Adresse in der virtuellen Tabelle
Wo ist der Vorteil von solchen Objekten, wo ich mit Methoden (letztendlich sind es die Prozeduren iGet und iPut) die Daten speichern kann?
Man kann jetzt ohne Probleme den Object weitere Methoden hinzufügen ohne die Daten übergeben zu müssen.
z.B. iAllesInGrossWandeln(), iAllesInkleinWandeln()
Geht der Trend zu OOP? Wird mehr OO oder prozedural programmiert?
Alle DCOM-Object sind so Programmiert, Wenn man das mit den virtuellen Tabellen durchschaut hat, Weiss man auch wie man andere Objecte in Purebasic integrieren kann.

FF :wink:

P.S. Wie man sinnvoll in Purebasic objectorientiert programmiert gibt es von ts-soft ein paar schöne Beispiele. Suche ich noch raus.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

So zum Beispiel:

OOP Beispiel
Optimismus ist ein Mangel an Information.
Benutzeravatar
Leonhard
Beiträge: 602
Registriert: 01.03.2006 21:25

Beitrag von Leonhard »

Wie ist das?

Code: Alles auswählen

Interface IMsgBox ; Interface
  SetTitle(Titel.s) 
  SetText(text.s) 
  SetFlags(flags.l) 
  Show() 
  Free() 
EndInterface 

Structure MsgBox_IT ; Structure der Liste der Proceduren-Pointer
  IT.l[SizeOf(IMsgBox)/4] 
EndStructure

Structure MsgBox_M ; Interface-Daten (*this)
  *VT.l
  Titel.s
  text.s
  flags.l
EndStructure 

Procedure MsgBox_SetTitle(*this.MsgBox_M, Titel.s) 
  *this\Titel = Titel 
EndProcedure 

Procedure MsgBox_SetText(*this.MsgBox_M, text.s) 
  *this\text = text 
EndProcedure 

Procedure MsgBox_SetFlags(*this.MsgBox_M, flags.l) 
  *this\flags = flags 
EndProcedure 

Procedure MsgBox_Show(*this.MsgBox_M) 
  ProcedureReturn MessageRequester(*this\Titel, *this\text, *this\flags) 
EndProcedure 

Procedure MsgBox_Free(*this.MsgBox_M) 
  FreeMemory(*this) 
EndProcedure 

Enumeration ; Methoden 
  #SetTitle 
  #SetText 
  #SetFlags 
  #Show 
  #Free 
EndEnumeration

Procedure New_MsgBox() 
  Protected *object.MsgBox_M 
  Static *VT.MsgBox_IT 
  If *VT       = #Null 
    *VT        = AllocateMemory(SizeOf(MsgBox_IT)) 
    *VT\IT[#SetTitle]   = @MsgBox_SetTitle() 
    *VT\IT[#SetText]    = @MsgBox_SetText() 
    *VT\IT[#SetFlags]   = @MsgBox_SetFlags() 
    *VT\IT[#Show]       = @MsgBox_Show() 
    *VT\IT[#Free]       = @MsgBox_Free() 
  EndIf 
  *object    = AllocateMemory(SizeOf(MsgBox_M)) 
  *object\VT = *VT 
  ProcedureReturn *object 
EndProcedure 

box.IMsgBox = New_MsgBox() 
If box
  box\SetTitle("OOP_MessageBox") 
  box\SetText("Magst Du OOP?") 
  box\SetFlags(#PB_MessageRequester_YesNo) 
  Select box\Show() 
    Case #PB_MessageRequester_Yes 
      box\SetText("Oh, das Freut mich!") 
    Case #PB_MessageRequester_No 
      box\SetText("Das macht mich Traurig") 
  EndSelect 
  box\SetFlags(#PB_MessageRequester_Ok) 
  box\Show() 
  box\Free() 
EndIf

; IDE Options = PureBasic v3.94 (Windows - x86)
; CursorPosition = 64
; FirstLine = 40
; Folding = g-
Antworten