Seite 3 von 4

Verfasst: 24.08.2006 18:12
von Eckhard.S
Welch eine Freude diese "PureLust" in diesem Forum zu erleben. :mrgreen:
Dieser kurze übersichtliche Code gefällt mir super!!

Danke an alle!

Verfasst: 24.08.2006 19:06
von PureLust
edel hat geschrieben:@PureLust
Schoenes Beispiel aber deine Enumeration ist Mist.
ThanX für's Lob. ;)

Und was die Enumeration betrifft:
Ok, sind noch zwei Altlasten von Dir drin (#Menu & #title). ;)

Aber Du meinst vermutlich die einzelne Enumeration für Alles.
Wenn man eh mit Konstanten arbeitet, welchen sinnlichen Nährwert hat es denn dann noch, für jede Gruppe (Windows, Menüs, Gadgets, ...) eine eigenen Enumeration zu beginnen?
(Was nicht bedeuten soll, dass ich die 'Schönheit' in Deiner Variante nicht auch ersehen kann. ;) )

Greetz, PL.

Verfasst: 24.08.2006 19:06
von Eckhard.S
@PureLust
Ist wirklich eine prima Lösung. Kleine Kosmetikfrage:

Die Oberkante des Textfeldes "German" liegt etwas tiefer als die anderen beiden Fenster.
Und die Unterkante des Espernatotextfeldes liegt etwas höher. Woran kann das liegen, wo doch nur der Splitter umgeschaltet wird?

Verfasst: 24.08.2006 19:09
von PureLust
@Eckhard,

das ist der 'Ziehbalken' an dem Du den Splitter ja nach wie vor anpacken kannst.
Um es etwas deutlicher zu machen, kannst Du beim Erstellen des Splittergadgets ja mal "#PB_Splitter_Separator" als Flag mit übergeben - dann sollte es evtl. eher ersichtlich sein.

Gruß, PL.

Verfasst: 24.08.2006 19:17
von ts-soft
PureLust hat geschrieben: Wenn man eh mit Konstanten arbeitet, welchen sinnlichen Nährwert hat es denn dann noch, für jede Gruppe (Windows, Menüs, Gadgets, ...) eine eigenen Enumeration zu beginnen?
Um Speicher zu sparen. PB reserviert Speicher für alle Gadgets ab 0
Diese existieren aber garnicht.

Verfasst: 24.08.2006 20:41
von Eckhard.S
Wunder gibt es überall! Habe eben mal ein Fensteraustausch probiert was auch funktioniert, aber das alte Fenster erscheint plötzlich im Nirwana.
Im folgenden Code oben rechts den 1/2-Button drücken

Code: Alles auswählen

Enumeration 
  #window 
  #Menu 
  #tile 
  #Splitter 
  #edit1 
  #edit2  
  #edit3 
  #Frame 
  #Button1 
  #Button2 
  #ButtonBoth 
           #TestButton
EndEnumeration 

framebreite = 150

