You're not registered yet. Click here to register. Credits 
You can register here for free.
This topic has 28 replies
and has been read 820 times
 Segnalazioni di bug e suggerimenti
pages 1 | 2
Bussinchen Online




Posts: 17

Mon Jun 14, 2010 12:22 am
Programmazione Thread closed

In questo filo possiamo discutere diversi aspetti della programmazione (--> codice sorgente).

In diesem Thread können wir verschiedene programmiertechnische Aspekte diskutieren (--> Quellcode).


Bussinchen Online




Posts: 17

Mon Jun 14, 2010 1:14 am
#2 PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Nel programma c'è un problema con la piccola MsgBox (casella di dialogo) in cui il testo string è troppo lungo per la dimensione ristretta delle casella. Un'alternativa sarebbe inserire una funzione "autodimensionamento", un'altra sarebbe però la funzione PathEllipsis che renderebbe l'aspetto della (piccola) casella più elegante e professionale.

GioRock mi ha scritto in una email (citazione):
Per ovviare al problema della lunghezza delle frasi nelle label, bisognerebbe usare una funzione denominata PathEllipsis che supplisce allo sbordamento delle parole dallo spazio predefinito...

Esempio

Spazio predefinito per la label:

|..........................|

Frase completa:

| Il giocatore dovrebbe selezionare almeno una opzione|

PathEllipsis:

| Il giocatore dovrebbe ...|

Ecco così rispettato lo spazio consentito senza sporcare la visualizzazione delle scritte...

Di sicuro vi sarete accorti usando svariati programmi che alcuni implementano già questa funzione...



Im Programm gibt es das Problem mit der MsgBox (dem Dialogfenster), in dem der string-Test für die geringe Größe des Fensters eigentlich zu lang ist. Eine Alternative wäre, eine Funktion zur automatischen Einstellung der Fenstergröße zu implementieren, eine andere wäre, die Funktion PathEllipsis zu verwenden, die dem (kleinen) Fenster ein eleganteres und professionelleres Aussehen verleihen würde.

GioRock schrieb mir in einer Email (Zitat):
Um das Problem der zu langen Sätze in den Labels zu vermeiden, könnte man eine Funktion namens PathEllipsis einbauen, die verhindert, dass Wörter über den Rand des vorgegebenen Platzes hinausgehen...

Beispiel:

Vorgegebener Platz für das Label:

|....................|

Kompletter Satz:

| Non visualizzare le finestre contestuali per le informazioni|

PathEllipsis:

| Non visualizzare...|

Auf diese Weise würde der vorgegebene Platz eingehalten, ohne dass die Anzeige des Satzes verhunzt würde...

Sicher habt ihr beim Benutzen verschiedener Programme schon gemerkt, dass manche diese Funktion bereits implementieren...

Attached pictures:
MsgBox troppo piccola.JPG   Ellipsis.PNG  
Show as slideshow

Bussinchen Online




Posts: 17

Mon Jun 14, 2010 1:58 am
#3 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

GioRock dice:

PathEllipsis si trova in funzione API (APPLICATION PROGRAM INTERFACE) di programmazione chiamata DrawText come alternativa al disegno di un testo nel suo contesto HDC (HANDLE DEVICE CONTEXT), cosa che tu, Scotty, probabilmente conosci bene, e che serve appunto a ridurre solo in visualizzazione il contenuto, senza alterare la stringa originale che verra visualizzata correttamente dopo che la finestra o l'oggetto saranno ridimensionati...

Il problema potrebbe essere che ci saranno dei problemi di compatibilità nella programmazione multipiattaforma, e perciò bisogna affidarci alle mani esperte del nostro EROE (non ho altre faccine) per verificarne la fattibilità...

In breve la funzione lavora così: prendo una stringa di testo che voglio visualizzare nel contesto prescelto e provo a disegnarla nello spazio predefinito, aggiungendo delle costanti apposite mi ritorna il testo modificato con i tre puntini finali che indicano il continuo della frase che è occultato momentaneamente per mancanza di spazio, cosa più professionale che vedere un testo che finisce sotto un bottone come nel nostro caso...

Ad ogni modo sono funzioni implementabili anche autonomamente scrivendo una apposita routine personalizzata es.:

stringa = "Ciao Bussinchen, come stai???"

length = 50px (la lunghezza misurata in pixel non il numero dei caratteri)

label width = 40px (dimensione iniziale della label)

calling function AccorciaIlTestoSeNecessario(stringa, spazio)

result = "Ciao Bussinchen, come ..."

Facendo così anche in caso di uno scorretto ridimensionamento la stringa non uscirà mai dallo spazio consentito.



GioRock sagt:

PathEllipsis ist als Alternative für die Ausgabe eines Textes in seinem Kontext HDC (HANDLE DEVICE CONTEXT)in der Programmierfunktion API (APPLICATION PROGRAM INTERFACE) genannt DrawText enthalten, und das ist etwas, was du, Scotty, wahrscheinlich gut kennst. Dies dient dazu, den Inhalt nur in der Anzeige zu reduzieren, ohne den ursprünglichen String zu verändern, der dann, wenn das Fenster oder das Objekt vergrößert wird, korrekt und in voller Länge angezeigt wird.

Hierbei könnte es ein Kompatibilitätsproblem beim Programmieren in einer Multiplattform geben, und aus diesem Grund müssen wir es natürlich ganz unserem Experten und HELDEN (ich habe keinen anderen Smiley) überlassen, die Durchführbarkeit zu überprüfen...

Knapp umrissen arbeitet diese Funktion folgendermaßen: Ich nehme einen String-Text, den ich im vorgegebenen Kontext anzeigen lassen will und versuche, ihn in den definierten Platz einzufügen. Ich gebe die entsprechenden Konstanten an, woraufhin der Text in modifizierter Form mit den drei Pünktchen am Ende ausgegeben wird. Die Pünktchen zeigen an, dass der Satz, der momentan aufgrund des Platzmangels verborgen ist, eigentlich noch weitergeht. Diese Lösung sähe professioneller aus als die derzeitige, wo man einen Text sieht, der unter einem Button verschwindet...

Jedenfalls handelt es sich hierbei um Funktionen, die auch eigenständig implementiert werden können, indem man eine entsprechende persönlich gestaltete Routine schreibt, z.B.:

string = "Ciao Bussinchen, wie geht's???"

length = 50px (die Länge gemessen in Pixeln, nicht die Anzahl der Schriftzeichen)

label width = 40px (ursprüngliche Größe des Labels)

calling function VerkürzeDenTextWennNötig(String, Platz)

result = "Ciao Bussinchen, wie..."

Wenn man so verfährt, dann wird der String nie über den vorgegebenen Platz hinausragen, und zwar auch dann nicht, wenn die Größe falsch angegeben wurde.


Bussinchen Online




Posts: 17

Mon Jun 14, 2010 2:39 am
#4 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Ecco un mio piccolo commento riguardo a PathEllipsis:

@GioRock:
Sono assolutamente d'accordo con te. Capisco adesso come funziona. Appunto: Sarebbe più professionale avere la visualizazzione del testo string come lo descrivi (a patto che non venga implementata una funzione "autodimensionamento" della MsgBox)!

Ho letto su http://www.vbarchiv.net/forum/read.php?i...024&i=69024&v=f (in tedesco, tuttavia non per FreePascal; ma nella nostra discussione comunque non si tratta di qualsiasi linguaggio di programmazione in particolare, bensì del principio come tale) che si può anzi implementare un tooltip in cui viene visualizzata la stringa completa quando la stringa è accorciata nella visualizazzione della MsgBox. Molto bello anche questo, Scotty e GioRock! ;-)



Zum Thema PathEllipsis ein kleiner Kommentar von mir:

@GioRock:
Ich bin ganz deiner Meinung. Ich verstehe jetzt auch, wie das funktioniert. Genau: Es säher schon professioneller aus, wenn der Stringtext so angezeigt würde, wie du beschreibst (vorausgesetzt, es wird keine Funktion "Autosize" für die MsgBox implementiert)!

Auf http://www.vbarchiv.net/forum/read.php?i...024&i=69024&v=f (auf Deutsch, allerdings nicht für FreePascal; aber es geht hier in unserer Diskussion ja nicht speziell um irgendeine Programmiersprache, sondern vielmehr ums Prinzip) habe ich gelesen, dass man sogar einen Tooltip einbauen kann, in dem der komplette String angezeigt wird, wenn der String in der MsgBox verkürzt angezeigt wird. Auch das wäre etwas sehr Schönes, Scotty und GioRock! ;-)


MsgBox = Message box = Dialogfenster = casella di dialogo

