Seite 2 von 3

Verfasst: 26.07.2006 22:17
von ts-soft
Falko hat geschrieben:Hi, Thomas, hab's mal auf Pb3.94 korrigiert <) (Ausser den bei dir :lol: )o
Hab mir nur gewundert wegen der Fehlermeldungen :lol:

Verfasst: 26.07.2006 22:46
von Falko
Das Blöde bei der IDE ist, wenn man zuletzt in PB 3.94 gearbeitet hat, bleibt ja die IDE solange erhalten.

Später, wenn man mit PB 4 arbeiten möchte und mit Doppelklick einen Source in dessen Ordner anklickt, merkt man im ersten Moment nicht sofort, das man in der IDE zu PB 3.94 arbeitet. :lol:

Hab mich schon gewundert, das ich keine Fehlermeldung wegen der
WindowsID's, als auch wegen dem String im OpenWindows(...) beim Test bekam :lol:


Vielleicht wäre es schön, wenn freak die IDE's entweder mit einem Hellgrauen Wasserzeichen im Hintergrund oder nur eine
Purebasic Ver. 4.0 - Erweiterung im Fensterkopf kennzeichnen könnte
, da es hin und wieder erforderlich ist, die ältere PB-Version zu nutzen und
man nach Doppelklick der Sourceverknüpung gleich sieht, womit man arbeitet :mrgreen:

Ist aber super, Thomas, das es Dir sofort aufgefallen und
schnell korrigiert werden konnte. :allright:

Danke und viele Grüße
Falko

Verfasst: 26.07.2006 22:50
von ts-soft
Mach Dir ne Verknüpfung für die PB3.94 IDE mit dem Parameter "/NOEXT"
So ist immer PB4 gültig und wenn Du die alte Version brauchst, nimmste die
Verknüpfung, die dann die Zuordnung nicht ändert :wink:

Kannste die Verknüpfung auch nach SendTo kopieren, so kannste per rechtsklick auch alte Sourcen öffnen

Gruß
Thomas

Verfasst: 26.07.2006 23:27
von Falko
@ts-soft
Mal schauen, vielleicht mache ich es dann so, wie du sagst Thomas :allright:

@Calloway, hast Glück, das ich noch 2 Wochen Urlaub habe :lol:
Hier noch eine Drucker-Procedure, die man dann auch in den Source einbauen könnte. Ist nur ein Beispiel, um zu zeigen, wie man das drucken könnte. Will man es im Verhältnis haben, muss das noch im Verhältnis
zur CD umgerechnet und angepasst werden. Damit man es sehen kann,
habe ich nur mal so einen Faktor zum Papierformat genommen.


Folgende Procedure an den Teil unter der letzten Procedure im obigen Source bitte ersetzen. Getestet habe ich das mit einem PDF-Printer 8)

Code: Alles auswählen

