Messagecomposer
-
- Beiträge: 94
- Registriert: So 5. Nov 2006, 18:40
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Berlin
Messagecomposer
Hallo,
ist euch eigentlich aufgefallen das es seit kurzem ein neues Feature im svn gibt ?
Den Messagecomposer findet ihr unter components.
Mit ihm kann man mit STRG+M Messages (ShowMessage, MessageDlg, Inputbox etc) über eine Maske anlegen und auch schon entsprechenden Code erzeugen lassen, wie if then else oder case ...
Ein sehr praktisches Tool, wie ich finde.
Da es wohl noch Probleme mit der Darstellung unter GTK2 gibt, wird er noch nicht standartmäßig in die IDE integriert.
bis dann Daniel
ist euch eigentlich aufgefallen das es seit kurzem ein neues Feature im svn gibt ?
Den Messagecomposer findet ihr unter components.
Mit ihm kann man mit STRG+M Messages (ShowMessage, MessageDlg, Inputbox etc) über eine Maske anlegen und auch schon entsprechenden Code erzeugen lassen, wie if then else oder case ...
Ein sehr praktisches Tool, wie ich finde.
Da es wohl noch Probleme mit der Darstellung unter GTK2 gibt, wird er noch nicht standartmäßig in die IDE integriert.
bis dann Daniel
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich hatte aber in meinen letzten versuchen auch einige Probleme mit GTK2 z.b. meine ich die Paintbox hat sich anders verhalten.(Wie genau weiß ich nicht mehr) und auch noch andere kleine Probleme. Darum nutzte ich auch nur GTK1. Würde aber wenn es laufen würde auch QT nehmen weil es dort einfach mehr Komponenten gibt z.b. im QT-Desinger. Dann könnte dort noch mehr Komponenten erstellt werden die dann halt auf QT Basieren und somit leider nicht mehr Plattformunhabnig sind/währen. Allerdings weiß ich nicht ob man das rechtlich darf und in wie weit das überhaupt geht. Aber es währe Interessant.
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 351
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Messagecomposer
Hallo,
ich bin auf der Suche nach einer Möglichkeit die Größe einer InputBox zu beeinflussen. Ich finde sie für die Eingabe einer Zahl von 5 bis 7 Stellen einschl. Komma und Nachkomma auf meinem Schirm zu breit.
Da bin ich auf den Messagecomposer gestoßen. Aber leider gelingt hier die Größenvorgabe nicht mit.
Geht das überhaupt?
Danke und viele Grüße
Volker
ich bin auf der Suche nach einer Möglichkeit die Größe einer InputBox zu beeinflussen. Ich finde sie für die Eingabe einer Zahl von 5 bis 7 Stellen einschl. Komma und Nachkomma auf meinem Schirm zu breit.
Da bin ich auf den Messagecomposer gestoßen. Aber leider gelingt hier die Größenvorgabe nicht mit.
Geht das überhaupt?
Danke und viele Grüße
Volker
Re:
Doch, aber ich glaube nicht, dass man das auf GTK2 schieben kann.knight hat geschrieben:Ich habe mit GTK2 keine Probleme feststellen können.Da es wohl noch Probleme mit der Darstellung unter GTK2 gibt,
Der Dialog ist im Ggs. zu anderen nicht in der Grösse verstellbar und skaliert schlecht (bzw. nicht) z.B. bei größeren Fonts/Themes.
Re: Messagecomposer
Ich habe das Layout überarbeitet, der MessageComposer in Trunk sollte nun besser skalieren und kann auch in der Breite verändert werden.
Re: Messagecomposer
Danke!wp_xyz hat geschrieben:Ich habe das Layout überarbeitet, der MessageComposer in Trunk sollte nun besser skalieren und kann auch in der Breite verändert werden.
Aber eben nur in der Breite.
Die Überlappungen bei "Source Wrapper" bleiben (siehe Bild oben).
Re: Messagecomposer
Oh, ich hatte die "begin...end" Checkbox gar nicht gesehen, weil sie offenbar völlig überdeckt war. Müsste jetzt stimmen. Ich habe auch sämtliche Constraints rausgenommen: wenn es auf Windows passt, dann aber nicht mehr auf Linux.
Re: Messagecomposer
Mit dem MessageComposer kann man das nicht machen, das ist ein Tool, wenn man die Parameter für die diversen Eingabedialoge interaktiv ausprobieren möchte, ohne jeweils das Programm neu kompilieren zu müssen.ErnstVolker hat geschrieben:ich bin auf der Suche nach einer Möglichkeit die Größe einer InputBox zu beeinflussen. Ich finde sie für die Eingabe einer Zahl von 5 bis 7 Stellen einschl. Komma und Nachkomma auf meinem Schirm zu breit.
Da bin ich auf den Messagecomposer gestoßen. Aber leider gelingt hier die Größenvorgabe nicht mit.
Geht das überhaupt?
In der Unit Dialogs bin ich aber auf die Funktion
Code: Alles auswählen
function DefaultInputDialog(const InputCaption, InputPrompt : String; MaskInput : Boolean; var Value : String) : Boolean;
Code: Alles auswählen
MinEditWidth := Min(AMonitor.Width - 20, Max(Scale96ToScreen(cInputQueryEditSizePixels), AMonitor.Width * cInputQueryEditSizePercents div 100));
Code: Alles auswählen
const
cInputQueryEditSizePixels: integer = 260; // Edit size in pixels
cInputQueryEditSizePercents: integer = 25; // Edit size in % of monitor width
Code: Alles auswählen
procedure TForm1.Button1Click(Sender: TObject);
var
s: String = '';
begin
cInputQueryEditSizePercents := 0;
cInputQueryEditSizePixels := 300;
if DefaultInputDialog('Caption', 'Prompt', false, s) then
ShowMessage('Eingabe: ' + s);
end;
Re: Messagecomposer
Ja, jetzt läuft das Ding tip-top, auch auf GTK2.wp_xyz hat geschrieben:Oh, ich hatte die "begin...end" Checkbox gar nicht gesehen, weil sie offenbar völlig überdeckt war. Müsste jetzt stimmen. Ich habe auch sämtliche Constraints rausgenommen: wenn es auf Windows passt, dann aber nicht mehr auf Linux.
Danke!
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Messagecomposer
Wie können Konstanten angepasst werden und quasi als Variablen verwendet werden? Das verstehe ich jetzt nicht so ganz...Die Werte sind als initialisierte "Konstanten" öffentlich deklariert und können somit vom Programm angepasst werden:
MFG
Michael Springwald
Michael Springwald
Re: Messagecomposer
Das gedanklich widersprüchliche Konzept mit den "typisierten Konstanten" (ich hatte oben "initialisierte" geschrieben - sorry), die eigentlich initialiserte Variable sind, gibt es seit Urzeiten in der Sprache Pascal (https://www.freepascal.org/docs-html/ref/refse10.html).
Ob man die "Konstante" wirklich ändern kann, wird durch die Direktive $WriteableConst (oder $J) bestimmt (https://wiki.freepascal.org/sWritableconst/de), die aber standardmäßig aktiv ist. Mein Tipp funktioniert also nur in diesem Standard-Modus!
Es wäre zu überlegen, ob man nicht die Deklaration der beiden Werte auf "var" ändern sollte, um von der Compilereinstellung (und dem gedanklichen Widerspruch) wegzukommen.
Ob man die "Konstante" wirklich ändern kann, wird durch die Direktive $WriteableConst (oder $J) bestimmt (https://wiki.freepascal.org/sWritableconst/de), die aber standardmäßig aktiv ist. Mein Tipp funktioniert also nur in diesem Standard-Modus!
Es wäre zu überlegen, ob man nicht die Deklaration der beiden Werte auf "var" ändern sollte, um von der Compilereinstellung (und dem gedanklichen Widerspruch) wegzukommen.
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Re: Messagecomposer
Aus meiner Sicht, ist das keine "Saubere" Programmierung...wp_xyz hat geschrieben:Das gedanklich widersprüchliche Konzept mit den "typisierten Konstanten" (ich hatte oben "initialisierte" geschrieben - sorry), die eigentlich initialiserte Variable sind, gibt es seit Urzeiten in der Sprache Pascal (https://www.freepascal.org/docs-html/ref/refse10.html).
Aber gut zu wissen, dass es so ein Verhalten überhaupt gibt, ich dachte Konstanten heißen Konstanten weil man sie eben NICHT verändern kann.wp_xyz hat geschrieben:Ob man die "Konstante" wirklich ändern kann, wird durch die Direktive $WriteableConst (oder $J) bestimmt (https://wiki.freepascal.org/sWritableconst/de), die aber standardmäßig aktiv ist. Mein Tipp funktioniert also nur in diesem Standard-Modus!
Du hast aber schon oben geschrieben, dass es ein "widersprüchliche Konzept" ist.
Ist schon lustig(oder eher traurig? ), dass man an so alte Sachen fest hält...Die Unterstützung für die Zuweisung von Werten an typisierte Konstanten wird durch die Direktive {$J} gesteuert: Sie kann ausgeschaltet werden, ist aber standardmäßig eingeschaltet (für Turbo Pascal-Kompatibilität). Initialisierte Variablen sind immer erlaubt.
MFG
Michael Springwald
Michael Springwald