Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TButton verschwindet von sich selbst (https://www.delphipraxis.net/67569-tbutton-verschwindet-von-sich-selbst.html)

sniper_w 16. Apr 2006 21:58


TButton verschwindet von sich selbst
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich weiss jetzt nicht warum dies passiert, ist es vielleicht ein VCL Bug oder ist es mein Bug ? Wie auch immer mein TButton verschwiendet und kommt erst wieder vor wenn ich zB die Größe des Formular ändere ( via Mouse...).

Relevante Code dazu:
Delphi-Quellcode:
procedure TmainForm.UpdateColumnsWidths(TheListView: TListView);
var
  i, w: Integer;
begin
  w := TheListView.Width div TheListView.Columns.Count - 5;
  for i := 0 to TheListView.Columns.Count - 1 do
  begin
    TheListView.Column[i].Width := w;
    TheListView.Column[i].MinWidth := w;
    TheListView.Column[i].MaxWidth := w;
  end;
end;
//...
procedure TmainForm.FormResize(Sender: TObject);
begin
  UlazGroupBox.Height := Height div 2 - BottomPanel.Height;
  IzlazGroupBox.Height := UlazGroupBox.Height;
  UpdateColumnsWidths(IzlazListView);
  UpdateColumnsWidths(UlazListView);
end;

//-> weitere info IzlazListView.Align := alClient; IzlazListView.Parent := IzlazGroupBox;
//-> weitere info UlazListView.Align := alClient; UlazListView.Parent := UlazGroupBox;
//-> DAS Button -> StanjeButton.Parent := BottomPanel;
// alle andere Properties sind unverändert
Danke.

EDIT:
Das Fehler kann man reproduzieren indem man "Maximize" und dann wieder "Restore" klikt.

faux 16. Apr 2006 22:14

Re: TButton verschwindet von sich selbst
 
Hallo!

Hast du ev. Anchors gesetzt?

EDIT: Ja, hast du, ist aber nicht das Problem.

Grüße
Faux

sniper_w 16. Apr 2006 22:17

Re: TButton verschwindet von sich selbst
 
akLeft und akTop sind auf True gestellt, wie von Delphi IDE vorgeschlagen.


EDIT:
Das Problem habe ich symptomatisch behandelt, indem ich folgendes hinzugefühgt habe:
Delphi-Quellcode:
procedure TmainForm.WndProc(var Message: TMessage);
begin
  if Message.Msg = WM_SIZE then
  begin
    case Message.WParam of
      SIZE_RESTORED:
        begin
          StanjeButton.Width := StanjeButton.Width + 1;
          StanjeButton.Width := StanjeButton.Width - 1;
        end;
    end;
  end;
  inherited;
end;
Und es klappt. Ist aber nocht nicht DIE Lösung.

Matze 16. Apr 2006 22:20

Re: TButton verschwindet von sich selbst
 
Hi

Vielleicht hilft ja ein Delphi-Referenz durchsuchenRefresh, Delphi-Referenz durchsuchenRedraw oder Delphi-Referenz durchsuchenUpdate (oder was es da nochmals alles gab). Aber erklären kann ich mir das auch nicht.

sniper_w 16. Apr 2006 22:29

Re: TButton verschwindet von sich selbst
 
Das einziege was mir hilft ist das:
Delphi-Quellcode:
procedure TmainForm.WndProc(var Message: TMessage);
begin
  inherited;
  if (Message.Msg = WM_SIZE)and(Message.WParam = SIZE_RESTORED) then
    StanjeButton.Realign;
end;
Sonst kein Update, Refresh, Invalidate....

s-off 16. Apr 2006 22:38

Re: TButton verschwindet von sich selbst
 
Hallo,

sehr merkwürdig das Ganze.
Wenn ich das Formular von unten her verkleinere, dann verschwindet das WinXP Layout, und das Fenster sieht aus wie ein Windows < XP Fenster. Komischerweise passiert das genau dann, sobald das Panel, auf dem sich der Button befindet, den unteren Rand der Caption des Fensters erreicht - noch nie gesehen soetwas.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.

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