Seite 2 von 5
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 28.09.2012 19:37
von Sebastian
Hmm. Ich finde es nicht unbedingt übertrieben, denn hierbei sollten keine Fehler auftreten - das ist schlicht unprofessionell. Ich habe gar keine so langen Zeilen, sondern arbeite nur im Split-Fenster. Darauf möchte ich auch nicht verzichten, denn die zweite Bildschirmhilfe benötige ich nun einmal für die Hilfe und Datenbankprogramme, Browser usw.
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 28.09.2012 19:55
von STARGÅTE
Ich habe gar keine so langen Zeilen, sondern arbeite nur im Split-Fenster. Darauf möchte ich auch nicht verzichten, denn die zweite Bildschirmhilfe benötige ich nun einmal für die Hilfe und Datenbankprogramme, Browser usw.
Und das ist in meinen Augen "schlicht unprofessionell".
Als nächstes ist es "unprofessionell" das die ToolBarLeiste keinen Zeilen-Umbruch drin hat, weil jemand sein Fenster auf eine Breite von 400Pixeln schiebt und er deswegen nicht mehr auf das Kompiler-Icons drücken kann

.
"professionell" wäre in meinen Augen sich schleunigst einen 2. Bildschirm daneben zu stellen (wie es die meinsten Programmierer haben) und dort die Hilfe und das Browserfester zu verlagern.
Ansonsten kannst du ja mal bei
Scintilla nachfragen, vllt gibt es ja auch schon eine Lösung für das Problem.
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 28.09.2012 21:31
von STARGÅTE
Ich lese gerade:
Scintilla hat geschrieben:
These are features I don't like or don't think are important enough to work on. Implementations are welcome from others though.
Mouse wheel panning (press the mouse wheel and then move the mouse) on Windows.
Quelle: http://www.scintilla.org/ScintillaToDo.html
Vermutlich wird deshalb auch die untere Scrollleiste "für unwichtig erklärt" ...
Denn in diesem Zusammenhang wurde das Problem was Danilo angesprochen hat:
Ziehe ich die Scrollbar ganz nach Rechts, um das Ende einer
langen Zeile zu sehen, ist noch lange nicht das Ende in Sicht.
Zitat: "Wont Fix. For performance, Scintilla does not calculate the true width of lines."
Quelle: http://sourceforge.net/tracker/index.ph ... tid=102439
Auch nicht weiter verfolgt.
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 28.09.2012 22:11
von NicTheQuick
Also wenn ich Pos1 drücke, dann springt der Cursor zum Anfang des ersten Wortes in der Zeile und beim zweiten Druck auf das erste Zeichen in der Zeile und beim dritten Klick wieder zum Anfang des ersten Wortes in der Zeile, usw...
Wenn man also drei mal Pos1 drückt, ist es wie einmal drücken, bloß dass wirklich ganz nach links gescrollt wird.
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 29.09.2012 08:24
von Danilo
NicTheQuick hat geschrieben:Wenn man also drei mal Pos1 drückt, ist es wie einmal drücken, bloß dass wirklich ganz nach links gescrollt wird.
Also statt nur 'Return' am Zeilenende muß man nun 'Return, Pos1, Pos1, Pos1' drücken?
Wenn man #SCI_GOTOPOS auf die erste Position der Zeile (oder einfach 0) anwendet, scrollt der
sichtbare Bereich ganz zum Zeilenanfang. Damit könnte man Sebastians Problem beheben.
Der folgende Code fügt einem ScintillaGadget 2 Zeilen hinzu, setzt den Cursor auf das Ende
der 1. Zeilen (Scintilla-Zeile 0) und scrollt dort hin. Danach wird der Cursor an die 4.Stelle der 2. Zeile gesetzt.
Mit auskommentierter Zeile "; FIX" wird nicht komplett nach Links gescrollt, also so wie es in
der IDE ist.
Setzt man nun kurz den Cursor mit #SCI_GOTOPOS auf den Zeilenanfang oder auf 0, wird
der Zeilenanfang in den sichtbaren Bereich gescrollt.
Code: Alles auswählen
CompilerIf #PB_Compiler_Unicode
Procedure.i ascString(s.s)
*p = AllocateMemory(Len(s)+1)
PokeS(*p,s,Len(s),#PB_Ascii)
ProcedureReturn *p
EndProcedure
Macro pText(_string_)
ascString(_string_)
EndMacro
CompilerElse
Macro pText(_string_)
(@_string_)
EndMacro
CompilerEndIf
If OpenWindow(0, 0, 0, 320, 90, "ScintillaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
If InitScintilla()
ScintillaGadget(0, 10, 10, 300, 70, #Null)
; Set the initial text to the ScintillaGadget
txt.s = " This is a simple ScintillaGadget with text..."
For i = 0 To 50 : txt + "text..." : Next
ScintillaSendMessage(0, #SCI_SETTEXT, 0, pTEXT(txt))
; Adding a second line of text with linebreak before
txt = Chr(10) + " Second Line: "+txt
ScintillaSendMessage(0, #SCI_APPENDTEXT, Len(txt), pText(txt))
; Set cursor to end of line 0
eol = ScintillaSendMessage(0,#SCI_GETLINEENDPOSITION,0)
ScintillaSendMessage(0,#SCI_GOTOPOS,eol,0)
;
; set Cursor at position 4 in line 2
;
;ScintillaSendMessage(0,#SCI_GOTOPOS,eol+1) ; FIX
;ScintillaSendMessage(0,#SCI_GOTOPOS, 0) ; alternate FIX
ScintillaSendMessage(0,#SCI_GOTOPOS,eol+5)
SetActiveGadget(0)
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Eine Möglichkeit den Sichtbarkeitsbereich in der Horizontalen zu verschieben gibt es also mit #SCI_GOTOPOS.
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 30.09.2012 11:33
von Sebastian
Hmm. Ich verstehe nicht, warum Du dich so angegriffen fühlst, Stargate. Ich hatte jahrelang zwei Bildschirme hier stehen, doch seit ich einen 27-Zoll Bildschirm mit 1080p mein Eigen nennen darf, habe ich den Sinn nicht mehr gesehen. 2x 960 Pixel sind doch vollkommen ausreichend.
In meinen Augen ist es (und bleibt es dann auch) ein Bug, wenn eine Software den Scrollbalken nicht richtig berechnet. Ob es nun nur ein paar wenige Programmierer stört oder nicht - es bleibt ein Bug. Können wir uns darauf einigen?
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 30.09.2012 11:50
von ts-soft
Es ist kein Bug, es ist eine Einschränkung des Scintilla Controls. Da kann PureBasic überhaupt nichts für, außer das sie bisher keine
bessere Alternative zu diesem Control gefunden haben.
Egal wie groß mein Bildschirm ist, das Control hat bei mir eine breite von 800 - 900 Pixel auf dem Bildschirm und keine von mir ge-
schriebene Codezeile ist länger, da ich das ansonsten gar nicht auf einmal mit dem Auge erfassen könnte, ohne den Kopf zu be-
wegen. Das Problem tritt also nur bei überlangen Fremdcodes auf. Wer also damit Probleme hat, hat IMHO teilweise auch selber
Schuld.
Gruß
Thomas
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 30.09.2012 11:59
von Sebastian
Hm. Werd sehen, ob ich eine andere Technik finde, meine Konstanten zu benennen, die in der Tat sehr lang sind. Aber ich sehe eben immer, welcher Gadget-Typ, welches Fenster usw sich dahinter befindet...
Eine Konstante sieht dann z.B. so bei mir aus: #Gadget_String_NewStudent_StudentName
Das ist wirklich praktisch, weil ich die einzelnen Gadgets sofort finde und nach dem Schema gut arbeiten kann. Gibt es da einen Tipp, die Bezeichnungen zu verkürzen und dennoch (auch nach einiger Zeit) sofort alle Konstanten bennenen zu können?
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 30.09.2012 12:15
von ts-soft
Guck Dir hier im Forum mal die Beiträge z.B. von Danilo oder mir an. Wir fügen selber Umbrüche ein,
da der Text so wesentlich besser zu lesen ist. Und das gilt auch für Code. Der ist leserlicher, wenn,
die Zeilen eben nicht so lang sind.
Strings kann man auch über mehrere Zeilen zusammenfügen, für Konstantennamen wirst Du auch
kürzere Versionen finden, die trotzdem Rückschlüsse ermöglichen. Tabweiten von mehr als 2 em-
pfinde ich auch als schlechter lesbar, aber das ist wohl eine Sache der Gewöhnung. Danilos
Code lasse ich erstmal immer zusammenrücken
Wirst Dich wohl Umgewöhnen können und dann im Endeffekt vielleicht sogar erfreut über den bes-
ser lesbaren Code sein.
Re: PB IDE Sicht zum Zeilenanfang springen bei "Return"
Verfasst: 30.09.2012 12:23
von Sebastian
Ja. Habe schon verstanden. Ich werde an meiner Konstantenbezeichnung feilen. Das sehe ich wohl ein. Strings kann man teilen, klar. Du sprichst von einem manuellen Umbruch. Wie funktioniert das? Ich dachte immer, PB wäre zeilenorientiert? Ich kenne nur den ":", um zwei Zeilen auf eine zu bringen, aber umgekehrt (dachte ich) geht es nicht?