Notificazione della traduttrice:
Sbagliato:
MsgBox = Message box non è la stessa cosa che "casella di dialogo".
Scusate!


Bussinchen Online




Posts: 17

Mon Jun 14, 2010 10:06 am
#5 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

@GioRock:
PathEllipsis tiene conto delle parole e degli spazi tra le parole (limiti tra le parole) o no?
Voglio dire: Con PathEllipsis non potrebbe avvenire che la frase accorciata venga visualizzata così:
| Ciao Bussinc... | ???
È certo che questo tipo di visualizzazione, dove la stringa viene tagliata all'interno di una parola, non mi piacerebbe affatto.



@GioRock:
Nimmt PathEllipsis Rücksicht auf Wörter und die Zwischenräume zwischen den Wörtern (Wortgrenzen) oder nicht?
Ich meine damit: Könnte es mit PathEllipsis nicht pasieren, dass der verkürzte Satz so angezeigt wird:
| Ciao Bussinc... | ???
Diese Art der Anzeige, wo der String mitten in einem Wort abgeschnitten würde, gefiele mir nämlich überhaupt nicht.


Scotty Offline

Administrator


Posts: 3.612

Mon Jun 14, 2010 10:12 am
#6 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Dass man das per DrawText() angeben kann, ist ja eine schöne Sache! Allerdings benutze ich diese API-Funktion nur an wenigen Stellen. Die spezielle Messagebox hier ist selbstgemacht und hat ein Label mit der Eigenschaft wordwrap innerhalb einer Scrollbox. Dadurch wird ein langer Text umgebrochen, komplett angezeigt und zur Not bzw. bei mehreren Nachrichten auch scrollbar gemacht. Das Fenster selbst ist größenveränderlich.
Prinzipiell hat man mit eigenen Fenstern immer die Schwierigkeit, dass sich alles sauber ins Widgetset einpasst. Zu bedenken ist auch der Programmablauf, insbesondere wenn im Netzwerkbetrieb eine asynchrone Verarbeitung erfolgt.

PS: Jetzt sehe ich gerade, dass ihr den Text der Checkbox meint. Da bekomme ich natürlich weder Umbruch noch Abschneiden geschenkt. An solchen Stellen bin ich der Meinung, dass die Übersetzer kreativ sein sollten.



Eh sì, il fatto che questo si può disegnare tramite DrawText() è una bella cosa! Io tuttavia utilizzo questa funzione API solo in pochi luoghi. La Messagebox di cui parliamo, l'ho creata io stesso ed essa ha un label con la caratteristica wordwrap dentro di una scrollbox. Ciò permette che vengano realizzati i ritorni a capo automatici nei testi lunghi, i testi vengono visualizzati completamente e così i testi sono anche scrollabili semmai è necessario oppure quando le informazioni sono numerosi. E la casella stessa può essere ridimensionata.
Per principio si può dire che le caselle create dal programmatore stesso causano sempre la difficoltà di inserire tutto in modo accurato nel set dei widgets. Intanto si deve anche tener conto dello svolgimento del programma, inanzitutto quando avviene un trattamento asincrono in rete.
PS: Solo adesso vedo che stiate parlando del testo nella checkbox. Allora lì ovviamente non ho gratis né i ritorni a capo automatici né il tagliamento. In tali luoghi penso che i traduttori dovrebbero essere creativi.


Download: Sourceforge.net | Help: Scrabble3D Wiki | Discussion: Forum | News: Twitter


Gero Offline




Posts: 2.675

Mon Jun 14, 2010 10:25 am
#7 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Bussinchen/GioRock:

Una domanda: Perche GioRock non pubblicara sua idea qui? Preferisco una conversazione diretta ...

Eine Frage: Warum postet hier GioRock seine Idee nicht selbst? Ich würde einen direkten Dialog vorziehen...


Download: Geros Superdic, was sonst! | Discussion: Forum | News: Twitter | ... und im übrigen bin ich der Meinung, dass Wordfinder beim online-Spiel pfui sind!


Bussinchen Online




Posts: 17

Mon Jun 14, 2010 11:05 am
#8 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

