Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Z=TEXT_WIDTH (A1$,1) | |
| | Auteur | Message |
---|
Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Z=TEXT_WIDTH (A1$,1) Ven 4 Nov 2011 - 23:23 | |
| Hallo Klaus, hallo Panoramic's erstmal Klaus, weiter guten Genesunungsverlauf und übernimm dich nicht. Wie ich sehe bist schon wieder sehr aktiv. Ich benutze mal deine WEB-Seite. 1. Ich schreibe einfache Sätze wegen der Übersetzung. Nicht wundern. Ich habe ein Problem mit einem Rahmen auf der Form. Durch die neuen Befehle danke Jack. ZB2% = TEXT_WIDTH(ZA2$,9001) dachte ich es ist einfach einen horizontalen Rahmen zuerstellen. Aber, links und rechts ist der Formrahmen. Anzahl Pixel ? Dann hat jedes Zeichen 1 Pixel leer. Bleibt eine Restbreite. Diese kann dann x Zeichen aufnehmen. Jedoch reicht diese Breite nicht für alle Zeichen. Je nach Bildschirmgrösse unterschiedlich. Ich habe hier 3 verschiedene Monitore. Ich will din Rahmen mit "Terminal 8" erstellen. Ich möchte eins SUB wie für meine Scrtiftarten erstellen. Ich stelle mein Testprogramm hier ein. 1. J'écris de simples propositions à cause de la traduction. N'étonnent pas. J'ai un problème avec un cadre sur la forme. Par les nouveaux ordres(commandes) Merci Jack. Les % ZB2 = TEXT_WIDTH (ZA2 $, 9001) Si je pensais est simplement un cadre horizontal zuerstellen. Mais si, à gauche et à droite est le cadre de forme. Quantité de pixel ? Alors, chaque signe(caractère) a vide 1 pixel. Si une largeur résiduelle reste. Alors, celui-ci peut prendre(ajouter) x le signe(caractère). Mais cette largeur ne suffit pas pour tous les signes(caractères). Selon la grandeur d'écran diversement. J'ai ici 3 Monitore différents. Je veux produire din le cadre avec le "terminal 8". Je voudrais produire uns SUB comme pour mon Scrtiftarten. Je règle(engage) ici mon programme de test. 1. I write simple sentences because of the translation. Do not surprise. I have a problem with a frame on the form. By the new orders thanks Jack. % ZB2 = TEXT_WIDTH (ZA2 $, 9001) if I thought is simply a horizontal frame zuerstellen. But if, on the left and on the right is the form frame. Number of pixel? Then every mark has 1 pixel empty. If a rest width remains. Then this can take(accept) x mark. But this width does not reach(does not be enough) for all marks. According to screen size differently. I have here 3 different Monitore. I want to create(provide) Din. of frame with " terminal 8 ". I would like to create(provide) one SUB like for my fonts. I put my test program here. - Code:
-
' TEXT_HEIGHT (A$ N): gibt die Höhe in Pixel ' TEXT_WIDTH (A$,N), gigt die Breite in Pixel ' Label SCHRIFTARTEN ' alpha 001 alpha 002 alpha 003 alpha 004 alpha 005 ' DIM ZB2% DIM ZZ2% DIM ZZ3% ' Dim Y2 Dim Y3 Dim Y4 ' DIM TEXT2$:TEXT2$="Höhe in Pixel" DIM RAHMENAUFFORMOBEN$ ' Dim Schriftart DIM Schriftgroesse% Dim SCHRIFT_HOEHE% Dim SCHRIFT_BREIT% DIm A1$:A1$=CHR$(186) DIm A2$ DIm A3$ ' ' ****************************************************************************** Schriftgroesse% = 8 :' <==== Hier Schriftgröße einstellen ' ****************************************************************************'* ' ' FORM 000 DEFINIEREN color 000,0,255,0 width 000,INT(SCREEN_X) height 000,INT(SCREEN_Y) ' Print_Locate 40,20:Print "Screen width Pixel" Print_Locate 40,40:Print Screen_X ' *** SCHRIFTZEICHEN *********************************************************** show 001 top 001,001 left 001,001 SCHRIFTART = 001 Gosub Schriftarten ' caption 001,A1$ ' ' *** SCHRIFTHÖHE IN PIXEL ***************************************************** show 002 top 002,080 left 002,040 SCHRIFTART = 002 Gosub Schriftarten Print_Locate 40,60:Print "TEXT HEIGHT" caption 002,TEXT_HEIGHT (A1$,1) ' ' *** SCHRIFTBREITE IN PIXEL *************************************************** show 003 top 003,120 left 003,040 SCHRIFTART = 003 Gosub Schriftarten Print_Locate 40,100:Print "TEXT WIDTH" caption 003,TEXT_WIDTH (A1$,1) ' ZB2% = TEXT_WIDTH (A1$,1) :' Zeichenbreite ermitteln ' Print_Locate 40,140:Print ZB2% ' ZZ2% = Screen_x/ZB2% :' Anzahl Zeichen auf Bildschirmbreite Print_Locate 40,140:Print "Anzahl Zeichen auf Screen width" Print_Locate 40,160:Print ZZ2% ' ' ' ****************************************************************************** ' ZZ2% = ZZ2% -2 :' - 2 Zeichen für CHR$(201)-CHR$(187) ' ZZ3% = ZZ2% -1 :' - 1 Zeichen für Rahmen links und rechts ' RAHMENAUFFORMOBEN$ = CHR$(201) + STRING$(ZZ3%,CHR$(205)) + CHR$(187) ' show 004 top 004,400 left 004,0 SCHRIFTART = 004 Gosub Schriftarten caption 004,RAHMENAUFFORMOBEN$ ' ' RAHMENAUFFORMOBEN$ = CHR$(201) + STRING$(ZZ3%,CHR$(205)) + CHR$(187) ' show 005 top 005,440 left 005,-1 SCHRIFTART = 005 Gosub Schriftarten caption 005,RAHMENAUFFORMOBEN$
end ' ' ****************************************************************************** ' *** Schriftart TERMINAL ***************************************************** SCHRIFTARTEN: ' font_name SCHRIFTART,"Terminal" font_size SCHRIFTART,Schriftgroesse% font_bold SCHRIFTART font_underline_off SCHRIFTART ' font_underline SCHRIFTART font_strike_off SCHRIFTART font_italic_off SCHRIFTART font_color SCHRIFTART,0,0,0 ' RETURN | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 0:34 | |
| Die Breite des Rahmens scheint 3 Pixel auszumachen und ist in des Fensterbreite inbegriffen. Ich habe ein kleines Demo-Programm erstellt mit einer Fensterbreite von 300 Pixel. In des Schriftart "Terminal", jedes Zeichen soll 6 pixel breit sein, also sollten 50 Zeichen in eine Zeile passen. Wenn man aber Deinen Rahmen mit 48 horizontalen Zeichen und den beiden Ecken ausdruckt, verschwindet die rechte Ecke. Nun zu einem Fenster von 306 Pixel Breite: da ist das letzte Zeichen voll da, un mit 307 pixel ist sogar der winzige kleine Rand noch zu sehen. Ratschlag: für jeden Rand 3 pixel abziehen, eventuell ein Pixel mehr abziehen. Hier ist das Programm: - Code:
-
dim a$, b$ form 1 : width 1,300 : height 1,300 : top 1,10 : left 1,200 caption 1,"Breite 300 Pixel" font_name 1,"Terminal" form 2 : width 2,307 : height 2,300 : top 2,320 : left 2,200 caption 2,"Breite 307 Pixel" font_name 2,"Terminal" Print Screen_X a$ = chr$(205) print TEXT_WIDTH(a$,1) b$ = string$(48,a$) print TEXT_WIDTH(b$,1) print_target_is 1 print CHR$(201) + STRING$(48,CHR$(205)) + CHR$(187) print_target_is 2 print CHR$(201) + STRING$(48,CHR$(205)) + CHR$(187) end
Français: La largeur du cadre semble correspondre à 3 pixels et est incluse dans la largeur de la fenêtre. J'ai fait un petit programme-démo avec une largeur de 300 pixels. Avec la font "Terminal", chaque caractère doit avoir une largeur de 6 pixels, on devrait donc pouvoir placer 50 caractères. Mais losqu'on imprime ton cadre avec 48 symboles horizontaux et les deux coins, le coin de droite disparaît. Maintenant avec une fenêtre de 306 pixels: le dernier signe apparaît pleinement, et avec 307 pixels, il y a même le petit bord blanc. Conseil: pour chaque bord, déduire 3 pixels, éventuellement un pixel supplémentaire English: The windowborder seems to take 3 pixels and thos pixels are included in the window width. I made a little demo program using a 30 pixel wide window. With the font "Terminal", each character takes 6 pixels, so 50 characters should fit into line. But if I print 48 horizontal signs plus the two corners, the right corner will disappear. Now with a 306 pixel wide window, the right corner is fully visible, and with e 307 pixel window, there is even the tiny white border. Advise: subtract 3 pixels for each border, eventually one additionnal pixel. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 2:15 | |
| Sous Windows 7, le cadre semble faire plus de 3 pixels par défaut... - Code:
-
dim a$ font_name 0,"Terminal" a$=string$(48,chr$(205))+chr$(187) width 0,TEXT_WIDTH(a$,0)+15 print a$
Pour que ca marche, il m'a fallu rajouter 15 pixels... EDIT 05/11/11 - 03:18 : Pour obtenir la taille correcte... - Code:
-
dim border_size: picture 2:full_space 2:border_size=width(0)-width(2):delete 2 dim caption_height% : height 0,0 : caption_height% = height(0) height 0,200
dim i
font_name 0,"Terminal" font_size 0,12
dim text_w:text_w=TEXT_WIDTH(" ",0) dim text_h:text_h=TEXT_HEIGHT(" ",0) ' ------------------------------------------------------------------------------ ' FORM 0 : ' width = 50 characters ' height = 12 characters ' ------------------------------------------------------------------------------ width 0, (text_w * 50) + border_size height 0, (text_h * 12) + caption_height%
DIM a$
' box : a$ = chr$(201)+string$(48,chr$(205))+chr$(187) print_locate 0,0:print a$ for i=1 to 10 print_locate 0, text_h * i print chr$(186) print_locate 49 * text_w , text_h * i print chr$(186) next i a$ = chr$(200)+string$(48,chr$(205))+chr$(188) print_locate 0,11 * text_h:print a$
print_locate 3 * text_w, 2 * text_h print "Terminal size: 12" print_locate 3 * text_w, 3 * text_h print "Breite des Rahmens:"+str$(border_size)
print_locate 3 * text_w, 4 * text_h print "text_w :"+str$(text_w) +" px"
print_locate 3 * text_w, 5 * text_h print "text_h :"+str$(text_h)+" px"
print_locate 3 * text_w, 7 * text_h print " "+chr$(219) + chr$(177)+chr$(219)+chr$(177)+chr$(219)+chr$(177)+chr$(219) print_locate 3 * text_w, 8 * text_h print "char :"+chr$(177) + chr$(205)+chr$(186)+chr$(187)+chr$(188)+chr$(200)+chr$(201) print_locate 3 * text_w, 9 * text_h print " "+chr$(219) + chr$(177)+chr$(219)+chr$(177)+chr$(219)+chr$(177)+chr$(219)
@Severin : Je te remet ici le code du post sur la DLL FORM. C'est une autre façon de faire pour avoir des bordures dans ton formulaire (Dans cet exemple, la DLL n'est pas obligatoire) - Code:
-
' Protection LABEL EndProg ON_CLOSE 0,EndProg ON_ERROR_GOTO EndProg
' Load the DLL : DIM dll_ok : ' Flag : DLL is loading
IF FILE_EXISTS("form.dll")=1 DLL_ON "form.dll" DIM dll_return dll_ok = 1 END_IF
LABEL Redraw : ' Procedure : Refresh the box inside the form LABEL Redraw2 : ' Procedure : Refresh the box inside the form (without DLL)
' --------------------------------------- ' FORM 0 : DEFINITION ' --------------------------------------- CAPTION 0,"FORM 0": WIDTH 0,SCREEN_X/2 ' background PICTURE 01:FULL_SPACE 01 : 2D_TARGET_IS 01 :2D_FILL_COLOR 238,235,217 ' Text ALPHA 03: LEFT 03,20:TOP 03,20
' --------------------------------------- ' FORM 10 : DEFINITION ' --------------------------------------- FORM 10:COMMAND_TARGET_IS 10:CAPTION 10,"FORM 10" TOP 10,TOP(0)+HEIGHT(0)+10 : WIDTH 10,SCREEN_X/2 ON_CLOSE 10,EndProg
' background PICTURE 11:FULL_SPACE 11: 2D_TARGET_IS 11 2D_FILL_COLOR 238,235,217 ' Text ALPHA 13:LEFT 13,20:TOP 13,20
' --------------------------------------- ' REDRAW ' --------------------------------------- DIM border_size : border_size=WIDTH(0)-WIDTH(1) DIM caption_size: caption_size = HEIGHT(00)-HEIGHT(01) DIM Form_H(2), Form_W(2) : ' MEMO : Form dimensions DIM Form_Active : ' Id number of the form active DIM Form_Id : ' index of Form_#( )
IF dll_ok = 1 GOSUB Redraw : ' Redraw Form 10 ' Set FORM 0 active dll_return = DLL_CALL1("SetFormActive",HANDLE(0)) GOSUB Redraw : ' Redraw Form 0 ' Start timer TIMER 200:TIMER_INTERVAL 200,50 ON_TIMER 200,Redraw ELSE TIMER 200:TIMER_INTERVAL 200,50 ON_TIMER 200,Redraw2 END_IF
TIMER_ON 200 END
Redraw: IF OBJECT_EXISTS(200)=1 THEN TIMER_OFF 200 Form_Active = DLL_CALL1("GetFormActive",handle(10))*10 : ' Form_Active = 0 or 10 CAPTION Form_Active+3,"is Active" CAPTION BIN_XOR(Form_Active,10)+3,"is Inactive" : ' BIN_XOR : Change 0 <-> 10 (see documentation)
Form_Id = Form_Active/10 : ' calc index for Form_#( ) --> 0 or 1 ' if dimensions of FORM_Active has changed : IF (Form_W(Form_Id) <> WIDTH(Form_Active)) OR (Form_H(Form_Id) <> HEIGHT(Form_Active)) Form_H(Form_Id) = HEIGHT(Form_Active) : Form_W(Form_Id) = WIDTH(Form_Active) : ' memo 2D_TARGET_IS Form_Active+1 : ' before drawing the box, change the 2D_TARGET... FULL_SPACE Form_Active+1 :2D_CLEAR : COLOR Form_Active+1,228,234,221 : ' clear the picture ' and draw box : 2D_RECTANGLE 10,10,Form_W(Form_Id)-border_size-10,Form_H(Form_Id)-caption_size-10 2D_RECTANGLE 12,12,Form_W(Form_Id)-border_size-12,Form_H(Form_Id)-caption_size-12 END_IF IF OBJECT_EXISTS(200)=1 THEN TIMER_ON 200 RETURN
' without DLL... Redraw2: TIMER_OFF 200 FOR Form_Id = 0 TO 1 Form_Active = Form_Id * 10 IF (Form_W(Form_Id) <> WIDTH(Form_Active)) OR (Form_H(Form_Id) <> HEIGHT(Form_Active)) Form_H(Form_Id) = HEIGHT(Form_Active) : Form_W(Form_Id) = WIDTH(Form_Active) : ' memo 2D_TARGET_IS Form_Active+1 : ' before drawing the box, change the 2D_TARGET... FULL_SPACE Form_Active+1 :2D_CLEAR : COLOR Form_Active+1,228,234,221 : ' clear the picture ' and draw box : 2D_RECTANGLE 10,10,Form_W(Form_Id)-border_size-10,Form_H(Form_Id)-caption_size-10 2D_RECTANGLE 12,12,Form_W(Form_Id)-border_size-12,Form_H(Form_Id)-caption_size-12 END_IF NEXT Form_Id TIMER_ON 200 RETURN
EndProg: IF LEN(TRIM$(error_type$))<>0 MESSAGE error_type$+" Line:"+STR$(error_line) END_IF if dll_ok=1 then DLL_OFF if OBJECT_EXISTS(200)=1 then TIMER_OFF 200 TERMINATE | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 14:39 | |
| J'ai fait la remarque ailleurs que le TEXT_WIDTH renvoyait systématiquement 2 pixels de moins que la réalité, quelle que soit la longueur de la chaîne (1 seul ou plusieurs caractères). | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 15:56 | |
| Hallo JL, ich habe in meinem Testprogramm auch für links -1 Pixel gesetzt. CHR$(201) Damit steht das erste Zeichen direkt am Rahmen. Also müsste ich für rechts auch -1 setzen. CHR$(187) Die Formel ??? Screen_ REST = Screen_X - (Rahmen * 2) - 2 Pixel Screen_REST ist die echte nutzbare Breite ??? Anzahl_Zeichen = Screen_REST / Zeichenbreite Ich bin total durcheinander !!! Ist dann die Position links = 0, Rahmenbreiten + 1 Pixel ??? Severin JL, J'ai mis dans mon programme de test aussi pour à gauche 1 pixel. CHR $ (201) Avec cela le premier signe(caractère) se trouve directement au cadre. Donc je devrais mettre pour à droite aussi-1. CHR $ (187) La formule ? ? ? Screen_ le RESTE = Screen_X - (Encadrent * 2) - 2 pixels Screen_REST est la largeur utilisable véritable ? ? ? Anzahl_Zeichen = Screen_REST / la largeur de signe Je suis total en désordre!!! Est alors la position à gauche = 0, des largeurs de cadre + 1 pixel ? ? ? Hello JL, I have placed in my test program also for-1 pixels on the left. CHR (.201 $ With it the first mark stands directly in the frame. Also I would have to set for on the right also-1. CHR (.187 $ The formula??? Screen_ REST(REMAINDER) = Screen_X - (Frame * 2) - 2 pixels Screen_REST is the real usable width??? Anzahl_Zeichen = Screen_REST / mark width I am total in a mess!!! Is the position on the left = 0, frame-wide + then 1 pixel??? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 16:52 | |
| - Citation :
-
ich habe in meinem Testprogramm auch für links -1 Pixel gesetzt. CHR$(201) Damit steht das erste Zeichen direkt am Rahmen. Also müsste ich für rechts auch -1 setzen. CHR$(187) Die Formel ??? Screen_ REST = Screen_X - (Rahmen * 2) - 2 Pixel Screen_REST ist die echte nutzbare Breite ??? Anzahl_Zeichen = Screen_REST / Zeichenbreite Ich bin total durcheinander !!! confused
Ist dann die Position links = 0, Rahmenbreiten + 1 Pixel ??? Question
die Formel Screen-REST scheint mir korrekt in Anbetracht Deines Abzugs von einem Pixel am linken Rand. Damit wird allerdings die Position links oben durch folgende Koordinaten angegeben: (x_links_oben,y_links_oben) = (Rahmenbreite,Rahmenbreite). Logisch, nicht ? La formule Screen-REST me semble correct,, compte tenu de ton retrait d'un pixel au bord gauche. Par conséquant, la position à gauche en haut est donnée par les coordonnées suivantes: (x_gauche_haut,y_gauche_haut) = (largeur_du_cadre,largeur_du_cadre) Logique, non ? The formula Screen-REST seems correct regarding the omitted pixel on the left border. So, the position of the left upper border is given by the following coordinates: (x_left_upper,y_left_upper) = (border_width,border_width) Logic, isn't it ? | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 17:17 | |
| @JL35: Si je compte bien le nb de pixel: J'obtiens : largeur : 12 px hauteur : 16 px donc TEXT_WIDTH et TEXT_HEIGHT fonctionnent correctement... @Severin : Mes exemples ne sont pas clairs ? (surtout le n°2) | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 17:31 | |
| Danke Klaus,
könntest du mir deine Bildschirmabmessung geben. Dann kann ich nochmal versuchen ein Supprogramm zuschreiben. Dieses dann mit dir testen.
Es soll für alle Bildschirmmodi gültig sein. Ich habe folgende Abmessungen: 1. 1280 x 1024 2. 1680 x 1050 3. 2560 x 1600
Entschuldige bitte das ich dein Forum benutze.
Es soll so einfach werden wie meine Schriftartroutine. Danke im voraus Severin
Ich übersetze trozdem damit die Panoramic's mitlesen können.
Merci Klaus,
Si tu pouvais me donner ton mesurage d'écran. Alors, je peux encore essayer attribuent un Supprogramm. Cela alors avec toi testent.
Cela doit être valable pour tous les modes d'écran. J'ai les mesurages suivants : 1. 1280 x 1024 2. 1680 x 1050 3. 2560 x 1600
Excuse, s'il vous plaît, je ton forum utilise.
Cela doit aussi devenir simple que ma procédure de caractère. Merci d'avance Severin
Je traduis trozdem avec cela le Panoramic's peuvent lire.
Thanks Klaus,
if you could give me your screen dimension. Then I can try again ascribe a Supprogramm. This then with you test.
It should be valid for all screen procedures. I have the following dimensions: 1. 1280 x 1024 2. 1680 x 1050 3. 2560 x 1600
Please excuse I your forum uses.
It should as become simple as my font routine. Thanks in advance Severin
I translate trozdem with it the Panoramic's can read.
| |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 17:45 | |
| Hallo Nardo, Beispiel 2 sieht gut aus. Aber ich möchte den Rahmen auf der Form. Der Rahmen soll sich dynamisch an die Bildschirmauflösung anpassen. Als SUB, damit die SUB sich automatisch anpasst. Severin
Nardo, L'exemple 2 paraît bien. Mais je voudrais le cadre sur la forme. Le cadre doit s'adapter avec dynamisme à la résolution d'écran. Comme SUB pour que le SUB s'adapte automatiquement. Severin
Hello Nardo, Example 2 looks good. But I would like the frame on the form. The frame should dynamically adapt itself to the screen resolution. As a SUB, so that the SUB automatically adapts itself. Severin | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 18:06 | |
| @severin: screen_x = 1280 screen_y = 800
| |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 19:21 | |
| Hallo Klaus, erweiterter Test. bei 1680 x 1050 passt genau bei 1280 x 1024 fehlen 3 Pixel bis zum Rand bei 2560 x 1600 1 Pixel zu lang kannst du mir mitteilen wie dei Ergebnis ist ? Wenn andere panoramic's mit anderen Auflösungen testen und das Ergebniss hier einstellen, würde mich das freuen. Danke für die Zeit dieses zu lesen und zu testen. Severin Klaus, test élargi. A 1680 x 1050 convient exactement A 1280 x 1024 manquent 3 pixels jusqu'au bord A 2560 x 1600 1 pixel trop longtemps Peux m'annoncer tu comme dei le résultat est ? Si autre(différent) panoramic's avec d'autres résolutions testent et règlent(engagent) ici l'Ergebniss, cela me réjouirait. Merci lire cela pour le temps et tester. Severin Hello Klaus, extended test. with 1680 x 1050 fits just(exactly) with 1280 x 3 pixels up to the border lack 1024 with 2560 x 1600 1 pixel too long can you inform me like dei result is? If other panoramic's with other dissolutions test and put the Ergebniss here, this would please me. Thanks to read this for the time and to test. Severin - Code:
-
' TEXT_HEIGHT (A$ N): gibt die Höhe in Pixel ' TEXT_WIDTH (A$,N), gigt die Breite in Pixel ' Label SCHRIFTARTEN ' alpha 001:hide 001 alpha 002:hide 002 alpha 003:hide 003 alpha 004:hide 004 alpha 005:hide 005 ' alpha 020:hide 020 alpha 021:hide 021 alpha 022:hide 022 alpha 023:hide 023 alpha 024:hide 024 ' alpha 030:hide 030 alpha 031:hide 031 alpha 032:hide 032 alpha 033:hide 033 alpha 034:hide 034 ' alpha 055:hide 055 ' DIM ZB2% DIM ZZ2% DIM ZZ3% DIM RB2% ' Dim Y2 Dim Y3 Dim Y4 ' DIM TEXT2$:TEXT2$="Höhe in Pixel" DIM RAHMENAUFFORMOBEN$ DIM RAHMENAUFFORNUNTEN$ DIM RAHMENAUFFORMLINKS$ DIM RAHMENAUFFORMRECHTS$ ' Dim Schriftart DIM Schriftgroesse% Dim SCHRIFT_HOEHE% Dim SCHRIFT_BREIT% DIm A1$:A1$=CHR$(186) DIm A2$ DIm A3$ ' ' ****************************************************************************** Schriftgroesse% = 8 :' <==== Hier Schriftgröße einstellen ' ****************************************************************************'* ' ' FORM 000 DEFINIEREN color 000,0,255,0 width 000,INT(SCREEN_X) height 000,INT(SCREEN_Y) ' Print_Locate 40,520:Print "Screen width Pixel: ",Screen_X ' *** SCHRIFTZEICHEN *********************************************************** show 001 top 001,001 left 001,001 SCHRIFTART = 001 Gosub Schriftarten ' caption 001,A1$ ' ' *** SCHRIFTHÖHE IN PIXEL ***************************************************** show 002 top 002,580 left 002,040 SCHRIFTART = 002 Gosub Schriftarten Print_Locate 40,560:Print "TEXT HEIGHT: ",TEXT_HEIGHT (A1$,1) ' ' *** SCHRIFTBREITE IN PIXEL *************************************************** show 003 top 003,620 left 003,040 SCHRIFTART = 003 Gosub Schriftarten Print_Locate 40,600:Print "TEXT WIDTH: ",TEXT_WIDTH (A1$,1) ' ZB2% = TEXT_WIDTH (A1$,1) :' Zeichenbreite ermitteln ' ZZ2% = Screen_x/ZB2% :' Anzahl Zeichen auf Bildschirmbreite Print_Locate 40,640:Print "Anzahl Zeichen auf Screen width: ",ZZ2% ' ' *** Berechnung Rahmenbreite ************************************************** ' ZZ2% = ZZ2% -2 :' - 2 Zeichen für CHR$(201)-CHR$(187) ' ZZ3% = ZZ2% -1 :' - 1 Zeichen für Rahmen links und rechts ' RAHMENAUFFORMOBEN$ = CHR$(201) + STRING$(ZZ3%,CHR$(205)) + CHR$(187) RB2% = TEXT_WIDTH (RAHMENAUFFORMOBEN$,1) :' Zeichenbreite ermitteln Print_Locate 40,660:Print "Rahmenbreite in Pixel: ",RB2% ' show 004 top 004,-1 left 004,-1 SCHRIFTART = 004 Gosub Schriftarten caption 004,RAHMENAUFFORMOBEN$ ' ' *** Rahmen links ************************************************************* ' RAHMENAUFFORMLINKS$ = CHR$(186) ' show 020 top 020,7 left 020,-1 SCHRIFTART = 020 Gosub Schriftarten caption 020,RAHMENAUFFORMLINKS$ ' show 0021 top 0021,15 left 0021,-1 SCHRIFTART = 0021 Gosub Schriftarten caption 0021,RAHMENAUFFORMLINKS$ ' show 0022 top 0022,23 left 0022,-1 SCHRIFTART = 0022 Gosub Schriftarten caption 0022,RAHMENAUFFORMLINKS$ ' show 0023 top 0023,31 left 0023,-1 SCHRIFTART = 0023 Gosub Schriftarten caption 0023,RAHMENAUFFORMLINKS$ ' show 0024 top 0024,39 left 0024,-1 SCHRIFTART = 0024 Gosub Schriftarten caption 0024,RAHMENAUFFORMLINKS$ ' ' RAHMENAUFFORMRECHTS$ = CHR$(186) ' show 030 top 030,7 left 030,RB2%-7 SCHRIFTART = 030 Gosub Schriftarten caption 030,RAHMENAUFFORMRECHTS$ ' show 031 top 031,15 left 031,RB2%-7 SCHRIFTART = 031 Gosub Schriftarten caption 031,RAHMENAUFFORMRECHTS$ ' show 032 top 032,23 left 032,RB2%-7 SCHRIFTART = 032 Gosub Schriftarten caption 032,RAHMENAUFFORMRECHTS$ ' show 033 top 033,31 left 033,RB2%-7 SCHRIFTART = 033 Gosub Schriftarten caption 033,RAHMENAUFFORMRECHTS$ ' show 034 top 034,39 left 034,RB2%-7 SCHRIFTART = 034 Gosub Schriftarten caption 034,RAHMENAUFFORMRECHTS$ ' ' ** RAHMENAUFFORNUNTEN$ = CHR$(200)+STRING$(ZZ3%,CHR$(205))+CHR$(188) ******** ' RAHMENAUFFORNUNTEN$ = CHR$(200) + STRING$(ZZ3%,CHR$(205)) + CHR$(188) ' show 055 top 055,47 left 055,-1 SCHRIFTART = 055 Gosub Schriftarten caption 055,RAHMENAUFFORNUNTEN$ ' end ' ' ****************************************************************************** ' *** Schriftart TERMINAL ***************************************************** SCHRIFTARTEN: ' font_name SCHRIFTART,"Terminal" font_size SCHRIFTART,Schriftgroesse% font_bold SCHRIFTART font_underline_off SCHRIFTART ' font_underline SCHRIFTART font_strike_off SCHRIFTART font_italic_off SCHRIFTART font_color SCHRIFTART,0,0,0 ' RETURN
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 23:01 | |
| Bei mir: 1280x800: passt genau !
Chez moi: 1280x800: s'ajuste impeccablement !
On my system: 1280x800: fits exactly ! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Sam 5 Nov 2011 - 23:44 | |
| Correct in all resolution : - Code:
-
DIM border_size: PICTURE 2:full_space 2:border_size=width(0)-width(2):delete 2 DIM caption_height% : HEIGHT 0,0 : caption_height% = HEIGHT(0)
font_name 0,"Terminal" font_size 0,12
DIM text_w:text_w=TEXT_WIDTH(" ",0) DIM text_h:text_h=TEXT_HEIGHT(" ",0)
DIM form_w,form_h DIM nb_line: nb_line = 20 DIM nb_col : nb_col = INT((SCREEN_X-border_size)/text_w) DIM i
WIDTH 0,(nb_col * text_w) + border_size HEIGHT 0,(nb_line * text_h) + caption_height%
' box : PRINT_LOCATE 0,0 PRINT CHR$(201) + STRING$(nb_col - 2, CHR$(205)) + CHR$(187) FOR i = 1 TO nb_line - 2 PRINT_LOCATE 0, text_h * i PRINT CHR$(186) PRINT_LOCATE (nb_col-1) * text_w, text_h * i PRINT CHR$(186) NEXT i PRINT_LOCATE 0,(nb_line-1) * text_h PRINT CHR$(200) + STRING$(nb_col - 2, CHR$(205)) + CHR$(188)
END | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Dim 6 Nov 2011 - 2:18 | |
| Fine for me ! EDIT NO ! The horizontal border is 3 pixels too short ! - Code:
-
' TEXT_HEIGHT (A$ N): gibt die Höhe in Pixel ' TEXT_WIDTH (A$,N), gigt die Breite in Pixel ' Label SCHRIFTARTEN ' alpha 001:hide 001 alpha 002:hide 002 alpha 003:hide 003 alpha 004:hide 004 alpha 005:hide 005 ' alpha 020:hide 020 alpha 021:hide 021 alpha 022:hide 022 alpha 023:hide 023 alpha 024:hide 024 ' alpha 030:hide 030 alpha 031:hide 031 alpha 032:hide 032 alpha 033:hide 033 alpha 034:hide 034 ' alpha 055:hide 055 ' DIM ZB2% DIM ZZ2% DIM ZZ3% DIM RB2% ' Dim Y2 Dim Y3 Dim Y4 ' DIM TEXT2$:TEXT2$="Höhe in Pixel" DIM RAHMENAUFFORMOBEN$ DIM RAHMENAUFFORNUNTEN$ DIM RAHMENAUFFORMLINKS$ DIM RAHMENAUFFORMRECHTS$ ' Dim Schriftart DIM Schriftgroesse% Dim SCHRIFT_HOEHE% Dim SCHRIFT_BREIT% DIm A1$:A1$=CHR$(186) DIm A2$ DIm A3$ ' ' ****************************************************************************** Schriftgroesse% = 8 :' <==== Hier Schriftgröße einstellen ' ****************************************************************************'* ' ' FORM 000 DEFINIEREN color 000,0,255,0 width 000,INT(SCREEN_X) height 000,INT(SCREEN_Y) ' Print_Locate 40,520:Print "Screen width Pixel: ",Screen_X ' *** SCHRIFTZEICHEN *********************************************************** show 001 top 001,001 left 001,001 SCHRIFTART = 001 Gosub Schriftarten ' caption 001,A1$ ' ' *** SCHRIFTHÖHE IN PIXEL ***************************************************** show 002 top 002,580 left 002,040 SCHRIFTART = 002 Gosub Schriftarten Print_Locate 40,560:Print "TEXT HEIGHT: ",TEXT_HEIGHT (A1$,1) ' ' *** SCHRIFTBREITE IN PIXEL *************************************************** show 003 top 003,620 left 003,040 SCHRIFTART = 003 Gosub Schriftarten Print_Locate 40,600:Print "TEXT WIDTH: ",TEXT_WIDTH (A1$,1) ' ZB2% = TEXT_WIDTH (A1$,1) :' Zeichenbreite ermitteln ' ZZ2% = Screen_x/ZB2% :' Anzahl Zeichen auf Bildschirmbreite Print_Locate 40,640:Print "Anzahl Zeichen auf Screen width: ",ZZ2% ' ' *** Berechnung Rahmenbreite ************************************************** ' ZZ2% = ZZ2% -2 :' - 2 Zeichen für CHR$(201)-CHR$(187) ' ZZ3% = ZZ2% -1 :' - 1 Zeichen für Rahmen links und rechts ' RAHMENAUFFORMOBEN$ = CHR$(201) + STRING$(ZZ3%,CHR$(205)) + CHR$(187) RB2% = TEXT_WIDTH (RAHMENAUFFORMOBEN$,1) :' Zeichenbreite ermitteln Print_Locate 40,660:Print "Rahmenbreite in Pixel: ",RB2% ' show 004 top 004,-1 left 004,-1 SCHRIFTART = 004 Gosub Schriftarten caption 004,RAHMENAUFFORMOBEN$ ' ' *** Rahmen links ************************************************************* ' RAHMENAUFFORMLINKS$ = CHR$(186) ' show 020 top 020,7 left 020,-1 SCHRIFTART = 020 Gosub Schriftarten caption 020,RAHMENAUFFORMLINKS$ ' show 0021 top 0021,15 left 0021,-1 SCHRIFTART = 0021 Gosub Schriftarten caption 0021,RAHMENAUFFORMLINKS$ ' show 0022 top 0022,23 left 0022,-1 SCHRIFTART = 0022 Gosub Schriftarten caption 0022,RAHMENAUFFORMLINKS$ ' show 0023 top 0023,31 left 0023,-1 SCHRIFTART = 0023 Gosub Schriftarten caption 0023,RAHMENAUFFORMLINKS$ ' show 0024 top 0024,39 left 0024,-1 SCHRIFTART = 0024 Gosub Schriftarten caption 0024,RAHMENAUFFORMLINKS$ ' ' RAHMENAUFFORMRECHTS$ = CHR$(186) ' show 030 top 030,7 left 030,RB2%-7 SCHRIFTART = 030 Gosub Schriftarten caption 030,RAHMENAUFFORMRECHTS$ ' show 031 top 031,15 left 031,RB2%-7 SCHRIFTART = 031 Gosub Schriftarten caption 031,RAHMENAUFFORMRECHTS$ ' show 032 top 032,23 left 032,RB2%-7 SCHRIFTART = 032 Gosub Schriftarten caption 032,RAHMENAUFFORMRECHTS$ ' show 033 top 033,31 left 033,RB2%-7 SCHRIFTART = 033 Gosub Schriftarten caption 033,RAHMENAUFFORMRECHTS$ ' show 034 top 034,39 left 034,RB2%-7 SCHRIFTART = 034 Gosub Schriftarten caption 034,RAHMENAUFFORMRECHTS$ ' ' ** RAHMENAUFFORNUNTEN$ = CHR$(200)+STRING$(ZZ3%,CHR$(205))+CHR$(188) ******** ' RAHMENAUFFORNUNTEN$ = CHR$(200) + STRING$(ZZ3%,CHR$(205)) + CHR$(188) ' show 055 top 055,47 left 055,-1 SCHRIFTART = 055 Gosub Schriftarten caption 055,RAHMENAUFFORNUNTEN$
' adjust form width width 0,1277 ' end ' ' ****************************************************************************** ' *** Schriftart TERMINAL ***************************************************** SCHRIFTARTEN: ' font_name SCHRIFTART,"Terminal" font_size SCHRIFTART,Schriftgroesse% font_bold SCHRIFTART font_underline_off SCHRIFTART ' font_underline SCHRIFTART font_strike_off SCHRIFTART font_italic_off SCHRIFTART font_color SCHRIFTART,0,0,0 ' RETURN
See line 195: with 1277 the border still fits, but gets truncated with 1276. | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Mar 8 Nov 2011 - 17:15 | |
| hallo an alle Panoramic's, ich habe immer noch das Problem mit den unterschiedlichen Rahmenbreiten. Beim Test mit Vista habe ich eine Rahmenbreite von 10 Pixel. Beim Test mit Win 7 habe ich eine Rahmenbreite von 3 Pixel. Beim Test mit Win XP habe keinen Wert. Ich habe kein XP mehr. Wer kann Daten ermitteln und hier einstellen ? @ Nardo26 Hallo Nardo, die Rahmenbox muss mit Alpha N gemacht werden. Bei nur mit Print ist der Rahmen flüchtig. Severin A tout le Panoramic's, J'ai encore le problème avec les largeurs de cadre diverses. Au test avec Vista, j'ai une largeur de cadre de 10 pixels. Au test avec Win 7 j'ai une largeur de cadre de 3 pixels. Au test avec WIN XP n'a aucune valeur. Je n'ai plus aucun XP. Qui peut découvrir des données et régler(engager) ici ? Nardo26 Nardo, la boîte de cadre doit être fait avec l'alpha N. A seulement avec Print, le cadre est fugitivement. Severin hello to all Panoramic's, I still have the problem with the different frame-wide. With the test with Vista I have a frame width of 10 pixels. With the test with Win 7 I have a frame width of 3 pixels. With the test with WIN XP has no value. I have no more XP. Who can determine data and put here? Nardo26 Hello Nardo, the frame box must be done with alpha N. With only with Print the frame is quickly. Severin | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Mar 8 Nov 2011 - 17:52 | |
| | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Mar 8 Nov 2011 - 18:05 | |
| @severin, je comprend toujours pas pourquoi tu veux absolument passer par des caractères semi-graphiques pour dessiner un cadre dans le formulaire... Voir instruction : PICTURE, 2D_RECTANGLE pour le redimensionement automatique j'ai fourni plein d'exemple sur le forum... Vraiment je ne comprend pas : as-tu regardé les 2 exemples du Vendredi 28 Oct 2011 - 10:11 ? -> voir ici | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Mar 8 Nov 2011 - 18:29 | |
| Hallo Nardo26,
siehe Startseite vom Forum. Ich persönlich finde die Felder mit Doppellinie schön. In meinem Programm sollen auch Felder den Benutzer führen. Es ist sehr spezifisch und daher muß eine Reihenfolge eingehalten werden. Deshalb auch meine Fragen nach den Unterschiedlichen Rahmen in Win. Mein Kollege hat Vista. Daher die Möglichkeit es zu Prüfen. Kann mir die unterschiedlichen Rahmenbreiten nicht erklären. Dehalb auch meine Frage. Auch an Jack. Ansonsten vielen Dank für die Hilfe.
Severin
Nardo26,
Cf. la page de départ du forum. Je trouve bien personnellement les champs avec la ligne double. Dans mon programme, des champs doivent aussi diriger l'utilisateur. C'est très spécifique et, ainsi, un ordre(une suite) doit être respecté. Ainsi aussi mes questions sur les cadres divers dans Win. Mon collègue a Vista. Ainsi, examiner la possibilité. Ne peut pas m'expliquer les largeurs de cadre diverses. Dehalb aussi ma question. Aussi à Jack. Sinon merci bien à l'aide.
Severin
Hello Nardo26,
see start side of the forum. I find individually the fields with double line beautifully. In my program fields should also lead the user. It is very much specifically and, therefore, an order must be kept. Therefore, also my questions after the different frames in Win. My colleague has Vista. Therefore, to check the possibility. If the different frame-wide cannot explain(express) to me. Dehalb also my question. Also to Jack. Apart from that many thanks for the help.
Severin | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) Mar 8 Nov 2011 - 20:58 | |
| Bon là je pense qu'il y en a pour tout les gouts... - C'est redimensionnable - Plusieurs couleurs, styles - Du texte par dessus... - Code:
-
DIM ID_TIMER : ID_TIMER = 20 DIM ID_PIC : ID_PIC = 21 LABEL Redraw : GOSUB Redraw ALPHA 100:CAPTION 100,"Test":LEFT 100,15:TOP 100,15 TIMER ID_TIMER: TIMER_INTERVAL ID_TIMER,100
DIM ID_TIMER1 : ID_TIMER1 = 22 DIM ID_PIC1 : ID_PIC1 = 23
FORM 1 LABEL Redraw1 : GOSUB Redraw1 ALPHA 200:PARENT 200,1:CAPTION 200,"Test":LEFT 200,15:TOP 200,15 TIMER ID_TIMER1: TIMER_INTERVAL ID_TIMER1,100
ON_TIMER ID_TIMER,Redraw: TIMER_ON ID_TIMER ON_TIMER ID_TIMER1,Redraw1: TIMER_ON ID_TIMER1
END
' ------------------------------------------------------------------------------ Redraw: if OBJECT_EXISTS(ID_TIMER)=1 THEN TIMER_OFF ID_TIMER if OBJECT_EXISTS(ID_PIC)=0 PICTURE ID_PIC DIM Form0_H,Form0_W end_if if Form0_H<>HEIGHT(0) OR Form0_W<>WIDTH(0) 2D_TARGET_IS ID_PIC: FULL_SPACE ID_PIC : 2D_CLEAR Form0_H=HEIGHT(0):Form0_W=WIDTH(0) 2D_FILL_COLOR 240,240,240 2D_PEN_WIDTH 3 : 2D_PEN_SOLID 2D_RECTANGLE 3,3,WIDTH(ID_PIC)-3,HEIGHT(ID_PIC)-3 2D_RECTANGLE 8,8,WIDTH(ID_PIC)-8,HEIGHT(ID_PIC)-8 end_if if OBJECT_EXISTS(ID_TIMER)=1 THEN TIMER_ON ID_TIMER return
Redraw1: if OBJECT_EXISTS(ID_TIMER1)=1 THEN TIMER_OFF ID_TIMER1 if OBJECT_EXISTS(ID_PIC1)=0 PICTURE ID_PIC1 : PARENT ID_PIC1,1 DIM Form1_H,Form1_W end_if if Form1_H<>HEIGHT(1) OR Form1_W<>WIDTH(1) 2D_TARGET_IS ID_PIC1: FULL_SPACE ID_PIC1 : 2D_CLEAR Form1_H=HEIGHT(1):Form1_W=WIDTH(1) 2D_FILL_COLOR 240,240,240 2D_PEN_SOLID : 2D_PEN_WIDTH 3 ' small box 2D_PEN_COLOR 0,0,255 : 2D_RECTANGLE 3,3,WIDTH(ID_PIC1)-3,40 2D_PEN_COLOR 255,0,0 : 2D_RECTANGLE 8,8,WIDTH(ID_PIC1)-8,35 ' 2nd box 2D_PEN_COLOR 0,0,0 : 2D_RECTANGLE 3,45,WIDTH(ID_PIC1)-3,HEIGHT(ID_PIC1)/2-3 2D_PEN_WIDTH 1 : 2D_PEN_DASH 2D_RECTANGLE 8,50,WIDTH(ID_PIC1)-8,HEIGHT(ID_PIC1)/2-8 end_if if OBJECT_EXISTS(ID_TIMER1)=1 THEN TIMER_ON ID_TIMER1 return | |
| | | Contenu sponsorisé
| Sujet: Re: Z=TEXT_WIDTH (A1$,1) | |
| |
| | | | Z=TEXT_WIDTH (A1$,1) | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |