Seite 2 von 2

Verfasst: 27.11.2004 18:53
von Kaeru Gaman
ich vermute mal, mit programmierstil meint er die art des zugriffs, die anscheinend nur unter XP funktioniert.

ansonsten kann ich in deinem code keine stilschwächen entdecken.

my opinion. stilfragen sind immer so ne sache...

Verfasst: 27.11.2004 18:55
von Deeem2031
Quaxi hat geschrieben:Nun danke erstmals für die ganzen Antworten, aber es funzt trozdem noch nicht richitg:

So deklariere ich das String-Gadget:
StringGadget(#txt_protokoll, 170, 20, 380, 325, "", #PB_String_ReadOnly | #PB_String_MultiLine | #WS_VSCROLL | #ES_AUTOVSCROLL )

Und mit folgendem Code schreibe ich eine neue Zeile hinein:

Code: Alles auswählen

Procedure myProc_AddLineToProtocoll(str_LineToAdd.s)  ;Funktion die einen Eintrag in die Protokoll Liste durchführt
  SetGadgetText(#txt_protokoll, GetGadgetText(#txt_protokoll) + Chr(13) + Chr(10)+ "--> " + str_LineToAdd)
EndProcedure
Nachdem diesese Procedur aufgerufen wurde und die Zeile hinzugefügt wurde scrollt das String Gadgte allerdings nicht mit.

Code: Alles auswählen

Procedure myProc_AddLineToProtocoll(str_LineToAdd.s)  ;Funktion die einen Eintrag in die Protokoll Liste durchführt
  SetGadgetText(#txt_protokoll, GetGadgetText(#txt_protokoll) + Chr(13) + Chr(10)+ "--> " + str_LineToAdd)
  SendMessage_(GadgetID(#txt_protokoll),#EM_LINESCROLL,0,SendMessage_(GadgetID(#txt_protokoll),#EM_GETLINECOUNT,0,0))
EndProcedure

Verfasst: 27.11.2004 19:27
von GPI
DarkDragon hat geschrieben:
GPI hat geschrieben:UND LÖSCH BITTE DAS BEISPIEL OBEN AUS DEINER SAMMLUNG. Es ist ein sehr schlechter Programmierstiel.
Warum soll das ein schlechter Programmierstiel sein? So ist alles bei mir aufgebaut.
Weil man es so nicht machen sollte. Es funktioniert bei XP. Aber es funktioniert nicht bei Win9x und ob es noch bei Longhorn funktioniert ist auch fraglich. Besser:

Code: Alles auswählen

Procedure EditorGadgetEnableTextWarp(Id); - Activate the automatic word-warp for a EditorGadget
  GID=GadgetID(Id)
  dc=GetWindowDC_(GID)
  SendMessage_(GID, #EM_SETTARGETDEVICE ,dc ,-1)
  ReleaseDC_(GID,dc)
EndProcedure

Verfasst: 27.11.2004 19:41
von Quaxi
Tausen dank Deeem, jetzt funktioniert es.
Aber den Befehl musst du mir jetzt erklären :-)

Verfasst: 27.11.2004 19:49
von Deeem2031
Was heißt hier muss? Gut dich einfach 'n bisl bei http://msdn.microsoft.com/ um. (musst du eh irgendwann machen wenn du unter Windows proggen willst..)

Verfasst: 27.11.2004 20:07
von DarkDragon
GPI hat geschrieben:
DarkDragon hat geschrieben:
GPI hat geschrieben:UND LÖSCH BITTE DAS BEISPIEL OBEN AUS DEINER SAMMLUNG. Es ist ein sehr schlechter Programmierstiel.
Warum soll das ein schlechter Programmierstiel sein? So ist alles bei mir aufgebaut.
Weil man es so nicht machen sollte. Es funktioniert bei XP. Aber es funktioniert nicht bei Win9x und ob es noch bei Longhorn funktioniert ist auch fraglich. Besser:

Code: Alles auswählen

Procedure EditorGadgetEnableTextWarp(Id); - Activate the automatic word-warp for a EditorGadget
  GID=GadgetID(Id)
  dc=GetWindowDC_(GID)
  SendMessage_(GID, #EM_SETTARGETDEVICE ,dc ,-1)
  ReleaseDC_(GID,dc)
EndProcedure
Also erstens braucht er nur einen MultiLine StringGadget mit Scrollbalken und keinen EditorGadget mit word-wrap, der eh nicht funktioniert. WordWrap heißt für mich Zeilenumbruch, sobald ein Wort die Maximal X Position überschreitet.
Und ein schlechter Programmierstil wäre z.B. sowas:

Code: Alles auswählen

OpenConsole()
If t=0 And o=0
PrintN("blubb")
Select m
Case o
PrintN("o")
Case t
For k=0 To 10
PrintN("t"+Str(k))
Next
EndSelect
EndIf
Also keine Kommentare, keine Einrückung, keine Aussagekraft.
Für dich ist dann sowas wie Unkompatibilität schlechter Programmierstil.

[EDIT] gut dann mach du erstmal jaPBe für Linux.
Ich hab kein Win9x, woher soll ich denn wissen was wo kompatibel ist? In der MSDN schau ich sicher nicht nach, wenns bei mir schon immer so geklappt hat.