Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi verwechselt Paintboxen ? (https://www.delphipraxis.net/165279-delphi-verwechselt-paintboxen.html)

Vukloc 21. Dez 2011 14:35

Delphi verwechselt Paintboxen ?
 
So da bin ich mal wieder mit einem Problem, und weis mir nicht mehr zu helfen.

Ich habe hier ein kleines Projekt mit mehreren PaintBoxen, welche ich im OnResize prozentual ausrichte (Top,Left, Width und Height), das ist ja alles wunderbar.

Delphi-Quellcode:
  With PaintBox2 do //Anpassung PaintBox2 an Fenstergröße
  Begin
    Top := 13;
    Left := 2;
    Height := GroupBox4.Height - 15;
    Width := GroupBox4.Width - RadioGroup3.Width - 2;
  end;

  With PaintBox3 do //Anpassung PaintBox3 an Fenstergröße
  Begin
    Top := 13;
    Left := 2;
    Height := GroupBox5.Height - 15;
    Width := GroupBox5.Width - RadioGroup5.Width - 2;
  end;
Nun wollte ich testen ob die Ausrichtung auch passt, dazu habe ich mir im OnPaint einfach die PaintBoxen mit einem Rectangle und verschiedenen Farben ausmalen gelassen.

Delphi-Quellcode:
  PaintBox2.Canvas.Brush.Color := clred;
  PaintBox2.Canvas.Rectangle(0,0,PaintBox2.Width,PaintBox2.Height);

  PaintBox3.Canvas.Brush.Color := clyellow;
  PaintBox3.Canvas.Rectangle(0,0,PaintBox3.Width,PaintBox3.Height);
Nun habe ich folgendes Problem meine PaintBox2 wird in gelb ausgefüllt, und meine PaintBox3 in rot, woran könnte das liegen ?

Ich habe weder die Namen der PaintBoxen verändert noch sonst etwas, auch habe ich die PaintBoxen + Delphicode gelöscht, und neu platziert und eingetippt. Jedoch bleibt dieses Problem bestehen. Das ganze Problem habe ich noch bei 2 weiteren PaintBoxen, bei den anderen PaintBoxen passt das so.

Ergo 4 PaintBoxen sind in Ordnung, und die anderen 4 sind vertauscht, wobei die vertauschten jeweils in einer GroupBox liegen, welche wiederrum zusammen in einer (Haupt)GroupBox liegen.

Vielen Dank für eure Hilfe.

himitsu 21. Dez 2011 15:19

AW: Delphi verwechselt Paintboxen ?
 
Schreib mal ins OnPaint der PaintBoxen
Delphi-Quellcode:
procedure TForm6.PaintBox1Paint(Sender: TObject);
begin
  TPaintBox(Sender).Canvas.TextOut(0, 0, TPaintBox(Sender).Name);
end;
Kanst auch beiden Boxen das selbe Ereignis zuweisen.

Vukloc 21. Dez 2011 16:16

AW: Delphi verwechselt Paintboxen ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habe ich gerade eben gemacht..

Delphi-Quellcode:
procedure TForm1.PaintBox3Paint(Sender: TObject);
begin
  TPaintBox(Sender).Canvas.TextOut(0, 0, TPaintBox(Sender).Name);
end;
Da steht dann auch PaintBox3, das stimmt..aber laut der Form und dem angegebenen Ort ist es die PaintBox2...bin am verzweifeln...

Ich habe das ganze einfach mal hochgeladen vielleicht kann ja mal jemand drüberschauen

himitsu 21. Dez 2011 16:29

AW: Delphi verwechselt Paintboxen ?
 
Wenn PaintBox3 da steht, dann ist es auch die PaintBox3.

Da wirst du dann wohl eher ein problem mit der Positionierung der Komponenten haben.




Bin jetzt noch arbeiten ... später vielleicht.

DeddyH 21. Dez 2011 16:36

AW: Delphi verwechselt Paintboxen ?
 
Schau Dir mal die Beschriftungen Deiner GroupBoxen genau an: GroupBox 4 und 5 tauschen nämlich die Plätze.

[edit] Da die inneren GroupBoxen alTop ausgerichtet sind, lass mal das Setzen von Top weg und zeichne die PaintBoxen in deren eigenem OnPaint-Ereignis. [/edit]

Vukloc 21. Dez 2011 16:57

AW: Delphi verwechselt Paintboxen ?
 
@All
Vielen dank, hab garnicht dran gedacht das die GroupBoxen falsch sitzen, das habe ich doch total übersehen...den Wald vor lauter Bäumen nicht gesehen...jetzt gehe ich mich erstmal in die Ecke schämen


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:05 Uhr.

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