![]() |
Komponente will sich nicht neu zeichnen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi
Folgendes Problem, ich hab jetzt ne Kompo geschrieben, die durch die Property Items: TStrings verschiedene Buttons anzeigt. Wenn ich jetzt im OI die Items ändere werden die Korrekte anzahl von buttons angezeigt, sobald ich jetzt jedoch mit
Delphi-Quellcode:
während der laufzeit einen neuen Button hinzufügen will, wird dieser erst angezeigt wenn ich die Form vergrößer. Jedoch sollte die Kompo beim resizen der form und beim hinzufügen neuer Items sich neuzeichnen :|
TControlTab.Items.Add('Eintrag');
Ich poste mal den Code: (Biete ihn doch zum DL an) Sorry, für die vielen kommentierten Programmzeilen, aba so läuft die kompo!! |
Hallo,
vielleicht tut es ein Repaint bei SetItems, leider habe ich jetzt keinen Code mehr vor augen, da Du gerade Dein posting umgestellt hast :bounce1: |
Hi APP!
Die Mods meinten ich sollte es umstellen :firejump: Ich probiere es mal mit Repaint. ;) Edit: nein funzt leider nicht :cry: |
Hallo,
Delphi-Quellcode:
[EDIT] SORRY, zu Früh gefreut :( [/EDIT]
PROCEDURE TControlTabs.SetItems(CONST Value: TStrings);
BEGIN FItems.Assign(Value); SetLength(FButtons, FItems.Count); INHERITED Paint; // <-- JETZT FUNKTS LEIDER NICHT Invalidate; END; |
hmm, hast du noch etwas verändert?? also bei klappts nämlich immer noch nicht.
edit: *lol* ich habs auch grad gemerkt! ;) |
Sorry, mir fällt im Moment auch nix mehr ein (war ein langer Tag),
aber es dürft wohl nur eine Kleinigkeit sein, da z.B.
Delphi-Quellcode:
funktioniert.
procedure TForm1.Button1Click(Sender: TObject);
begin ControlTabs1.Items.Add('Test'); ControlTabs1.Repaint; end; |
Ja das es mit Repaint als nachträglicher Aufruf funktioniert, hab ich auch herausgefunden. Ich seh auch wahrscheinlich den Wald vor lauter Bäumen nicht mehr (ich saß den ganzen Tag schon davor :lol:). Falls dir noch etwas einfällt, schreibs mir ;)
|
Probier mal statt "inherited Paint" nur "Paint"...
|
Guten Morgen Motzi!
Ich habe es jetztn so geschrieben:
Delphi-Quellcode:
Leider kommt da wieder nichts bei rum :(
procedure TControlTabs.SetItems(const Value: TStrings);
begin FItems.Assign(Value); SetLength(FButtons, FItems.Count); Paint; end; |
Hallo, ich habe heut leider nicht viel Zeit aber folgendes ist mit noch aufgefallen:
Delphi-Quellcode:
ruft in der Unit Classes
procedure TForm1.Button1Click(Sender: TObject);
begin ControlTabs1.Items.Add('Test'); end;
Delphi-Quellcode:
auf und nicht Deine Paintmethode, daher kommt es auch zu keinem Neuzeichnen der Controls.
function TStrings.Add(const S: string): Integer;
begin Result := GetCount; Insert(Result, S); end; Die Methode SetItems wird nicht durchlaufen, das kannst Du ganz leicht überprüfen: einbinden von:
Delphi-Quellcode:
uses Dialogs;
Delphi-Quellcode:
PROCEDURE TControlTabs.SetItems(CONST Value: TStrings);
BEGIN FItems.Assign(Value); SetLength(FButtons, FItems.Count); ShowMessage(Value.Text); <---- Sollte angezeit werden, tut es aber nicht! invalidate; END; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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