Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi unbegründete AccessViolation? (https://www.delphipraxis.net/67010-unbegruendete-accessviolation.html)

Nicodius 7. Apr 2006 21:32


unbegründete AccessViolation?
 
Delphi-Quellcode:
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;
kurz - popup auf einem tabsheet wo auf dynamisch generiertenseiten auf pupupclick etwas geschehen soll..

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

mkinzler 7. Apr 2006 21:35

Re: unbegründete AccessViolation?
 
Die Sheets haben keinen Parent.

Nicodius 7. Apr 2006 21:36

Re: unbegründete AccessViolation?
 
newsheet.PageControl := tabs; genügt wenn ich mich nicht irre


zumal das unten irrelevant ist :zwinker:

Christian Seehase 7. Apr 2006 21:39

Re: unbegründete AccessViolation?
 
Moin Nico,

prüf' doch erst einmal, ob der Sender überhaupt eine Paintbox ist:

Delphi-Quellcode:
if Sender is TPaintBox then ...
oder lass' Dir mit

Delphi-Quellcode:
ShowMessage(Sender.Classname);
mal ausgeben, welche Klasse der Sender hat.

mkinzler 7. Apr 2006 21:39

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.

Nicodius 7. Apr 2006 21:41

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 ;) )

mkinzler 7. Apr 2006 21:46

Re: unbegründete AccessViolation?
 
Versuch mal
Delphi-Quellcode:
pb.Parent := newsheet;
statt
Delphi-Quellcode:
Tabs.Pages[nr];
Was ist der Initialwert von nr? 0 oder 1

Hawkeye219 7. Apr 2006 21:49

Re: unbegründete AccessViolation?
 
Hi Nico,

würde es helfen, der Paintbox eine Größe zu geben?

Gruß Hawkeye

Nicodius 7. Apr 2006 21:50

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:

Hawkeye219 7. Apr 2006 21:58

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 19:47 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