Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
19. Mai 2015
Eigentlich habe ich dir im #4 Post schon den richtigen Denkanstoß gegeben:
Ich hab mich zwar nicht so deutlich ausgedrückt, aber ich dachte damit wäre das klar.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
18. Mai 2015
Also, wenn ich mir was auf den Canvas zeichnen möchte, was dann aber nicht so da ankommt, wie ich es gerne hätte, dann schreibe ich mir einfach alle Werte, die ich im OnPaint verwende, in eine Textdatei, die ich hinterher auslese. Letztlich kannst du natürlich alles auch Schrittweise durchgehen, aber mir persönlich geht dann gerne die Übersicht verloren. (Vor allem, weil das OnPaint immer wieder...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
18. Mai 2015
Okay, ist aber egal.
Alles, was du auf dem Canvas machen möchtest, gehört in das OnPaint-Ereignis der Komponente, auf deren Canvas du zeichnen möchtest.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
18. Mai 2015
Der Canvas speichert nichts. Heißt, immer wenn das Control angezeigt wird, wird das Ereignis OnPaint aufgerufen, damit du dann alles zeichnen kannst, was notwendig ist. Wird z.B. die Form durch ein anderes Fenster verdeckt, und dann verdeckte Bereiche durch Verschieben der verdeckenden Form wieder sichbar gemacht, wird erneut das OnPaint aufgerufen.
Probiers mal aus, dass du deine...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
18. Mai 2015
Worauf willst du denn jetzt Zeichnen?
Wenn du direkt auf der Form zeichnen willst, dann solltest du in
procedure TForm1.OnPaint(Sender: TObject);
begin
HixHistograph1.DrawMeasureValue(ReadInArray);
end;
zeichnen.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
18. Mai 2015
Worauf zeichnest du? Du solltest deinen Canvas im OnPaint des gewünschten Controls zeichnen, sonst wird das nix.
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
by Captnemo,
18. Mai 2015
Diese Zeile kommt mir merkwürdig vor.
Canvas.LineTo(FGapLeft * round(Range / length(ReadInArray)), round(ReadInArray));
Ich gehe mal davon aus, dass du die Werte gleichmäßig auf der X-Achse verteilen möchtest.
Wäre es da nicht besser so
Canvas.LineTo(FGapLeft + round(Range / length(ReadInArray)*i), round(ReadInArray));