Dynamischer Dialog mit Browse

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
JanR
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 129
Registriert: Di, 18. Okt 2005 14:44

Dynamischer Dialog mit Browse

Beitrag von JanR »

Hallo,

ich habe einen Dialog, wo man die Grösse jederzeit ändern kann. Darin befindet sich ein Browse. Ich will dass, wenn die Grösse des Dialoges geändert wird, der Browse sich an die Dialoggrösse anpasst, also immer die volle Dialoggrösse verwendet. Wie geht das?
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Dynamischer Dialog mit Browse

Beitrag von AUGE_OHR »

hi,
JanR hat geschrieben: ich habe einen Dialog, wo man die Grösse jederzeit ändern kann. Darin befindet sich ein Browse. Ich will dass, wenn die Grösse des Dialoges geändert wird, der Browse sich an die Dialoggrösse anpasst, also immer die volle Dialoggrösse verwendet. Wie geht das?
dazu brauchst du ein

Code: Alles auswählen

oDlg:resize := {|aOldSize, aNewSize, self| myReSize(aOldSize, aNewSize,oDlg) }
in "FUNCTION myReSize" sollte du als erstes vergleichen ob sich was
in der Grösse überhaupt geändert hat, dann dieDifferenz berechnen
und die neue Grösse per "o:SetSize(mySize)" setzten. Zu Schluss ein
"o:invalideRec" nicht vergessen.

Da du "nur" 1 Child hast und der das ganze "Fenster" einnimmt must
du nicht viel "berechnen" sondern kannst oDlg:drawingArea:currentSize()
nehmen

gruss by OHR
Jimmy
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Jan,

zuerst mußt Du die Dialoggröße feststellen. Das ist ganz einfach mit :currentSize().

Dadrauf die Höhe des Browses einzustellen ist ja ganz einfach, Du kannst den Wert aus der Dialoggröße übernehmen, abzüglich irgendwelcher von Dir gewünschten Ränder, Hinweise, Titelzeilen, etc.

In der Breite ist das schon schwieriger. Ich mache das immer so, daß ich eine Breite von 100% annehme, jeder Spalte einen bestimmten Prozentsatz "zuweise", und dann aus der Dialoggröße diesen Prozentsatz herausrechne und in der Spaltenbreite des Browses eintrage. Dabei musst Du die Breite aller bislang erzeugten Spalten mitführen, um den Startpunkt der nächsten Spalte zu erhalten.

Jan
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

ööhm, sehe ich das hier richtig? 4x der gleiche Beitrag von Jan? Aha, so hast Du es also vor....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
keine Sorge, bin schon am Aufräumen!
Ist sicherlich nur wegen der guten Performance...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hey Manfred,

nicht alle machen das so plump wie Du 8) Ich rede mich jetzt ganz elegant mit dem blöden Server raus, der einfach immer einen Fehler 500 rausgegeben hat, und dann habe ich eben einfach nur auf F5 Aktualisieren gedrückt.

Aber im Ernst: Wenn einer der der Moderaten da vielleicht ein wenig löschend tätig werden könnte? Vielen Dank.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
ist bereits geschehen!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Jan,

vergiss mal meine Antwort. Ich habe überlesen, daß Du den Dialog in der Größe dynamisch verändern möchtest. Jimmy hat das schon richtig erkannt.

*Schande über mein Haupt*

Jan
JanR
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 129
Registriert: Di, 18. Okt 2005 14:44

Beitrag von JanR »

Vielen Dank Jimmy und Jan.

Hat prima geklappt und ich bin jetzt ein wenig schlauer. grins.


Viele Grüsse,
Jan
Antworten