@Gero:
GioRock lo aspettiamo qui nel forum. Anch'io spero che adesso si decida di postare i suoi suggerimenti sul forum!
È proprio la ragione per la quale ho creato questo filo. GioRock ha ancora parecchie altre idee, ma non le posterò più per lui.
Wir warten darauf, dass GioRock hier im Forum erscheint. Auch ich hoffe, dass er sich jetzt dazu aufraffen kann, seine Vorschläge im Forum zu posten! Genau aus diesem Grund habe ich auch diesen Thread hier eröffnet. GioRock hat noch eine Reihe andere Ideen, aber die werde ich nicht mehr für ihn posten.


Bussinchen Online




Posts: 17

Mon Jun 14, 2010 11:57 am
#9 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Zitat von Scotty
PS: Jetzt sehe ich gerade, dass ihr den Text der Checkbox meint. Da bekomme ich natürlich weder Umbruch noch Abschneiden geschenkt.
PS: Solo adesso vedo che stiate parlando del testo nella checkbox. Allora lì ovviamente non ho gratis né i ritorni a capo automatici né il tagliamento.


Eh Scotty, stiamo parlando della casella che vedi qui sotto nel mio posting di oggi, alle ore 01:14 (vedi la foto a sinistra).
In questa casella effectivamente ci sono dei ritorni a capo automatici e lo scrollo (se necessario) come hai detto.
Ma i ritorni a capo automatici e lo scrollo riguardano solo il testo o i testi di sopra nella stessa casella, invece non riguardano quella stringa all'ingiù vicino al bottone "OK".

Ach Scotty, wir reden hier von dem Fenster, das du ganz unten in meinem Posting von heute, 01:14 Uhr siehst (siehe das linke Foto). In diesem Fenster sind doch tatsächlich Zeilenumbrüche und Scrollfunktion (falls nötig), wie du gesagt hast. Allerdings betreffen die Zeilenumbrüche und die Scrollfunktion nur den Text oder die Texte oben in ebendiesem Fenster, nicht jedoch den String ganz unten neben dem OK-Button.


Vektor Offline



Posts: 1.030

Mon Jun 14, 2010 12:19 pm
#10 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

... und das ist ja, wie Scotty gesagt hat, der Text, der zur Checkbox gehört.

...ed è proprio quel testo che fa parte della checkbox, come ha detto Scotty.


Bussinchen Online




Posts: 17

Mon Jun 14, 2010 12:20 pm
#11 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

È solo adesso che capisco che ciò che chiamate Messagebox e Checkbox non sono due box (box nel senso di casella) diversi, ma che si tratta elementi diversi dentro la stessa casella/finestra. OK, ho capito. Eh, per me non è (ancora!) così facile da capire il linguaggio dei programmatori...

Erst jetzt verstehe ich, dass das, was ihr Messagebox und Checkbox nennt, nicht zwei verschiedene Boxen (Box im Sinne von Fenster) sind, sondern dass es sich hierbei um verschiedene Elemente innerhalb ein und desselben Fensters handelt. OK, ich hab's verstanden. Für mich ist die Sprache der Programmierer halt (noch!) nicht so leicht zu verstehen...


GioRock Offline




Posts: 555

Mon Jun 14, 2010 4:07 pm
#12 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Ok Scotty, nessuno ha fatto riferimento alla label con lo scroll che non risulta illegibile, ma parlavamo delle label e dei checkbox che potrebbero essere migliorati contenendo il testo correttamente...
Nonostante tutti i nostri sforzi, io e la Bussinchen non siamo riusciti a fare di più nell'accorciare le traduzioni in lingua italiana anzi, in certe situazioni le frasi si sono allungate poiché risultavano poco comprensibili...
Ad ogni modo, sono consapevole che ci sono problematiche più urgenti che queste, la mia era solo un'altra idea per migliorare l'interfaccia del programma...



Ok Scotty, keiner hat sich hier auf das Label mit der Scrollfunktion bezogen, das keineswegs unleserlich ist; wir haben vielmehr von den Labels und den Checkboxen gesprochen, die dahingehend verbessert werden könnten, dass der Text korrekt darin Platz hat...
Trotz all unserer Bemühungen ist es mir und dem Bussinchen nicht gelungen, die italienische Übersetzung kürzer zu formulieren, im Gegenteil, bisweilen wurden die Sätze sogar noch länger, weil sie sonst nicht recht verständlich gewesen wären...
Ich bin mir auf jeden Fall dessen bewusst, dass es dringendere Probleme zu lösen gibt als diese hier, mein Beitrag war halt nur eine weitere Idee, wie man den Grenzschnitt des Programms verbessern könnte...


GioRock Offline




Posts: 555

Mon Jun 14, 2010 4:11 pm
#13 RE: PathEllipsis per ovviare al problema della lunghezza delle frasi nelle label Thread closed

Certo, si otterrà questo tipo di testo fino a chè non si ridimensiona la finestra ottenendo la corretta visualizzazione...
Sarebbe anche necessario salvare le dimensioni delle varie finestre una volta che sono state modificate nel file ini...


Sicher, der Text wird nur so lange auf diese unschöne Art und Weise angezeigt, bis das Fenster so groß gezogen wird, dass [der Text Platz hat und] die Anzeige korrekt erfolgt...
Ich finde auch, dass die Größen der verschiedenen Fenster, wenn diese modifiziert wurden, mit in der ini abgespeichert werden sollten...


GioRock Offline




Posts: 555

Mon Jun 14, 2010 4:19 pm
#14 RE: Programmazione Thread closed

Grazie Bussinchen per il supporto che ci dai con le tue continue e fantastiche traduzioni...

Danke Bussinchen für die Unterstützung, die du uns mit deinen ständigen phantastischen Übersetzungen gibst...


GioRock Offline




Posts: 555

Mon Jun 14, 2010 4:41 pm
#15 IDEA!!! Thread closed

Mentre stavo implementando uno piccolo Script per generare degli anagrammi, mi è venuta un'idea per aumentarne le prestazioni anche in termini di velocità, e mi sono chiesto se questa trovata poteva essere utile al miglioramento dello Scrabble3D durante la generazione delle lettere piazzabili...

Allora, il concetto è semplice ma abbastanza efficace:

creare una lista dinamica di sillabe non valide estrapolandole direttamente dal dizionario in maniera da scartare direttamente la parola anagrammata durante la sua generazione riducendo l'utilizzo di risorse del PC...

Per essere più chiari, nel dizionario italiano per il gioco, non compaiono mai parole contenenti BG, DX, HG, JW, QD come le ripetizioni di tre lettere uguali tipo AAA ecc. quindi perchè tenerle in memoria o peggio ancora usarle nelle comparazioni di validità???

Naturalmente ogni lingua ha il suo alfabeto e bisognerà tenerne conto, anche se il mio prototipo usando lettere dalla A alla Z impiega meno di 2s. in un file di oltre 7MB per capire se ci sono corrispondenze al criterio sillabico con un processore da 2.6GHz.



Während ich einen kleinen Script implementierte, um Anagramme zu generieren, ist mir eine Idee gekommen, wie man die Leistung auch in puncto Schnelligkeit erhöhen könnte. Ich habe mich gefragt, ob meine Idee nicht auch dazu beitragen könnte, Scrabble3D zu verbessern, wenn die legbaren Buchstaben generiert werden...

Also, mein Konzept ist einfach, aber ziemlich effektiv:

Eine dynamische Liste erstellen mit ungültigen Silben, indem man diese direkt aus dem Wörterbuch extrapoliert (herausfiltert), um dadurch das Anagramm (Wort mit den entsprechenden Buchstaben) schon gleich zu eliminieren, während es noch generiert wird - dadurch würden auch die Ressourcen des Computers geschont...

Zur Verdeutlichung: Im italienischen Scrabble-Wörterbuch gibt es keine Wörter, die die Buchstabenkombinationen BG, DX, HG, JW, QD enthalten; dasselbe gilt für drei gleiche Buchstaben hintereinander, wie z.B. AAA usw. Warum sollte man diese dann im Speicher behalten oder, noch schlimmer, beim Abgleichen auf die Gültigkeit hin überhaupt mit einbeziehen???

Natürlich hat jede Sprache ihr eigenes Alphabet und das muss man berücksichtigen - auch wenn mein Prototyp, der die Buchstaben A bis Z verwendet, bei einer Datei von über 7MB mit einem 2,6GHz-Prozessor weniger als 2s. braucht, um herauszufinden, ob es Übereinstimmungen mit dem Silbenkriterium gibt.





Notificazione della traduttrice:
Per me la frase "... per capire se ci sono corrispondenze al criterio sillabico con un processore da 2.6GHz" non è chiara...




Vuol dire che il tempo per calcolare questo criterio è irrisorio per uno script, figuriamoci per un codice nativo... Ok, grazie.


pages 1 | 2
 Jump  
disconnected Scrabble3D Chat Members online 1
Xobor Einfach ein eigenes Forum erstellen