AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Button.Caption "einfrieren"?
Thema durchsuchen
Ansicht
Themen-Optionen

Button.Caption "einfrieren"?

Ein Thema von R0bin2o11 · begonnen am 15. Sep 2012 · letzter Beitrag vom 16. Sep 2012
Antwort Antwort
Seite 1 von 2  1 2      
R0bin2o11

Registriert seit: 15. Sep 2012
2 Beiträge
 
#1

Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:19
Hallo liebes Forum,

Gibt es in Delphi einen Befehl, mit dem man die Caption eines Buttons "einfrieren", also dass die Caption "unantastbar" und unter gar keinen Umständen zu ändern ist?

LG Robin
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#2

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:23
Hallo und willkommen in der DP

Als erstes leider ein Mini Anpfiff. Crossposts bitte in Zukunft gegenseitig verlinken damit Antworten nicht doppelt gegeben werden bzw. ein Forum die Lösung schon hat im anderen noch darüber geschwitzt wird.

Crosspost: http://www.entwickler-ecke.de/viewtopic.php?t=110218

Zum Thema:
Kannst du dein Anliegen etwas genauer definieren ? Wenn du in deinem Programm die Caption nicht änderst bleibt sie auch so. Oder meinst du von Extern ? Wer sollte so etwas versuchen ?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:26
Zitat:
also dass die Caption "unantastbar" und unter gar keinen Umständen zu ändern ist?
Keinen Befehl.
Aber was hält dich davon ab dieses selbst auf den Button zu zeichnen?

DrawTextToDC


gruss

Geändert von EWeiss (15. Sep 2012 um 17:29 Uhr)
  Mit Zitat antworten Zitat
R0bin2o11

Registriert seit: 15. Sep 2012
2 Beiträge
 
#4

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:33
Edit: Ich möchte, dass sobald ein Button die richtige Caption (also die richtige Zahl [1-9]) hat, die Caption nicht mehr von den anderen Buttons geändert werden kann.

Ich gebe euch mal meinen Quellcode... ^^

Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Timer1: TTimer;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
RANDOMIZE;
Button1.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button2Click(Sender: TObject);

begin
RANDOMIZE;
Button2.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button3Click(Sender: TObject);

begin
RANDOMIZE;
Button3.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button4Click(Sender: TObject);

begin
RANDOMIZE;
Button4.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button5Click(Sender: TObject);

begin
RANDOMIZE;
Button5.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button6Click(Sender: TObject);

begin
RANDOMIZE;
Button6.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button7Click(Sender: TObject);

begin
RANDOMIZE;
Button7.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button8Click(Sender: TObject);

begin
RANDOMIZE;
Button8.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Button9Click(Sender: TObject);

begin
RANDOMIZE;
Button9.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin
  if Button1.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button1.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button2.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button3.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button4.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button5.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button6.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
  if Button7.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button8.Caption=Button9.Caption then Button9.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button1.Caption then Button1.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button2.Caption then Button2.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button3.Caption then Button3.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button4.Caption then Button4.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button5.Caption then Button5.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button6.Caption then Button6.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button7.Caption then Button7.Caption:=IntToStr(Random(9)+1);
  if Button9.Caption=Button8.Caption then Button8.Caption:=IntToStr(Random(9)+1);
end;

end.
LG Robin

Geändert von R0bin2o11 (15. Sep 2012 um 17:54 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:38
Dann hab ich da wohl was falsch verstanden..

BOahhh so viele, jedemenge Button.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.289 Beiträge
 
Delphi 12 Athens
 
#6

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:42
Ähmmm... ok.

Versuche mal zu beschreiben (Stichpunkte) wie dein Programm arbeiten soll. Bevor das nicht klar ist, können wir schlecht helfen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:48
Japp, sehe ich auch so. Dann kann man auch gleich Logik und Darstellung trennen, denn Buttons sind ja nicht dazu da, irgendwelche Daten vorzuhalten, sondern um ein Ereignis auszulösen. Und wenn man doch unbedingt Daten darin verwalten will/muss, eignet sich die Tag-Eigenschaft wohl eher dazu, zumal sie auch noch zufällig nummerisch ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#8

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 17:57
Edit: Ich möchte, dass sobald ein Button die richtige Caption (also die richtige Zahl [1-9]) hat, die Caption nicht mehr von den anderen Buttons geändert werden kann.
Was ist denn die "richtige" Zahl für einen Button?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 18:01
Edit: Ich möchte, dass sobald ein Button die richtige Caption (also die richtige Zahl [1-9]) hat, die Caption nicht mehr von den anderen Buttons geändert werden kann.
Was ist denn die "richtige" Zahl für einen Button?
Denke mal das soll eine art Slottmachine sein.
Wobei wenn eine zahl zwischen 1 und 9 auftritt diese nicht mehr geändert werden soll.

Nur geraten.

gruss

Geändert von EWeiss (15. Sep 2012 um 18:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#10

AW: Button.Caption "einfrieren"?

  Alt 15. Sep 2012, 20:13
Wobei wenn eine zahl zwischen 1 und 9 auftritt diese nicht mehr geändert werden soll.
Hmmm, was könnte bei Random(9)+1 wohl an Zahlen herauskommen...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:15 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