![]() |
unbegründete AccessViolation?
Delphi-Quellcode:
kurz - popup auf einem tabsheet wo auf dynamisch generiertenseiten auf pupupclick etwas geschehen soll..
procedure TMyArtz.NeuClick(Sender: TObject);
var newsheet:ttabsheet; begin newsheet := ttabsheet.Create(tabs); newsheet.Name := 'ts_' + IntToStr(nr); newsheet.PageControl := tabs; newsheet.Caption := 'Unbekannt_' + IntToStr(nr); pb := TPaintbox.Create(Tabs); pb.Parent := Tabs.Pages[nr]; pb.Tag := nr; pb.Name := 'pb_' + IntToStr(nr); inc(nr); end; procedure TMyArtz.Delete1Click(Sender: TObject); var i : Integer; begin i := TPaintbox(Sender).Tag; TPaintbox(Sender).Canvas.Rectangle(0,0,TPaintbox(Sender).Width, TPaintbox(Sender).Height); end; ich kann nur darauf nicht zeichnen - sehr wohl aber .destroy ohne fehler bzw alle anderen sachen. wär super hätte wer einen fehler gefunden(komm einfach nicht drauf und mag nicht stupide um diese uhrzeit rumprobieren) grüße Nico |
Re: unbegründete AccessViolation?
Die Sheets haben keinen Parent.
|
Re: unbegründete AccessViolation?
newsheet.PageControl := tabs; genügt wenn ich mich nicht irre
zumal das unten irrelevant ist :zwinker: |
Re: unbegründete AccessViolation?
Moin Nico,
prüf' doch erst einmal, ob der Sender überhaupt eine Paintbox ist:
Delphi-Quellcode:
oder lass' Dir mit
if Sender is TPaintBox then ...
Delphi-Quellcode:
mal ausgeben, welche Klasse der Sender hat.
ShowMessage(Sender.Classname);
|
Re: unbegründete AccessViolation?
Ist möglich, würde es aber an deiner Stelle versuchen ob es was hilft, den parent zu setzen.
Die Symptomatik weist jedenfalls auf den fehlenden parent hin. |
Re: unbegründete AccessViolation?
@christian - hi
hatte ich vorhin zur kontrolle drinnen - der sender stimmt. @mkinzler - danke, aber ist sicher nicht das problem(habs auch probiert ;) ) |
Re: unbegründete AccessViolation?
Versuch mal
Delphi-Quellcode:
statt
pb.Parent := newsheet;
Delphi-Quellcode:
Was ist der Initialwert von nr? 0 oder 1
Tabs.Pages[nr];
|
Re: unbegründete AccessViolation?
Hi Nico,
würde es helfen, der Paintbox eine Größe zu geben? Gruß Hawkeye |
Re: unbegründete AccessViolation?
ging auch nicht ;)
der initialisierungswert ist 0 aber mit eins gehts auch nicht vorneweg ;) @hawk - leider nicht - aber danke dass hab ich sowieso vergessen gehabt stimmt :oops: |
Re: unbegründete AccessViolation?
Was mir gerade noch so auffällt:
Bei einer TPaintBox sollte man doch nur in der Behandlungsroutine für OnPaint zeichnen. Ist "Delete1Click" wirkliche diese Routine? :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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 by Thomas Breitkreuz