Einzelnen Beitrag anzeigen

Qnkel

Registriert seit: 14. Mär 2004
114 Beiträge
 
FreePascal / Lazarus
 
#1

TImage.Create will einfach nicht funktionieren.

  Alt 7. Nov 2010, 10:38
Moin.

Hier erstmal mein Code:

Delphi-Quellcode:
type

  { Karten }

  TKarte = class
    Typ: integer;
    Sichtbar: Boolean;
    Tisch: TImage;
  end;

var
  Hauptform: THauptform;
  Spielerzahl: integer;
  Kartenmischung: array[0..31] of integer;
  Kartenblatt: array[0..31] of TPicture;
  Deckkarte: TPicture;
  Karte: array[0..8] of array[1..3] of TKarte;

function Kartenladen(Pfad, Typ: string): Boolean;
var iBlatt, iSpieler, iKarte, iSpielerkarte, iAusgegeben: integer;
begin
  Result := True;
  Deckkarte := TPicture.Create;
  If FileExists(Pfad + '\Deck.' + Typ) then
        Deckkarte.LoadFromFile(Pfad + '\Deck.' + Typ)
    Else
      Result := False;
  for iBlatt:=0 to 31 do
    begin
      Kartenblatt[iBlatt] := TPicture.Create;
      If FileExists(Pfad + '\' + IntToStr(iBlatt) + '.' + Typ) then
        Kartenblatt[iBlatt].LoadFromFile(Pfad + '\' + IntToStr(iBlatt) + '.' + Typ)
      Else
        Result := False;
    end;
  for iSpieler := 0 to Spielerzahl do
    for iKarte := 1 to 3 do
      begin
        Karte[iSpieler, iKarte].Tisch := TImage.Create(nil);
        for iSpielerkarte := 0 to iAusgegeben do
          begin
            Karte[iSpieler, iKarte].Tisch.Picture := Kartenblatt[iAusgegeben];
            inc(iAusgegeben);
          end;
      end;
end;
Der untere for-to-do-Abschnitt funktioniert nicht. Ich habe es schon mit TCustomImage.Create probiert sowie eine Variable "CTisch = TCustomImage" gemacht und es darüber probiert (wurde mir im IRC geraten), aber all das half nicht.

Wo ist das Problem? Ein Update auf Lazarus 0.9.29 half auch nicht.

Es kommt: "Projekt a.exe hat Exception-Klasse 'External: SIGSEGV' ausgelöst." und danach ein Assembler-Fenster.
Lazarus v0.9.29 (2010-10-31 SVN 28000)
  Mit Zitat antworten Zitat