Procedure Print_Circle_Text(String$) 
 If PrintRequester()

  If StartPrinting("PureBasic Test")

  hDc=StartDrawing(PrinterOutput()) 
    If hDc 
     PrinterFaktor=2.5; Hier z.B. die Anpassung für den Drucker machen
       FrontColor(RGB(0,255,0)) 
       Radius=180 * PrinterFaktor
       String$="Purebasic 4 you" 
  
       For i=1 To Len(string$) 
          Zeichen$=Mid(String$,i,1) 
          Winkel=20 * i 
          X = Radius*Sin(Winkel/360*2*#PI)
          Y = Radius*Cos(Winkel/360*2*#PI)
          DrawRText(hDc, PrinterPageWidth()/2+X*PrinterFaktor, PrinterPageHeight()/4+Y*PrinterFaktor,Zeichen$,"Arial",Winkel,40*PrinterFaktor) 
       Next i 
     EndIf 
     StopDrawing() 
     StopPrinting()
    EndIf 
  EndIf

  EndProcedure 
 Circle_Text("Happy Purebasic4") ; Bild anzeigen
 Print_Circle_Text("Happy Purebasic4") ; Bild ausdrucken
 Repeat 
  Event=WaitWindowEvent() 
  If Event=#PB_EventType_Focus or #PB_Event_MoveWindow:Circle_Text("Happy Purebasic4"):EndIf ;  Redraw Windows! 
 Until Event = #PB_Event_CloseWindow
[Edit] habe in der Eventabfrage noch schnell folgende Event_Konstanten
eingesetzt. Jetzt wird auch das Bild nach bedecken von Fenstern wieder
neugezeichnet. Sieht ja schon fast so gut aus, wie das AutoRedraw von meinem GFA-Basic :mrgreen:

#PB_EventType_Focus or #PB_Event_MoveWindow
[/Edit]

Grüsse Falko

Verfasst: 26.07.2006 23:32
von Calloway
Sehr schön!
Ich versuche das gerade mittels den pdf-Befehlen als PDF-Dokument zu drucken. Ist noch etwas schwer... Oder ich befasse mich mal damit, wenn es nicht ganz so heiß ist...

Verfasst: 28.07.2006 17:17
von Calloway
So, jetzt regnets, es ist nicht mehr so heiß, und ich habe mich des Problems noch einmal angenommen und bereits eine halbwegs zufriedenstellende Lösung gefunden:

Code: Alles auswählen

PI.f=3.1415926
Hoehe.l=85  ; 3 cm
Breite.l=85  ; 3 cm
APX.l=71 ; 2,5 cm    Ankerpunkt X 
APY.l=71 ; 2,5       Ankerpunkt Y

a$=UCase(" Textausrichtung an einem Kreis ")

pdf_Create("P","pt",#PDF_PAGE_FORMAT_A4)
pdf_AddPage()
pdf_SetMargins(0,0,0) 
pdf_SetFont("Courier","B",8)

pdf_SetFillColor(255,255,255)
pdf_SetTextColor(128,128,128)
Radius.f=43 ; 1,5 cm

For i=1 To Len(a$) 
  Zeichen$=Mid(a$,i,1) 
  Winkel=9 * i 
  x = Radius*Sin(Winkel/360*2*PI) 
  y = Radius*Cos(Winkel/360*2*PI) 

  pdf_SetXY(APX+x,APY-y)
  pdf_Rotate(360-Winkel)
  pdf_Cell(14,14,Zeichen$,0,0,#PDF_ALIGN_CENTER,0)
Next i 
pdf_Save("C:\RotateText1.pdf")
RunProgram("C:\RotateText1.pdf")
Zum Ausführen dieses Codes braucht man Luckys PDF-Library.
http://www.smollies.be/

Das Problem ist, dass die Drehung nicht ganz sauber ist und dadurch der Text immer noch sehr unruhig wirkt. Weiß jemand, wie man das Ergebnis noch verbessern kann?

Verfasst: 28.07.2006 23:16
von Falko
Hab den Fehler gefunden. Es liegt daran, das die Zelle wohl an der linken unteren Ecke ausgerichtet wird.
Entweder müsste man diesen Winkel und Radius neu ausrechnen,
oder aber, setzt die Zelle einfach auf einen Punkt.
Zwar kannst du dann keinen Rahmen machen, aber so sieht das
doch gut aus, oder? :mrgreen:

Code: Alles auswählen

PI.f=3.1415926 
Hoehe.l=85  ; 3 cm 
Breite.l=85  ; 3 cm 
APX.l=71 ; 2,5 cm    Ankerpunkt X 
APY.l=71 ; 2,5       Ankerpunkt Y 

a$=UCase(" Textausrichtung an einem Kreis ") 

pdf_Create("P","pt",#PDF_PAGE_FORMAT_A4)
pdf_AddPage() 
pdf_SetMargins(0,0,0) 
pdf_SetFont("Courier","B",8) 

pdf_SetFillColor(255,255,255) 
pdf_SetTextColor(128,128,128) 
Radius.f=43 ; 1,5 cm 
 pdf_SetXY(APX,APY)
For i=1 To Len(a$) 
  Zeichen$=Mid(a$,i,1) 
  Winkel=9 * i 
   x.f = APX+Radius*Sin(Winkel/360*2*PI) 
   y.f = APY-Radius*Cos(Winkel/360*2*PI)
  pdf_SetXY(x,y)
  pdf_Rotate(360-Winkel);Winkel)
  pdf_Cell(1,1,Zeichen$,0,0,#PDF_ALIGN_CENTER,0) ; Hier steckt der Fehler drinne :D , changed by Falko
  
Next i 
pdf_Save("C:\RotateText1.pdf") 
RunProgram("C:\RotateText1.pdf") 

Verfasst: 28.07.2006 23:38
von Calloway
WOW! Ich bin begeistert! Vielen Dank für die kleine Korrektur!
Diesen Code könnte man glatt bei PureArea einstellen... :allright:

Verfasst: 28.07.2006 23:54
von Falko
Warum nicht. Gefällt mir auch sehr gut :allright:
Da Andrè im Urlaub ist, kannst Du ihm am besten über PN auf diesen Link verweisen. :wink:

Die PDF-Lib ist nicht schlecht. So konnte ich mir das mal mittels deinem
Beispiel vor Augen halten, wie man sowas aufbauen kann. :allright:

Mal schauen, da kommen jetzt wieder Ideen zu PNG_Shot auf, wenn Jens
am Sonntag wieder da ist :twisted:

Grüße Falko

Verfasst: 05.02.2008 00:36
von roherter
Wie kann ich den Text andersrum darstellen, ich meine das die buchstaben nicht nach aussen zeigen sonder nach innen?