Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Paintbox- Text schreiben (https://www.delphipraxis.net/155716-paintbox-text-schreiben.html)

Dunkelbunt27 4. Nov 2010 18:19

Paintbox- Text schreiben
 
Hallo Delphi Praxis,

ich möchte Text auf meine Paintbox schreiben. Die Paintbox wird zur Laufzeit erzeugt und weiß gefärbt.
Ich habe
Delphi-Quellcode:
var
Schrift: String;
Begin
  PaintBox1.Canvas.Textout(0,0,Schrift);
  Schrift:='Hallo Welt';
end;
ausprobiert, jedoch passiert garnichts...
Jemand hat mir gesagt ich soll irgendwie den Text der Paintbox erst zuweisen :shock:
Damit kann ich jetzt leider nichts anfangen.
Ich hoffe ihr könnt mir helfen.

VG Dunkelbunt

DeddyH 4. Nov 2010 18:20

AW: Paintbox- Text schreiben
 
Tausch doch die beiden Befehle einmal aus (erst zuweisen, dann malen).

Muellermilchtrinker 4. Nov 2010 18:21

AW: Paintbox- Text schreiben
 
Drehs mal um. Also erst Schrift := 'Hallo Welt' und dann deine Canvasfunktion
EDIT: Roter Kasten ist weg, da war jmd. schneller. ;)

Dunkelbunt27 4. Nov 2010 18:24

AW: Paintbox- Text schreiben
 
Delphi-Quellcode:
var
Schrift: String;
Begin
  Schrift:='Hallo Welt';
  PaintBox1.Canvas.Textout(0,0,Schrift);
end;
Ergebnis: Überraschenderweise... Nichts...

PS: Das hatte ich vorher auch schoneinmal probiert. Ich werd es aber umgedreht lassen also:
Delphi-Quellcode:
var
Schrift: String;
Begin
  Schrift:='Hallo Welt';
  PaintBox1.Canvas.Textout(0,0,Schrift);
end;
ist logischer. Leider trotzdem nicht die Lösung.

EDIT:
So sieht jetzt die Prozedur aus:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var Schrift: string;
begin
// Paintbox erstellen
PaintBox1:=TPaintbox.Create(self);
PaintBox1.Parent:=Schreibblatt;
// Paintbox weiß färben
Form1.Panel1.Color := clwhite;
// Schreibversuch
Schrift:= 'Hallo Welt';
Form1.PaintBox1.canvas.TextOut(10,10,Schrift);
end;

shmia 4. Nov 2010 18:30

AW: Paintbox- Text schreiben
 
Liste der Anhänge anzeigen (Anzahl: 1)
Auf die Paintbox darf man nur aus dem Event OnPaint heraus zeichnen!!

Im Anhang ist mein Paintbox-Demo.
Ich denke es ist gut geeignet um die Paintbox kennenzulernen.

Dunkelbunt27 4. Nov 2010 18:34

AW: Paintbox- Text schreiben
 
Okay, ich habe es im OnPaint der Form und im OnPaint der Paintbox selber versucht
... wieder nichts

EDIT:
Könnte es vielleicht sein, dass mein Panel aus irgendeinem Grund die Paintbox überdeckt?
(Panel ist nach hinten und Paintbox nach vorne gesetzt)

shmia 4. Nov 2010 18:37

AW: Paintbox- Text schreiben
 
Zitat:

Zitat von Dunkelbunt27 (Beitrag 1059724)
und im OnPaint der Paintbox selber versucht

Das wäre das richtige Event.
Schau Dir mal mein Demo von oben an.

Dunkelbunt27 4. Nov 2010 18:42

AW: Paintbox- Text schreiben
 
Danke, ich schau mir die Demo an und melde mich dann wieder, ich hoffe das klärt die Frage.



__________________________________________________ _________________________________
(Auf Seite 2 gehts weiter)

jfheins 4. Nov 2010 18:55

AW: Paintbox- Text schreiben
 
Zitat:

Zitat von Dunkelbunt27 (Beitrag 1059724)
EDIT:
Könnte es vielleicht sein, dass mein Panel aus irgendeinem Grund die Paintbox überdeckt?
(Panel ist nach hinten und Paintbox nach vorne gesetzt)

Ja, exakt das ist der Fall.

TPaintBox ist ein TGraphicControl und TPanel ist ein TWinControl. TWinControls verdecken immer alle TGraphicControls auf der gleichen Ebene. (Du kannst die Paintbox natürlich in das Panel hineinschieben, aber das ist was anderes)

Also nimm das Panel da weg ;)

Medium 4. Nov 2010 19:00

AW: Paintbox- Text schreiben
 
Wenn der Parent der Paintbox nicht das Panel, sondern die gemeinsame Form ist, verdeckt es sie. Forms und Panels sind WinControls, welche einen eignen Canvas haben, während TPaintbox ein GraphicControl ist, welches nur auf den Canvas seines Parents durchleitet.
Wenn also die Form der Parent ist, malst du auf die Form an der Stelle, an der das Panel mit seinem eigenen Canvas darüber liegt. Lösung: Parent der Paintbox sollte das Panel sein, nur sehr wahrscheinlich nicht "Schreibblatt", was auch immer das ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz