MLEartiges Objekt für Chats

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

MLEartiges Objekt für Chats

Beitragvon Benz » Fr, 22. Apr 2016 12:45

Hallo,

Ich habe noch wenig Erfahrung damit Objekte so anzupassen, dass Sie sich anders verhalten als die Standardobjekte von Windows/Xbase++ (SLE,MLE, RadioButton, etc.). Generell würde ich gerne wissen wie denn das Vorgehen ist, wenn ich
eigene Objekte machen möchte und diese von anderen Objekten ableite.
Zum Beispiel würde ich gerne ein Objekt machen, das ähnlich wie ein ListObjekt oder ein MLE aussieht. Dabei soll ein Chatverlauf angezeigt werden. Also ich schreibe meinem Gegenüber dieser Antwort. Das was das Objekt dann machen soll ist einfach, dass es zb den Text des Senders links anzeigt mitsamt Datum Uhrzeit Profilbild und Nachricht anzeigt, dasselbe auf der rechten Seite, nur eben für den Text, den der Empfänger geschrieben hat.

Wo könnte ich da denn ansetzen? Wie kann ich das Verhalten eines Objektes so ändern bzw. die Anzeige eines Objektes so oder so ähnlcih gestalten?
Ich weiß, dass ich das dann von der jeweiligen Klasse ableiten muss, aber wie genau funktioniert das dann letztendlich, wie kann ich die Zeichnugn des Objektes ändern usw?

Viele Grüße
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: MLEartiges Objekt für Chats

Beitragvon Tom » Fr, 22. Apr 2016 13:00

Mach doch mal eine Zeichnung davon, wie das aussehen soll. Oder einen Screenshot von einem ähnlichen Control, das Du irgendwo gesehen hast.

Man kann vieles machen, zum Beispiel auch ein simples Textstatic so aufbohren, dass es dazu in der Lage wäre, aber mit großem Aufwand. Die WebUI der 2.0 hat möglicherweise die nötigen Kapazitäten. Oder man nimmt eine vorhandene Komponente aus irgendeiner 3rd-Party-Bibliothek und verwendet einfach diese.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6692
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

Re: MLEartiges Objekt für Chats

Beitragvon brandelh » Fr, 22. Apr 2016 13:01

Abgeleitete Klassen für SLE etc. hab ich in der Wissensbasis hinterlegt

:arrow: viewtopic.php?f=16&t=499

Beim Chat wird normal eine Kombination aus SLE und MLE verwendet, im SLE wird eingegeben, dieser Text landet dann im MLE am ende oder Anfang, Rest wird verschoben.
Wenn man Farbe oder unterschiedliche Ausrichtungen will, muss man wohl selbst ein Statik bauen und mit GraStringAt() malen.

Ich meine Xbase++ hätte in der ASINET ein einfaches Beispiel mit Fokus auf Textnachrichtenübermittlung.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: MLEartiges Objekt für Chats

Beitragvon Benz » Fr, 22. Apr 2016 13:31

Im Prinzip würde das so oder so ähnlich aussehen wie in ICQ (s. Bild im Anhang). Nur dass Smilies nicht unbedingt sein müssen und ich würde gerne, anders als auf dem Bild, die Texte die "Tester" schreibt rechtsbündig anzeigen, das von dem Benutzer mit den kyrillischen Schriftzeichen auf dem Bild wäre dann auf der linken Seite (oder andersherum, ist ja egal) und ich würde zusätzlich gerne das Profilbild des Users anzeigen lassen pro Texteintrag (facebook macht das ähnlich in seinem Chat).
Und ja, ich würde das gerne auch so ähnlich machen, dass unten eben das SLE steht oder auch ein MLE sowie ein Sendenbutton. Sobald dieser gedrückt wurde soll der Text in das obere MLE Oder was auch immer eingetragen werden, dass man eben den Chatverlauf aktualisiert.
Dateianhänge
ICQ_1.png
ICQ_1.png (112.96 KiB) 3245-mal betrachtet
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: MLEartiges Objekt für Chats

Beitragvon brandelh » Fr, 22. Apr 2016 13:57

das in der Mitte ist eine Listbox, die kümmert sich dann auch ums rollen
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13323
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: MLEartiges Objekt für Chats

Beitragvon Tom » Fr, 22. Apr 2016 14:07

Ja, Listbox. Mit Ownerdrawing (darin kann man dann auch über :MeasureItem variable Zeilenhöhen implementieren) oder über die WebUI, dann wäre es sehr wenig Code. Falls die das schon kann. Kann sie? :wink:
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6692
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

Re: MLEartiges Objekt für Chats

Beitragvon Jan » Fr, 22. Apr 2016 14:21

In den Konferenzunterlagen von Alaska gibt es ein paar Samples für Listboxen mit WebUI. Da geht schon eine ganze Menge. Ob sowas auch müßte man einfach mal testen. Ohne HTML- und CSS-Kenntnisse wird das aber nicht abgehen.

Alaska hat ja auch gerade erst angekündigt, das in unbestimmter Zeit mit einer unbestimmten Anzahl von Updates mehr als 20 XbpParts auf Basis der WebUI erscheinen werden. Da müsste man dann mal schauen, was die da alles anbieten. Und ob der Code dazu mitgegeben wird - logisch wäre das, wurde ja auch früher schon mit XbParts auf Basis von Xbase++-Code gemacht. Und XbParts der WebUI sind grundsätzlich immer in Xbase++-Code geschrieben, setze ich voraus.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11619
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: MLEartiges Objekt für Chats

Beitragvon Benz » Fr, 22. Apr 2016 14:26

Verstehe ich das richtig, dass die WebUI im Prinzip ein Xbasepart für ganz normale GUI Programme ist, die aber in sich durch HTML und CSS aufgebaut wird? (ich bin bei v1.9 aber das wäre ja super).
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: MLEartiges Objekt für Chats

Beitragvon Benz » Fr, 22. Apr 2016 14:34

UNd wenn ich da ne Listbox verwende, kann ich dann auch neben Text in der einen Zeile ein Bild einfügen? Und kann ich auch innerhalb von einer Zeile in der Listbox mehrere verschieden formatierte Texte haben? also zb den Namen des Benutzers fett und die Nachricht normal formatiert. Geht auch die Rechtsbündigkeit in Listboxen? Oder hätte jemand eine Idee wie man das realisieren könnte?
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: MLEartiges Objekt für Chats

Beitragvon Tom » Fr, 22. Apr 2016 14:48

Du kannst in der Listbox machen, was Du willst, wenn Du mit Ownerdrawing arbeitest. Du musst es dann aber auch alles selbst tun. Also Texte formatieren, platzieren, Farben extrahieren, Bilder hinzufügen (Smileys dürften ein großer Spaß werden), benötigten Platz ermitteln, weiß der Geier was. Das jeweilige Element (der MicroPS) ist ein leeres Blatt, auf dem Du malst, in der Zeichnen-Methode. Die beiden Hautprobleme bestehen darin, a) die Daten so zu reichen, dass die Methode alles weiß, was sie wissen muss und b) mit GRA-Funktionen und ähnlichem dann eben zu zeichnen.

Dafür muss man "nur" der Listbox das Ownerdrawing-Merkmal verpassen und eben eine Draw-Methode schreiben.

Einfacher ginge das tatsächlich mit der WebUI. Da formatiert man - auf Datenebene - letztlich nur HTML und überlässt den Rest dem Objekt bzw. der Klasse. Mit HTLM/CSS kannst Du formatieren, Elemente mischen, Farben beliebig verwenden und vieles mehr. Programmiert werden muss dann nur noch die Zusammenstellung des HTML-Fragments.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6692
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

Re: MLEartiges Objekt für Chats

Beitragvon AUGE_OHR » Fr, 22. Apr 2016 16:42

Benz hat geschrieben:Verstehe ich das richtig, dass die WebUI im Prinzip ein Xbasepart für ganz normale GUI Programme ist, die aber in sich durch HTML und CSS aufgebaut wird? (ich bin bei v1.9 aber das wäre ja super).
jedes Control muss "gemalt" (render) werden.
beim WebUI Interface verwendet Alaska HTML-Layout zu rendern ... thats all.
http://www.terrainformatica.com/htmlayout/

die CLASS XbpColorListbox findest du im Ownerdraw Beispiel c:\ALASKA\XPPW32\SOURCE\samples\basics\OWNERDRW\
statt einer GRAbox() würde man ein Bitmap setzten.

Frage : was hat die Listbox mit den MLE zu tun bzw. wo ist da dein Problem ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10205
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: MLEartiges Objekt für Chats

Beitragvon Jan » Fr, 22. Apr 2016 18:11

Das hier ist aus einem der Alaska-Samples in Frankfurt vergangenes Jahr:
Slidinglist.jpg
Slidinglist.jpg (75.88 KiB) 3205-mal betrachtet

Also verschiedene Schriften, Farben, Bilder, alles dabei.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11619
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: MLEartiges Objekt für Chats

Beitragvon Benz » Mi, 27. Apr 2016 7:40

AUGE_OHR hat geschrieben:Frage : was hat die Listbox mit den MLE zu tun bzw. wo ist da dein Problem ?
Es ging lediglich darum ein Objekt zu finden, das recht gut dafür passt einen Chatverlauf anzuzeigen, ob das jetzt ein MLE oder eine Listbox ist, macht für mich keinen Unterschied. :)

Jan hat geschrieben:Das hier ist aus einem der Alaska-Samples in Frankfurt vergangenes Jahr:

Das sieht ja echt nicht schlecht aus, ich denke dann werde ich meinem Chef empfehlen so langsam aber sicher eine neue Compilerversion zu kaufen.

Recht herzlichen Dank euch allen! Ich denke mit OwnerDraw muss ich mich wohl auch noch etwas auseinandersetzen und dann mit der WebUI, dank den regen Beiträgen habe ich da jetzt richtig Lust darauf bekommen! :D
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: MLEartiges Objekt für Chats

Beitragvon Benz » Mo, 20. Jun 2016 9:59

Jan hat geschrieben:Das hier ist aus einem der Alaska-Samples in Frankfurt vergangenes Jahr:
Slidinglist.jpg

Also verschiedene Schriften, Farben, Bilder, alles dabei.

Jan


Hast du zufällig den Code für das Beispiel, das wäre genau das richtige! :)

AUGE_OHR hat geschrieben:die CLASS XbpColorListbox findest du im Ownerdraw Beispiel c:\ALASKA\XPPW32\SOURCE\samples\basics\OWNERDRW\


Ich versteh das Beispiel nicht so ganz, mein Hauptproblem ist:

- wo werden die in colorbox.prg overloaded Methoden XbpColorListbox:MeasureItem und XbpColorListbox:DrawItem( mp1, mp2 ) aufgerufen? Ich sehe den Aufruf zumindest in diesem Programmcode nicht der im Beispiel mitgeliefert wurde.
- kann ich irgendwie die von Xbase++ gegebenen MEthoden zb der Klasse XbpListbox einsehen?
- Woher weiß ich denn welche Methoden ich überschreiben muss?

Viele Grüße
Benz
Rekursionen-Architekt
Rekursionen-Architekt
 
Beiträge: 413
Registriert: Mo, 30. Mai 2011 14:06

Re: MLEartiges Objekt für Chats

Beitragvon Jan » Mo, 20. Jun 2016 10:31

Moin,

bei der aktuellen 2.0 ist das jetzt als Beispiel mit dabei unter [benutzer]\Documents\Xbase++\source\samples\webui\xbphtmlwindow

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11619
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: MLEartiges Objekt für Chats

Beitragvon AUGE_OHR » Mo, 20. Jun 2016 16:53

Benz hat geschrieben:
AUGE_OHR hat geschrieben:die CLASS XbpColorListbox findest du im Ownerdraw Beispiel c:\ALASKA\XPPW32\SOURCE\samples\basics\OWNERDRW\
Ich versteh das Beispiel nicht so ganz, mein Hauptproblem ist:

- wo werden die in colorbox.prg overloaded Methoden XbpColorListbox:MeasureItem und XbpColorListbox:DrawItem( mp1, mp2 ) aufgerufen? Ich sehe den Aufruf zumindest in diesem Programmcode nicht der im Beispiel mitgeliefert wurde.
die beiden Methoden sind "in" der Class enthalten und überschreiben die Windows Methoden
Benz hat geschrieben:- kann ich irgendwie die von Xbase++ gegebenen MEthoden zb der Klasse XbpListbox einsehen?
wie schon gesagt sind die Methoden "in" der Class XbpColorListbox

! Note : oMbar:measureItem / oMbar:drawItem beziehen sich auf Ownerdraw Menu "only" !

Benz hat geschrieben:- Woher weiß ich denn welche Methoden ich überschreiben muss?
für Ownerdraw gibt es nur die beiden Methoden / Structuren.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10205
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: ramses und 1 Gast