dcpushbutton mit mehrzeiligem Text [erledigt]
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
dcpushbutton mit mehrzeiligem Text [erledigt]
Hallo,
gibt es wohl eine Möglichkeit, in einen mit express erzeugten pushbutton einen mehrzeiligen Text als Caption einzusetzen ?
Zeilenumbruch mit ; oder dergl. habe ich nicht hinbekommen.
Viele Grüße
Ewald
gibt es wohl eine Möglichkeit, in einen mit express erzeugten pushbutton einen mehrzeiligen Text als Caption einzusetzen ?
Zeilenumbruch mit ; oder dergl. habe ich nicht hinbekommen.
Viele Grüße
Ewald
Zuletzt geändert von Ewald am Sa, 30. Mai 2009 16:02, insgesamt 1-mal geändert.
-
- Rekursionen-Architekt
- Beiträge: 315
- Registriert: Mo, 16. Okt 2006 13:04
- Wohnort: Region Stuttgart
Hallo Ewald,
ich kenne Express++ nicht so genau, aber mal angenommen, dcPushbutton wäre ein XbpPushbutton in Verkleidung, ginge das so:
Die Stelle des Zeilenumbruchs kannst du aber dabei leider nicht festlegen, so weit ich weiß.
Viele Grüße,
Günter
ich kenne Express++ nicht so genau, aber mal angenommen, dcPushbutton wäre ein XbpPushbutton in Verkleidung, ginge das so:
Code: Alles auswählen
#define GWL_STYLE -16
#define BS_MULTILINE 0x00002000
nStyle := GetWindowLongA( oBtn:getHWND(), GWL_STYLE )
SetWindowLongA( oBtn:getHWND(), GWL_STYLE, bOr( nStyle, BS_MULTILINE ) )
DLLFUNCTION GetWindowLongA( hwnd, nIndex ) USING STDCALL FROM user32.dll
DLLFUNCTION SetWindowLongA( hwnd, nIndex, nValue ) USING STDCALL FROM user32.dll
Viele Grüße,
Günter
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo Günter,
danke für deinen Vorschlag. Der ist nur fast genau so lang wie die kpl. Anwendung, die ich mit express++ erstellt habe Die Frage geht also nochmals in die Runde der express++ Anwender. Ich kann mit einem 2zeiler einen pushbutton beliebiger Grösse erstellen. Es kann doch irgendwie nicht sein, das ich da nur einen einzeiligen Text reinschreiben - oder. Fast die gleiche Problemstellung hatte ich grade beim DCBROWSE, wo ich die Spaltenüberschriften mit einem ; umbrechen kann und mehrzeilig darstellen kann.
Gruß
Ewald
danke für deinen Vorschlag. Der ist nur fast genau so lang wie die kpl. Anwendung, die ich mit express++ erstellt habe Die Frage geht also nochmals in die Runde der express++ Anwender. Ich kann mit einem 2zeiler einen pushbutton beliebiger Grösse erstellen. Es kann doch irgendwie nicht sein, das ich da nur einen einzeiligen Text reinschreiben - oder. Fast die gleiche Problemstellung hatte ich grade beim DCBROWSE, wo ich die Spaltenüberschriften mit einem ; umbrechen kann und mehrzeilig darstellen kann.
Gruß
Ewald
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
Deshalb muss man seine "Erweiterungen" dazufügen indem man
seine eigene "Class" schreibt welche vom "original" (hier XbpPushbutton)
abgeleitet wird.
Die "müsste" Roger auch in Express++ gemacht haben (bin kein User)
denn man kann doch sicherlich auch "Bild & Text" auf eine DC-Button
machen ? Damit "müsste" Roger auch eine XbpStatic in seiner "Class"
haben wo man einen Text- Umbruch machen kann.
Der "Trick" von Günter per API ist mehr für "Experten"
gruss by OHR
Jimmy
Es ist leider so das "mehrzeiler" in Windows nicht vorgesehen sind.Ewald hat geschrieben: Es kann doch irgendwie nicht sein, das ich da nur einen einzeiligen Text reinschreiben - oder. Fast die gleiche Problemstellung hatte ich grade beim DCBROWSE, wo ich die Spaltenüberschriften mit einem ; umbrechen kann und mehrzeilig darstellen kann.
Deshalb muss man seine "Erweiterungen" dazufügen indem man
seine eigene "Class" schreibt welche vom "original" (hier XbpPushbutton)
abgeleitet wird.
Die "müsste" Roger auch in Express++ gemacht haben (bin kein User)
denn man kann doch sicherlich auch "Bild & Text" auf eine DC-Button
machen ? Damit "müsste" Roger auch eine XbpStatic in seiner "Class"
haben wo man einen Text- Umbruch machen kann.
Der "Trick" von Günter per API ist mehr für "Experten"
gruss by OHR
Jimmy
DC_push button
ich hoffe die Frage richtig verstanden zu haben
ich mache es so
cText:="Zeile 1;Zeile 2;Zeile 3"
@ 0,0 DCPUSHBUTTON CAPTION cText SIZE 25,4 ;
ACTION {||l_endep(1)} ;
ALIGNCAPTION BS_MULTILINE
Grüsse aus der Schweiz
Peter
ich mache es so
cText:="Zeile 1;Zeile 2;Zeile 3"
@ 0,0 DCPUSHBUTTON CAPTION cText SIZE 25,4 ;
ACTION {||l_endep(1)} ;
ALIGNCAPTION BS_MULTILINE
Grüsse aus der Schweiz
Peter
-
- UDF-Programmierer
- Beiträge: 92
- Registriert: Di, 19. Dez 2006 19:37
- Wohnort: Düsseldorf
- Kontaktdaten:
Mehrzeiliger Button
Hallo Ewald,
@ 0,0 DCPUSHBUTTON ;
STATIC ;
ACTION {||....}, ;
OBJECT oButton1 ;
......
DCSETPARENT TO oButton1
@ 10,10 DCSAY 'Das;ist;aber;schön' ;
.....
DCSETPARENT TO
Gruß
Jürgen
@ 0,0 DCPUSHBUTTON ;
STATIC ;
ACTION {||....}, ;
OBJECT oButton1 ;
......
DCSETPARENT TO oButton1
@ 10,10 DCSAY 'Das;ist;aber;schön' ;
.....
DCSETPARENT TO
Gruß
Jürgen
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo Peter,
viele Grüße in die Schweiz. So wie in deinem Beispiel beschrieben habe ich mir das vorgestellt. Aber was fehlt mir, wenn mein System
ALIGNCAPTION BS_MULTLINE nicht kennt ? Finde ich nicht in EXPRESS++ und nicht in XBASE++
Hallo Jürgen,
dann hänge ich mal meine Frage an dich sofort mit an. Hast du dein Beispiel ausprobiert ? Funktioniert bei mir nicht. Er schreibt den Text genau so, wie er in der Variabel steht. Das ; führt nicht zum Zeilenumbruch. Liegt das wohl auch an meiner fehlenden Konstante BS_MULTILINE ?
Danke an alle
Ewald
viele Grüße in die Schweiz. So wie in deinem Beispiel beschrieben habe ich mir das vorgestellt. Aber was fehlt mir, wenn mein System
ALIGNCAPTION BS_MULTLINE nicht kennt ? Finde ich nicht in EXPRESS++ und nicht in XBASE++
Hallo Jürgen,
dann hänge ich mal meine Frage an dich sofort mit an. Hast du dein Beispiel ausprobiert ? Funktioniert bei mir nicht. Er schreibt den Text genau so, wie er in der Variabel steht. Das ; führt nicht zum Zeilenumbruch. Liegt das wohl auch an meiner fehlenden Konstante BS_MULTILINE ?
Danke an alle
Ewald
- AUGE_OHR
- Marvin
- Beiträge: 12909
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
DCADDBUTTON ;
CAPTION 'F' + Alltrim(Str(i)) + ';' + cCaption ;
PARENT oToolBar1 ;
ACCELKEY xbeK_F1 + (i-1) ;
CARGO cText ;
TOOLTIP cText ;
ACTION {|a,b,o|::hotButtonText(o)} ;
ALIGNCAPTION BS_MULTILINE
#define steht.
gruss by OHR
Jimmy
kann es sein das es DCADDBUTTON (statt DCPUSHBUTTON) heist ?Ewald hat geschrieben: Aber was fehlt mir, wenn mein System ALIGNCAPTION BS_MULTLINE
nicht kennt ? Finde ich nicht in EXPRESS++ und nicht in XBASE++
DCADDBUTTON ;
CAPTION 'F' + Alltrim(Str(i)) + ';' + cCaption ;
PARENT oToolBar1 ;
ACCELKEY xbeK_F1 + (i-1) ;
CARGO cText ;
TOOLTIP cText ;
ACTION {|a,b,o|::hotButtonText(o)} ;
ALIGNCAPTION BS_MULTILINE
sieh doch mal 6 Nachrichten zurück im Beispiel von Günter was dort alsEwald hat geschrieben: Liegt das wohl auch an meiner fehlenden Konstante BS_MULTILINE ?
#define steht.
gruss by OHR
Jimmy
-
- UDF-Programmierer
- Beiträge: 92
- Registriert: Di, 19. Dez 2006 19:37
- Wohnort: Düsseldorf
- Kontaktdaten:
Static-Buttons
Hallo Ewald,
Das geht nur mit Static-Buttons. Diese werden programmtechnisch
wie Fenster behandelt.
Es sind daher Bilder und Texte beliebig darstellbar.
Folgendes Beispiel habe ich gerade getestet:
LOCAL GetList:={}, getoptions, oButton1
@01,01 DCPUSHBUTTON ;
STATIC ;
OBJECT oButton1 ;
SIZE 15,5 ;
FOCUSCOLOR GRA_CLR_BLUE, GRA_CLR_RED
DCSETPARENT TO oButton1
@1,2 dcsay "Zeile 1"
@2,2 dcsay "Zeile 2"
@3,2 dcsay "Zeile 3"
DCSETPARENT TO
DCREAD GUI FIT
Ja, ja, Express ist nicht schlecht!
Gruß
Jürgen
Das geht nur mit Static-Buttons. Diese werden programmtechnisch
wie Fenster behandelt.
Es sind daher Bilder und Texte beliebig darstellbar.
Folgendes Beispiel habe ich gerade getestet:
LOCAL GetList:={}, getoptions, oButton1
@01,01 DCPUSHBUTTON ;
STATIC ;
OBJECT oButton1 ;
SIZE 15,5 ;
FOCUSCOLOR GRA_CLR_BLUE, GRA_CLR_RED
DCSETPARENT TO oButton1
@1,2 dcsay "Zeile 1"
@2,2 dcsay "Zeile 2"
@3,2 dcsay "Zeile 3"
DCSETPARENT TO
DCREAD GUI FIT
Ja, ja, Express ist nicht schlecht!
Gruß
Jürgen
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo Jürgen,
da warst du etwas schneller. Ich habe mal Beispiel 5 eingedampft.
ging auch. Dein letzter Versuch gefällt mir allerdings besser.
Ich kann mich deiner Meinung über EXPRESS++ nur anschließen. Es ist einfach genial gemacht. Es gibt Zeiten, da mache ich richtig "Meter" bei meinen Anwendungen. Bis es dann eben zu diesen kleinen Hakeleien kommt. Siehe oben. Kleine Ursache grosse Wirkung.
Nochmals vielen Dank an alle, das Ding hat sich dann erledigt.
Gruß
Ewald
da warst du etwas schneller. Ich habe mal Beispiel 5 eingedampft.
Code: Alles auswählen
@ 0,0 DCPUSHBUTTON ;
STATIC ;
OBJECT oButton1 ;
SIZE 9,1.5
DCSETPARENT TO oButton1
@ 3,1 DCSAY 'weiterer;Auftrag' ;
OPTIONS XBPSTATIC_TEXT_WORDBREAK ;
SAYSIZE 50,50 ;
PIXEL
DCSETPARENT TO
Ich kann mich deiner Meinung über EXPRESS++ nur anschließen. Es ist einfach genial gemacht. Es gibt Zeiten, da mache ich richtig "Meter" bei meinen Anwendungen. Bis es dann eben zu diesen kleinen Hakeleien kommt. Siehe oben. Kleine Ursache grosse Wirkung.
Nochmals vielen Dank an alle, das Ding hat sich dann erledigt.
Gruß
Ewald
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Hallo Peter,
war auch meine Vermutung, aber ich habe umgehend alle include files durchsucht und nichts dergleichen gefunden. Hast du die vielleicht selbst irgendwo definiert - Siehe Beispiel Nr. 2 von Günter. Ich habe hier die XBASE++ und Express++ Versionen 1.9.
Würdest du wohl mal einen Suchlauf durch deine include Dateien laufen lassen um festzustellen, wo das herkommt.
Gruß
Ewald
war auch meine Vermutung, aber ich habe umgehend alle include files durchsucht und nichts dergleichen gefunden. Hast du die vielleicht selbst irgendwo definiert - Siehe Beispiel Nr. 2 von Günter. Ich habe hier die XBASE++ und Express++ Versionen 1.9.
Würdest du wohl mal einen Suchlauf durch deine include Dateien laufen lassen um festzustellen, wo das herkommt.
Gruß
Ewald
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hallo,
funktioniert bei mir auch einwandfrei in eXPress++, nur verwende ich CRLF zur Trennung der Zeilen bei der Caption, und nicht ";"
Grüsse
Rudolf
funktioniert bei mir auch einwandfrei in eXPress++, nur verwende ich CRLF zur Trennung der Zeilen bei der Caption, und nicht ";"
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Ewald,
wenn dann sicherlich chr( 13 ) + chr( 10 )!
Ersteres ist ja nur "Carriage Return" (also "Wagenrücklauf") und letzteres "Linefeed" (also "Zeilenvorschub").
Viele Grüße,
Martin
wenn dann sicherlich chr( 13 ) + chr( 10 )!
Ersteres ist ja nur "Carriage Return" (also "Wagenrücklauf") und letzteres "Linefeed" (also "Zeilenvorschub").
Viele Grüße,
Martin
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.
-
- Rekursionen-Architekt
- Beiträge: 475
- Registriert: Sa, 08. Apr 2006 14:07
- Wohnort: Datteln
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
So, Hoffnung keimte erneut auf und Begeisterung stellte sich ein. Aber nur kurz...
CRLF ist in DCCGI.CH auch schon definiert mit (chr(13)+chr(10)).
Hilft mir aber nicht so recht weiter.
Die Anweisung ... caption = "Zeile1 " + CRLF + " Zeile2 " wird einzeilig ausgegeben. Die Konstante (bzw die Steuerzeichen) werden als Symbole ausgegeben. Will sagen, auf dem Button steht einzeilig
Zeile1 || Zeile2
Liegt wahrscheinlich doch an meiner uralten Express - Version (1.7).
Die Lösung mit dem Static-Button funktioniert ja und wie sagten schon die alten Griechen - never change a running ..... - oder waren es die Franzosen - egal
Nochmals danke
Ewald
CRLF ist in DCCGI.CH auch schon definiert mit (chr(13)+chr(10)).
Hilft mir aber nicht so recht weiter.
Die Anweisung ... caption = "Zeile1 " + CRLF + " Zeile2 " wird einzeilig ausgegeben. Die Konstante (bzw die Steuerzeichen) werden als Symbole ausgegeben. Will sagen, auf dem Button steht einzeilig
Zeile1 || Zeile2
Liegt wahrscheinlich doch an meiner uralten Express - Version (1.7).
Die Lösung mit dem Static-Button funktioniert ja und wie sagten schon die alten Griechen - never change a running ..... - oder waren es die Franzosen - egal
Nochmals danke
Ewald
- Rudolf
- Programmier-Gott
- Beiträge: 1418
- Registriert: Mo, 02. Jan 2006 23:03
- Wohnort: Salzburg/Österreich
- Kontaktdaten:
Hallo Ewald,
mit 1.7 gehts nicht, es rentiert sich auf alle Fälle auf die neueste Version umzusteigen. eXPress++ hat in jeder neuen Version eine Menge wirklich toller Erweiterungen.
Grüsse
Rudolf
mit 1.7 gehts nicht, es rentiert sich auf alle Fälle auf die neueste Version umzusteigen. eXPress++ hat in jeder neuen Version eine Menge wirklich toller Erweiterungen.
Grüsse
Rudolf
Rudolf Reinthaler
http://www.formcommander.net
http://www.formcommander.net