DialogDesign0R V1.85
Re: DialogDesign0R V1.02
das ist weder ein bug, noch generelles XML Dialog Verhalten.
Das ist schlicht und ergreifend das SplitterGadget und das Resize von ihm. Das kann man leider nicht
so wirklich abstellen.
Allerdings hatte Eddy im englischen Forum ein eigenes CanvasSplitterGadget vorgestellt, das nahezu frei von diesen Artefakten war.
Das ist schlicht und ergreifend das SplitterGadget und das Resize von ihm. Das kann man leider nicht
so wirklich abstellen.
Allerdings hatte Eddy im englischen Forum ein eigenes CanvasSplitterGadget vorgestellt, das nahezu frei von diesen Artefakten war.
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Re: DialogDesign0R V1.02
Alles klar, danke für die Aufklärung!
Re: DialogDesign0R V1.02
Drag 'n drop mit ListIconGadgets, ListViewGadgets und TreeGadgets auf MacOS funktioniert übrigens seit der Umstellung vom Carbon- auf das Cocoa-Framework in PB 5.00 nicht mehr. Es gibt dazu diese Fehlersammlung von fsw, in der Fred schon 2013 schrieb:
Fred hat geschrieben:Cocoa drag'n'drop model is not fully compatiable with PB model, I don't know how to work around it (for now).
Re: DialogDesign0R V1.02
@Shardik
Das hast du glaube ich falsch verstanden.
Es ging darum, mit Hilfe der Handle-Nummer die Index-Nummer des ersten sichtbaren Eintrages zu ermitteln. HeX0R verwendete nicht ohne Grund die Konstante #TVGN_FIRSTVISIBLE.
Meinen Code habe ich nur beispielhaft in den Case-Block eingefügt. Das funktioniert natürlich nur per Klick und Tastatur. Das war aber nur ein Beispiel.
Sonst hätte er nicht folgende Abfrage geschrieben:
D.h. er vergleicht die Handle-Nummer des ersten sichtbaren Eintrages mit allen Einträgen. Da er nicht wusste, wie man es macht, hat er eine Schleife gebaut. Er wollte es gerne kürzen bzw. direkter ermitteln.
So habe ich das verstanden.
Das hast du glaube ich falsch verstanden.
Es ging darum, mit Hilfe der Handle-Nummer die Index-Nummer des ersten sichtbaren Eintrages zu ermitteln. HeX0R verwendete nicht ohne Grund die Konstante #TVGN_FIRSTVISIBLE.
Meinen Code habe ich nur beispielhaft in den Case-Block eingefügt. Das funktioniert natürlich nur per Klick und Tastatur. Das war aber nur ein Beispiel.
Aber das ist nicht das, was HeX0R haben wollte?Shardik hat geschrieben:Ich habe daher einmal ein eigenes Beispiel erstellt, das für alle Einträge das ItemHandle ermittelt und aus dem ItemHandle den Index. Und auch für gerade nicht sichtbare Einträge wird der korrekte Index ermittelt:
Wenn man seinen Code anschaut, will er nicht, die Index-Nummer jedes sichtbaren Eintrages haben, sondern nur die Index-Nummer des ersten sichtbaren EIntrages:HeX0R hat geschrieben:Wie kann ich denn aus einem TreeItemHandle den Index ermitteln?Code: Alles auswählen
Protected TreeItemHandle TreeItemHandle = SendMessage_(GadgetID(DID("tree_objects")), #TVM_GETNEXTITEM, #TVGN_FIRSTVISIBLE, #Null) For i = 0 To CountGadgetItems(DID("tree_objects")) - 1 If GadgetItemID(DID("tree_objects"), i) = TreeItemHandle Break EndIf Next i
Code: Alles auswählen
TreeItemHandle = SendMessage_(GadgetID(DID("tree_objects")), #TVM_GETNEXTITEM, #TVGN_FIRSTVISIBLE, #Null)
Code: Alles auswählen
If GadgetItemID(DID("tree_objects"), i) = TreeItemHandle
So habe ich das verstanden.
- HeX0R
- Beiträge: 2959
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: DialogDesign0R V1.02
Genau!
Das Problem ist ja, dass ich im DropCallback nur y Werte habe, die beim ersten sichbaren Eintrag des Treegadgets beginnen.
Das Problem ist ja, dass ich im DropCallback nur y Werte habe, die beim ersten sichbaren Eintrag des Treegadgets beginnen.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: DialogDesign0R V1.02
OK, Ray. Dann war Dein Beispiel ja doch das Richtige. Vielen Dank, dass Du Dir die Mühe gemacht hast, mir das noch einmal haarklein zu erklären...
Re: DialogDesign0R V1.02
Hallo,
folgende Linux-Unzulänglichkeit könnte einem ebenfalls unterkommen:
Manche Installationen selektieren bei Erhalt des Fokus in StringGadget/GtkEntry (SetActiveGadget(Gadget)) den gesamten Text per default.
Ist man bei Eingaben zu langsam, bekommt das Demo-Window den Fokus, wird upgedatet und das vorherige Eingabefeld bekommt den Fokus zurück - jetzt vollständig selektiert und man überschreibt die bisherige Eingabe und alles beginnt von vorn
Originelle Foltermethode, die man nur mit 'nem Sekretärinnenkurs übersteht
Zusätzlich folgender ImportC:und folgende Routine bei Programmstart müßte dieses Problem beseitigen:
Gruß, Charly
folgende Linux-Unzulänglichkeit könnte einem ebenfalls unterkommen:
Manche Installationen selektieren bei Erhalt des Fokus in StringGadget/GtkEntry (SetActiveGadget(Gadget)) den gesamten Text per default.
Ist man bei Eingaben zu langsam, bekommt das Demo-Window den Fokus, wird upgedatet und das vorherige Eingabefeld bekommt den Fokus zurück - jetzt vollständig selektiert und man überschreibt die bisherige Eingabe und alles beginnt von vorn
Originelle Foltermethode, die man nur mit 'nem Sekretärinnenkurs übersteht
Zusätzlich folgender ImportC:
Code: Alles auswählen
g_object_set(*object.GObject, property_name.p-utf8, *data, value= 0)
Code: Alles auswählen
CompilerIf #PB_Compiler_OS = #PB_OS_Linux
g_object_set(gtk_settings_get_default_(), "gtk-entry-select-on-focus", #False)
CompilerEndIf
PureBasic Linux-API-Library: http://www.chabba.de
- HeX0R
- Beiträge: 2959
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: DialogDesign0R V1.02
Na toll, das Linux wird langsam anstrengend...
So, ich habe jetzt:
1.) Kiffis Fehler beseitigt (musste die ganze BuildUpTree() Prozedur neu machen, aber eigentlich nur, weil ich die glaube ich im Vollsuff erstellt hatte...)
2.) RSBasics Windows API eingebaut
3.) Omis letzte Erweiterung eingebaut
4.) Die Menüs etwas anders angeordnet, jetzt sieht man gleich, welcher Container nur ein Element beinhaltet
5.) Fehlendes "Page"-Attribut hinzugefügt
6.) Fehlende Attribute der ScrollArea eingebaut.
7.) Windows-Pos und Slider-Pos werden nun gespeichert für den nächsten Start.
So, ich habe ziemlich viel verändert, wahrscheinlich auch ziemlich viele neue Bugs platziert
Was das SplitterGadget betrifft:
Ich weiss, dass es suboptimal aussieht, aber mal ehrlich: Wie oft muss man den denn verschieben?
Ich lasse das alles mal so, vielleicht haben wir ja in PB 12.7 dann ein flickerfreies SplitterGadget...
So, ich habe jetzt:
1.) Kiffis Fehler beseitigt (musste die ganze BuildUpTree() Prozedur neu machen, aber eigentlich nur, weil ich die glaube ich im Vollsuff erstellt hatte...)
2.) RSBasics Windows API eingebaut
3.) Omis letzte Erweiterung eingebaut
4.) Die Menüs etwas anders angeordnet, jetzt sieht man gleich, welcher Container nur ein Element beinhaltet
5.) Fehlendes "Page"-Attribut hinzugefügt
6.) Fehlende Attribute der ScrollArea eingebaut.
7.) Windows-Pos und Slider-Pos werden nun gespeichert für den nächsten Start.
So, ich habe ziemlich viel verändert, wahrscheinlich auch ziemlich viele neue Bugs platziert
Was das SplitterGadget betrifft:
Ich weiss, dass es suboptimal aussieht, aber mal ehrlich: Wie oft muss man den denn verschieben?
Ich lasse das alles mal so, vielleicht haben wir ja in PB 12.7 dann ein flickerfreies SplitterGadget...
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: DialogDesign0R V1.02
Kein Problem, ich war nur neugierig...Was das SplitterGadget betrifft:
Ich weiss, dass es suboptimal aussieht, aber mal ehrlich: Wie oft muss man den denn verschieben?
Ich lasse das alles mal so, vielleicht haben wir ja in PB 12.7 dann ein flickerfreies SplitterGadget...
Könntest du mir bitte einen Gefallen tun und beim Programmstart checken ob die settings.prefs bereits
im aktuellen Verzeichnis der .exe Datei liegt und diese dann von dort aus einlesen (und natürlich unter
%APPDATA% kein Verzeichnis erstellen)? Wenn du möchtest mit dem zusätzlichen check, ob das
aktuelle Verzeichnis UAC protected ist und die .exe nicht mit Adminrechten gestartet wurde. Dann müsste
eine geänderte .prefs Datei natürlich unter %APPDATA% abgelegt werden. Stichwort Portabilität...
- HeX0R
- Beiträge: 2959
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: DialogDesign0R V1.02
Erledigt.
Starte einmalig mit /portable
Starte einmalig mit /portable
Langsamtipper können übrigens auch #Update_Interval erhöhen.Omi hat geschrieben:Ist man bei Eingaben zu langsam, bekommt das Demo-Window den Fokus, wird upgedatet und das vorherige Eingabefeld bekommt den Fokus zurück - jetzt vollständig selektiert und man überschreibt die bisherige Eingabe und alles beginnt von vorn
Originelle Foltermethode, die man nur mit 'nem Sekretärinnenkurs übersteht
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}