hwnd = OpenWindow(#window,0,0,800,600,"",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget) 

CreateGadgetList(hwnd) 

Frame3DGadget(#Frame,5,0,framebreite -10,595-MenuHeight(),"") 
ButtonGadget(#Button1   ,WindowWidth(#Window)-90,2,25,18,"1") 
ButtonGadget(#Button2   ,WindowWidth(#Window)-60,2,25,18,"2") 
ButtonGadget(#ButtonBoth,WindowWidth(#Window)-30,2,25,18,"1/2") 
  ;      ButtonGadget(#TestButton,20,2,25,18,"1/2") 
EditorGadget(#edit1,0,0,0,0) 
EditorGadget(#edit2,0,0,0,0, #PB_Window_Invisible )                          ; NEU !!!!
EditorGadget(#edit3,0,0,0,0, #PB_Editor_ReadOnly) 

SplitterGadget(#Splitter, framebreite, 22, WindowWidth(#Window)- framebreite - 5, WindowHeight(#Window)-27,#edit1, #edit3) 
AddGadgetItem(#edit1,0,"Esperanto-Textfield (1)") 
AddGadgetItem(#edit2,0,"Esperanto-Ersatztext (2)")                                    ; NEU !!!!
AddGadgetItem(#edit3,0,"German-Textfield (3)") 


Repeat 
  event = WaitWindowEvent() 
  
  Select event 
    Case #PB_Event_SizeWindow 
       ResizeGadget(#Frame      , #PB_Ignore, #PB_Ignore, #PB_Ignore, WindowHeight(#Window)-5) 
       ResizeGadget(#Splitter   , #PB_Ignore, #PB_Ignore, WindowWidth(#Window)- framebreite - 5, WindowHeight(#Window)-27) 
       ResizeGadget(#Button1    , WindowWidth(#Window)-90, #PB_Ignore, #PB_Ignore, #PB_Ignore) 
       ResizeGadget(#Button2    , WindowWidth(#Window)-30, #PB_Ignore, #PB_Ignore, #PB_Ignore) 
       ResizeGadget(#ButtonBoth , WindowWidth(#Window)-60, #PB_Ignore, #PB_Ignore, #PB_Ignore) 
    Case #PB_Event_Gadget 
       Select EventGadget() 
          Case #Button1 
             SetGadgetState(#Splitter, GadgetHeight(#Splitter)) 
          Case #Button2 
             SetGadgetState(#Splitter, 0) 
          Case #ButtonBoth 
          SetGadgetAttribute(#Splitter, #PB_Splitter_SecondGadget, #edit2)  ; NEU !!!!
          SetGadgetState(#Splitter, GadgetHeight(#Splitter)/2) 
       EndSelect 
  EndSelect 
  
Until event = #WM_CLOSE

Verfasst: 24.08.2006 20:51
von PureLust
ts-soft hat geschrieben:Um Speicher zu sparen. PB reserviert Speicher für alle Gadgets ab 0
Diese existieren aber garnicht.
AHA ??? :shock:

Aber klingt doch ziemlich unlogisch. Was ist denn dann bei #PB_Any ???

Verfasst: 24.08.2006 20:58
von ts-soft
PureLust hat geschrieben:
ts-soft hat geschrieben:Um Speicher zu sparen. PB reserviert Speicher für alle Gadgets ab 0
Diese existieren aber garnicht.
AHA ??? :shock:

Aber klingt doch ziemlich unlogisch. Was ist denn dann bei #PB_Any ???
Da werden die Unsigned der Signed (-) genommen :mrgreen:
Sind also trotzdem zusammenhängend.
Mußte jetzt aber selbst draufkommen :lol:

Verfasst: 25.08.2006 08:50
von Eckhard.S
Hallo PureLust und ts-soft!

Gestern gab es wohl eine Überschneidung von Nachrichten in diesem Forum. Könnt ich euch den letzten Beitrag von mir bitte mal ansehen. Ich konnte das merkwürdige Verhalten von

Code: Alles auswählen

SetGadgetAttribute(#Splitter, #PB_Splitter_SecondGadget, #edit2) 
noch nicht herausfinden.

Verfasst: 25.08.2006 09:14
von ts-soft
Da ist kein merkwürdiges Verhalten!

Code: Alles auswählen

#PB_Splitter_SecondGadget     : Ersetzt das zweite Gadget durch ein neues.
Du ersetzt ja nicht durch ein neues. Diese Funktion schmeißt das 2te Gadget raus, so das es dem Hauptfenster zugeordnet ist, danach soll dann ein anderes "Neues Gadget" eingefügt werden. Das alte, ist dann mit FreeGadget(Gadget) zu entfernen, bzw. Neu anzuordnen.

Lies doch bitte in der Hilfe nochmal nach, sollte jetzt verständlich sein, hoffe ich.