Autor Beitrag
nullplan001
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
BeitragVerfasst: Sa 06.05.06 12:32 
Hi all,
ich hab da mal eine Frage. Und zwar sieht mein WinForms-Projekt momentan sch...lecht aus (ich benutze RemObjectsSoftware Chrome Commandline Edition). Ich wollte das ganze etwas verschönern, indem ich dem Formular an sich einen Clickhandler zuweise, der einfach nur eine MessageBox mit den Mauskoordinaten (relativ zum Formular, nicht absolut auf dem Bildschirm) ausgibt. Mein Problem: Die Klasse EventArgs hat keine Member, die irgendwas in die Richtung machen könnten. Ein Clickhandler hat noch einen zweiten Parameter, der mir aber ledigilich als o:object vorgestellt wurde. Kann ich das Problem irgendwie lösen, ohne mir Visual Studio besorgen zu müssen? Da könnte ich dann die Formularobjekte so ziehen, wie ich sie haben will. Mein Code bis jetzt, was den Style angeht:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
{...}
interface
{...}
type MainForm = class(Form)
  lLeft : Label;
  lRight : Label;
  lErg : Label;
  tbN : TextBox;
  tbK : TextBox;
  tbErg : TextBox;
  bCalc : Button;
  bExit : Button;
  constructor
  method bCalc_Click(o:object; e:EventArgs);
  method bExit_Click(o:object; e:EventArgs);
end;
{...}
implementation
constructor MainForm;
begin
  lLeft := new Label;
  lRight := new Label;
  lErg := new Label;
  tbN := new TextBox;
  tbK := new TextBox;
  tbErg := new TextBox;
  bCalc := new Button;
  bExit := new Button;

  lLeft.UseMnemonic := false;
  lLeft.Text := '(';
  lLeft.Location := new Point(30,30);
  lLeft.ForeColor := Color.Black;
  lLeft.BorderStyle := BorderStyle.None;
  lLeft.Size := new Size( 10,20);

  lRight.UseMnemonic := false;
  lRight.Text := ')';
  lRight.Location := new Point(90,30);
  lRight.ForeColor := Color.Black;
  lRight.BorderStyle := BorderStyle.None;
  lRight.Size := new Size(10,20);

  lErg.UseMnemonic := false;
  lErg.Text := '=';
  lErg.Location := new Point(65,35);
  lErg.foreColor := Color.White;
  lErg.Size := new Size(10,10);

  tbN.Text := '';
  tbN.AllowDrop := false;
  tbN.Location := new Point(33,25);
  tbN.Size := new Size(20,84);
  tbN.BorderStyle := BorderStyle.Fixed3D;
  tbN.BackColor := Color.White;
  tbN.ForeColor := Color.Black;
  tbN.MaxLength := 0;

  tbK.Text := '';
  tbK.AllowDrop := false;
  tbK.Location := new Point( 33,55);
  tbK.Size := new Size(20,84);
  tbK.BorderStyle := BorderStyle.Fixed3D;
  tbK.Backcolor := Color.White;
  tbK.ForeColor := Color.Black;
  tbK.MaxLength := 0;
  tbErg.Text := '';
  tbErg.AllowDrop := false;
  tbErg.MaxLength := 0;
  tbErg.Location := new Point(70,32);
  tbErg.Size := new Size(5,24);

  bCalc.Text := '&Berechnen';
  bCalc.Location := new Point(45,45);
  bCalc.Size := new Size(50,20);

  bExit.Text := 'Be&enden';
  bExit.Location := new Point(100,100);
  bExit.Size := new Size(50,20);

  Text := 'Binomialkoeffizient';
  StartPosition := FormStartPosition.CenterScreen;
  ClientSize := new Size(500,500);
  AutoScroll := true;
  MaximizeBox := false;

  Controls.Add(lLeft);
  Controls.Add(lRight);
  Controls.Add(lErg);
  Controls.Add(tbN);
  Controls.Add(tbK);
  Controls.Add(tbErg);
  Controls.Add(bCalc);
  Controls.Add(bExit);

  bCalc.Click += new EventHandler(bCalc_Click);
  bExit.Click += new Eventhandler(bExit_Click);
end;

bCalc_Click berechnet das Egebnis und schreibt es in tbErg rein. Die Main dürfte klar und einzeilig sein (Application.Run(new MainForm);). Letztendlich soll das mal eine Berechnung für den Binomialkoeffizienten sein. Dazu brauch ich zwei übergroße runde Klammern links und rechts zweier Eingabefelder, die wiederum übereinander stehen. Dahinter ein = und noch eine textBox, in die das Ergebnis kommt. Momentan sehe ich nur Murks. Siehe Anhang. Thx in advance.
Tschö,
nullplan
P.S. Ich habe mal nachgeguckt: Die Klasse Object beherbergt auch nichts mit Koordinaten, Maus oder sowas. Und noch was: Von Mousehandlern habe ich absolut 0 Plan. Wüsste nicht, wie ich ihn in einen Clickhandlern einbauen sollte. Mal ganz abgesehen davon, das der eigentlich auch nur ein Object und ein EventArgs kriegt, wo auch bloß nichts über die Mauskoordinaten drinsteht.
Einloggen, um Attachments anzusehen!
_________________
Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Sa 06.05.06 14:31 
Sagmal... was isn das für eine seltsame Mischung von C# und Delphi?

AXMD
nullplan001 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 212

Win 2000 Professional, Debian Linux 4.0 (Etch,Stable)
Pascal (FreePascal 2.0.2, TurboPascal 7.0), C(++) (G++/GCC 3.4.2 + MinGW), Java (JDK 1.5.0_07), PHP (PHP 5.1.4)
BeitragVerfasst: Sa 06.05.06 14:57 
Wie schon geschrieben: Das ist Chrome. Ich hab extra die Firma dazu geschrieben, weil du bei Google unter dem Stichwort Chrome 5000 Seiten zu Photoshop angezeigt bekommst. Aber mal was anderes:
Die Positionen und Größen fast aller Controls sind jetzt Korrigiert, aber den Labels kann ich Werte zuweisen, wie ich will, die Klammern wachsen einfach nicht. Kann ich irgendwo die Schriftgröße des angezeigten Textes einstellen? Wenn ich die Größe des Labels verändere, verändert sich nur der Platz, den das Ding belegt, was dann hauptsächlich grauer Hintergrund ist. Ich will aber ein größere Klammer haben. Im Anhang mein jetziges Formular (sieht schon bedeutend besser aus, oder?)
Und bevor wer fragt, wie ich den auf die Sprache gekommen bin: Wurde mir empfohlen von... TUFKAPL, aka Christian S. und zwar hier.
Tschö,
nullplan
//Edit: Hab's jetzt selbst herausgefunden. Die Größe der Klammern ist natürlich über 10000 Ecken gewunden, aber hier ist die Lösung:
ausblenden Delphi-Quelltext
1:
2:
lLeft.Font := new Font(new FontFamily('Times'), 20);
lRight.Font := new Font(new FontFamily('Times'), 20);

Das muss man natürlich erstmal rausfinden.
Einloggen, um Attachments anzusehen!
_________________
Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe