AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zugriff auf Prozedur anderer Unit
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Prozedur anderer Unit

Ein Thema von tankm26 · begonnen am 29. Okt 2006 · letzter Beitrag vom 30. Okt 2006
Antwort Antwort
Seite 2 von 2     12   
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#11

Re: Zugriff auf Prozedur anderer Unit

  Alt 30. Okt 2006, 09:28
Kann jemand von euch erkennen, wieso die listbox auf dem 2. panel nicht mehr sichtbar ist, sobald das panel angezeigt wird?

Delphi-Quellcode:
unit skat1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ScktComp, StdCtrls, Grids, ExtCtrls, ImgList,
  ActnList, ComCtrls, jpeg, Buttons;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    lsort2: TLabel;
    lsort3: TLabel;
    lsort1: TLabel;
    lsort4: TLabel;
    Image1: TImage;
    lmodi: TLabel;
    Label2: TLabel;
    StringGrid1: TStringGrid;
    btnormals: TButton;
    btnachkrbub: TButton;
    btgeben: TButton;
    btende: TButton;
    btsort2: TButton;
    btsort3: TButton;
    btmischen: TButton;
    btmemory: TButton;
    btrestore: TButton;
    btsort4: TButton;
    ledi1: TLabeledEdit;
    btneumax: TBitBtn;
    trbr: TTrackBar;
    Panel2: TPanel;
    lbox: TListBox;
    ximage1: TImage;
    xbtmischen: TButton;
    xbtgeben: TButton;
    xbtmemory: TButton;
    xbtrestore: TButton;
    xbtnormals: TButton;
    xbtsort2: TButton;
    xbtsort3: TButton;
    xbtsort4: TButton;
    xlsort1: TLabel;
    xlsort3: TLabel;
    xlsort4: TLabel;
    xlsort2: TLabel;
    xbtende: TButton;
    xtrbr: TTrackBar;
    xlmodi: TLabel;
    xlabel2: TLabel;
    xbtneumax: TBitBtn;
    xledi1: TLabeledEdit;
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure btnormalsClick(Sender: TObject);
    procedure btnachkrbubClick(Sender: TObject);
    procedure btendeClick(Sender: TObject);
    procedure btgebenClick(Sender: TObject);
    procedure btsort2Click(Sender: TObject);
    procedure btsort3Click(Sender: TObject);
    procedure btmischenClick(Sender: TObject);
    procedure btmemoryClick(Sender: TObject);
    procedure btrestoreClick(Sender: TObject);
    procedure btsort4Click(Sender: TObject);
    procedure btneumaxClick(Sender: TObject);
    procedure trbrChange(Sender: TObject);
  private
    procedure zeitmessung(w,s:integer);
    procedure wimageload;
    procedure wsortiere1vert(s,w:integer);
    procedure wsortiere2einf;
    procedure wsortiere3ausw;
    procedure wsortiere4adrian;
    procedure wmischen;
    procedure wgeben;
    procedure change;
    procedure wxgeben;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  karten:array[1..33] of TBitmap;
  kartenfeld,memory1:array[1..32] of Integer;
  nummern:array[1..33]of Integer;
  nix,von,bis,max,ws:integer;
  c,n1,n2,q:int64;
implementation
{$R *.dfm}

procedure TForm1.zeitmessung(w,s:integer);
begin
  if w=0 then begin //Start
    QueryPerformanceFrequency(c);
    QueryPerformanceCounter(n1);
 end;
 if w=1 then begin //Stop
  QueryPerformanceCounter(n2);
  if s=1 then lsort1.Caption:=format('Zeit: %g s',[(n2-n1)/c]);
  if s=2 then lsort2.Caption:=format('Zeit: %g s',[(n2-n1)/c]);
  if s=3 then lsort3.Caption:=format('Zeit: %g s',[(n2-n1)/c]);
  if s=4 then lsort4.Caption:=format('Zeit: %g s',[(n2-n1)/c]);
 end;
 if w=2 then begin //Reset

 end;
end;

procedure TForm1.wmischen;
var i,x,j:integer;
 begin
 Randomize;
  for i:=1 to max do begin
    j:=Random(max-1)+1;
    X:=kartenfeld[i];
    kartenfeld[i]:=kartenfeld[j];
    kartenfeld[j]:=x;
  end;
  stringgrid1.Refresh;
end;

procedure TForm1.wgeben;
var i:integer;
begin
  for i:=1 to max do
    kartenfeld[i]:=nummern[i];
  nix:=nummern[33];
end;



procedure TForm1.wsortiere1vert(s,w:integer);
var i,x,j:integer;
begin
  zeitmessung(0,1);
  if s=0 then begin
    i:=1;
    repeat
    for j:=i+1 to max do begin
      if kartenfeld[j] < kartenfeld[i] then begin
        x:=kartenfeld[i];
        kartenfeld[i]:=kartenfeld[j];
        kartenfeld[j]:=x;
      end;
    end;
  i:=i+1;
  until i=max;
end;
  if s=1 then begin
  x:=1;
  repeat
    if kartenfeld[x]=w then begin
      kartenfeld[x]:=kartenfeld[x+1];
      kartenfeld[x+1]:=w;
    end;
    x:=x+1;
  until x=max;
  end;
stringgrid1.Refresh;
zeitmessung(1,1);
end;

procedure TForm1.wsortiere2einf;
  {man vergleicht die 1. karte mit allen folgenden, dann die 2. mit allen anderen usw. wäre adrian}
{ [url]http://www.gymmelk.ac.at/nus/Delphi/Delphi11.htm#auswahl[/url]   }
var
i,j,x:integer;
begin
  zeitmessung(0,2);
  for i:=2 to max do begin
    x:=kartenfeld[i];
    j:=i-1;
    while (x<kartenfeld[j]) and (j>0) do begin
      kartenfeld[j+1]:=kartenfeld[j];
      dec(j);
    end;
    kartenfeld[j+1]:=x;
  end;
  stringgrid1.Refresh;
  zeitmessung(1,2);
end;

procedure TForm1.wsortiere3ausw;
var d,e,f,g:integer;
begin
  zeitmessung(0,3);
  for f:=1 to max-1 do begin
    e:=0;
    g:=f;
    for d:=f+1 to max do begin
      if kartenfeld[d]<g then begin
        g:=kartenfeld[d];
        e:=d;
      end;
    end;
    kartenfeld[e]:=kartenfeld[f];
    kartenfeld[f]:=g;
  end;
  stringgrid1.Refresh;
  zeitmessung(1,3);
end;

procedure TForm1.wsortiere4adrian;
var i,j,z:integer;
begin
  zeitmessung(0,4);
  for i:=1 to max-1 do
  begin
    for j:=i+1 to max do
    begin
      if kartenfeld[j]<kartenfeld[i] then
      begin
      z:=kartenfeld[i];
      kartenfeld[i]:=kartenfeld[j];
      kartenfeld[j]:=z;
      end;
    end;
  end;
  stringgrid1.Refresh;
  zeitmessung(1,4);
end;

procedure TForm1.wimageload;
var i: integer;
begin
  for i:=1 to 33 do
  begin
    karten[i]:=TBitmap.Create;
    karten[i].LoadFromFile(IntToStr(i)+'.bmp');
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var ws:integer;
begin
  wimageload;
  for ws:=1 to 33 do nummern[ws]:=ws;
  for ws:=1 to 32 do kartenfeld[ws]:=nummern[33];
  stringgrid1.Refresh;
  max:=32;
  form1.Width:=1019;
  form1.Height:=347;
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var c:integer;
begin
  for c:=1 to 32 do begin
    if kartenfeld[Acol+1]=c then
    stringgrid1.Canvas.Draw(rect.left, rect.top, Karten[c]);
  end;
end;

procedure TForm1.btnormalsClick(Sender: TObject);
begin
  wsortiere1vert(0,0);
end;

procedure TForm1.btnachkrbubClick(Sender: TObject);
begin
  wsortiere1vert(1,29);
  wsortiere1vert(1,21);
  wsortiere1vert(1,13);
  wsortiere1vert(1,5);
end;

procedure TForm1.btendeClick(Sender: TObject);
begin
close;
end;

procedure TForm1.btgebenClick(Sender: TObject);
begin
  wgeben;
  stringgrid1.Refresh;
  btnachkrbub.Enabled:=true;
  btnormals.Enabled:=true;
  btsort2.Enabled:=true;
  btsort3.Enabled:=true;
  btsort4.Enabled:=true;
  btmischen.Enabled:=true;
  btmemory.Enabled:=true;
  btrestore.Enabled:=true;
end;

procedure TForm1.btsort2Click(Sender: TObject);
begin
 wsortiere2einf;
end;

procedure TForm1.btsort3Click(Sender: TObject);
begin
  wsortiere3ausw;
  wsortiere3ausw;
end;

procedure TForm1.btmischenClick(Sender: TObject);
begin
wmischen;
end;

procedure TForm1.btmemoryClick(Sender: TObject);
var w:integer;
begin
  for w:=1 to 32 do begin
    memory1[w]:=kartenfeld[w];
  end;
  stringgrid1.Refresh;
end;

procedure TForm1.btrestoreClick(Sender: TObject);
var w:integer;
begin
  for w:=1 to 32 do begin
    kartenfeld[w]:=memory1[w];
  end;
  stringgrid1.Refresh;
end;

procedure TForm1.btsort4Click(Sender: TObject);
begin
  wsortiere4adrian;
end;

procedure TForm1.btneumaxClick(Sender: TObject);
begin
  if panel1.Visible=true then begin
    if StrToInt(ledi1.Text)>32 then begin
    showmessage('Für den Skatmodus bitte nur max. 32');
    ledi1.Text:='32';
    end else begin
      max:=StrToInt(ledi1.Text);
      wxgeben;
    end;
  end else begin
    max:=StrToInt(ledi1.Text);
    wxgeben;
  end;
end;

procedure TForm1.trbrChange(Sender: TObject);
begin
  if not panel1.Visible=true then begin
    //Skatmodus
    change;
    ws:=0;
  end else
  begin
    //X-Modus
    change;
    ws:=1;
  end;
end;

procedure TForm1.change;
begin
  if ws=0 then begin
    //skatmodus
    form1.Width:=1020;
    form1.Height:=348;
    panel1.Visible:=true;
    panel2.Visible:=false;
    trbr.Position:=0;
  end else begin
    //x-modus
    form1.Width:=378+9;
    form1.Height:=600+36;
    panel1.Visible:=false;
    panel2.Visible:=true;
    panel2.Left:=0;
    panel2.Top:=0;
    trbr.Position:=1;
  end;
end;

procedure TForm1.wxgeben;
var i: Integer;
begin
  lbox.clear;
  for i:=1 to max do lbox.Items.Add(IntToStr (i));
end;

end.
Angehängte Dateien
Dateityp: rar sortierprogramm_0.8_157.rar (286,0 KB, 5x aufgerufen)
Wieland S.
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#12

Re: Zugriff auf Prozedur anderer Unit

  Alt 30. Okt 2006, 09:46
Ja, weil die Eigenschaft Visible auf FALSE steht (wenn Du die rote Listbox meinst).

Grüsse
...Doc
  Mit Zitat antworten Zitat
tankm26

Registriert seit: 18. Sep 2004
Ort: Wentorf
87 Beiträge
 
Delphi 7 Personal
 
#13

Re: Zugriff auf Prozedur anderer Unit

  Alt 30. Okt 2006, 09:58
selten dämlich!
Wieland S.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 Uhr.
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