Ustawienie okna programu, tak aby było na pełny ekran

0

Witam. Pisze aplikacje, i chce żeby aplikacja otwierała się w trybie pełnoekranowym oraz żeby nie było paska górnego (przyciski zamykania minimalizowania i rozmiaru okna już usunąłem ale jeszcze nie wiem jak usunac cała góre). Wykierował by mnie ktoś na temat z tym związany lub kod który coś takiego robi? Z góry mówie że używałem już funkcji szukaj i Google lecz nic takiego nie znalazłem :/
Pozdrawiam

1
  BorderStyle := bsNone;
  WindowState := wsMaximized;
0

nie sądziłem że to będzie taki łatwe :D
widziałem te opcje w proporties ale nie wiedziałem że to akurat to, dzięki

0

Windows w zasadzie nie ma czegoś takiego jak „okno pełnoekranowe” jako osobny stan okna. Okno pełnoekranowe to takie, które po prostu zajmuje cały ekran i nie ma ramki.
Gdy takie okno zostanie otwarte, system powinien automatycznie schować pasek zadań. (absolutnie nie należy tego robić ręcznie)

Może być też potrzebne ustawienie Left i Top na 0 a Width i Height na rozmiar ekranu. Nie mam Delphi pod ręką.

0

działa wszystko tak jak chciałem, tylko musze ustawić jeszcze buttony w rozmiarze okna, chyba ze jest cos takiego co zmieniało by rozdzielczosc na 1240 x 800 bo w takiej rozdzialce chce to zrobic

1

musze ustawić jeszcze buttony w rozmiarze okna, chyba ze jest cos takiego co zmieniało by rozdzielczosc na 1240 x 800 bo w takiej rozdzialce chce to zrobic

Jeśli w designerze formularz jest relatywnie mały, a po uruchomieniu zawsze ma zajmować pełny ekran to kontrolki muszą się porozsuwać i dostosować rozmiar do wymiarów okna;

Do tego celu używa się właściwości Anchors lub Align, aby ustawić zakotwiczenie kontrolki do konkretnej lub konkretnych krawędzi rodzica (okna lub konstrolki grupującej jak TPanel) lub całkowite wypełnienie całej przestrzeni z danej strony rodzica lub całej jego powierzchni; Jeśli dany komponent ma mieć określony maksymalny i/lub minimalny rozmiar, należy zainteresować się właściwością Constraints (tej nie używaj, jeśli masz ustalony Align);

Jeżeli nie o to chodzi to opisz problem dokładniej.

0

pomogło dzięki :)
ale teraz mam kolejny problem nie związany z tematem..
wrzuciłem na forme TTimer który po ukończeniu pracy zmienia linijke w TMemo a następnie odświeża Forma lecz tego nie robi..

Form1.Refresh;
Form1.Update;
Form1.Repaint;

Użyłem każdej z w/w opcji i żadna nie zadziałała

0

Spróbuj:

Application.ProcessMessages();

jeśli faktycznie wszystkie powyższe nie spełniają oczekiwań.

0

również brak rezultatu

0

Najwidoczniej Twój kod nie robi tego, czego od niego oczekujesz.

0

właśnie robi to co chce

 procedure TForm9.Timer1Timer(Sender: TObject);
var
poziom:string;
begin

   Label3.Caption := inttostr(i);

   if i = 0 then

      begin

          Timer1.Enabled := false;

          if(Label6.Caption='Ratusz') then
          begin
          poziom:=Label28.Caption;
          Form1.BazaDanych.Lines.Delete(1);
          Form1.BazaDanych.Lines.Insert(1, poziom);
          Form9.Update;
          end;

          if(Label6.Caption='Koszary') then
          begin
          poziom:=Label28.Caption;
          Form1.BazaDanych.Lines.Delete(2);
          Form1.BazaDanych.Lines.Insert(2, poziom);
          Form9.Refresh;
          end;

          if(Label6.Caption='Tartak') then
          begin
          poziom:=Label28.Caption;
          Form1.BazaDanych.Lines.Delete(3);
          Form1.BazaDanych.Lines.Insert(3, poziom);
          Form9.Refresh;
          end;

          if(Label6.Caption='Kopalnia') then
          begin
          poziom:=Label28.Caption;
          Form1.BazaDanych.Lines.Delete(4);
          Form1.BazaDanych.Lines.Insert(4, poziom);
          Form9.Refresh;
          end;

          if(Label6.Caption='Cegielnia') then
          begin
          poziom:=Label28.Caption;
          Form1.BazaDanych.Lines.Delete(5);
          Form1.BazaDanych.Lines.Insert(5, poziom);
          Form9.Refresh;
          end;

          Form9.Update;
          Label6.Visible:=false;
          Label3.Visible:=false;
          Label28.Visible:=false;

      end;

   i := i - 1;

end;

są tam różne funkcje (Refresh Update) bo probowalem jakos to zrobic ale nici...
jak działa program? Pobiera z labela zawartosc, nastepnie ją sprawdza, jeśli nazywa się np. Ratusz to sprawdza jej poziom (wpisany w labelu) następnie usuwa z Memo, potem dodaje do Memo i powinien odświeżyć ale tego nie robi..

0

Przecież Twój kod zmienia zawartość Memo na Form1, a Ty odświeżasz Form9...

Po pierwsze, trzeba skrócić ten kod - ta drabinka ifów nie dość że wygląda paskudnie, to jeszcze sprawdzany w niej jest każdy warunek, nawet jeśli któryś wcześniejszy zostanie spełniony; Napisz sobie funkcję, która zamieni łańcuch znaków z etykiety na liczbę, bo jej potrzebujesz w warunkach:

function BuildingNameToIndex(const AName: String): Integer;
const
  BUILDING_NAMES: array [1 .. 5] of String = (
    'Ratusz', 'Koszary', 'Tartak', 'Kopalnia', 'Cegielnia'
  );
var
  LIndex: Integer;
begin
  for LIndex := Low(BUILDING_NAMES) to High(BUILDING_NAMES) do
    if BUILDING_NAME[LIndex] = AName then
    begin
      Result := LIndex;
      Exit();
    end;
end;

Następnie pozbądź się tych warunków:

procedure TForm9.Timer1Timer(Sender: TObject);
var
  LIndex: Integer;
begin
  Label3.Caption := IntToStr(I);

  if I = 0 then
  begin
    Timer1.Enabled := False;

    Form1.BazaDanych.BeginUpdate();
    try
      LIndex := BuildingNameToIndex(Label6.Caption);
      Form1.BazaDanych.Lines[LIndex] := Label28.Caption;
    finally
      Form1.BazaDanych.EndUpdate();
    end;
    
    Label6.Hide();
    Label3.Hide();
    Label28.Hide();
  end;
  
  Dec(I);
end;

To w zupełności powinno wystarczyć;

Zauważ, że w ogóle nie potrzebujesz usuwać pozycji z BazaDanych.Lines - Ty usuwasz i wstawiasz nową dokładnie w to samo miejsce, więc spokojnie wystarczy po prostu zmienić wartość danej linijki i tyle; Dodałem wywołania metod BeginUpdate i EndUpdate, w razie gdyby VCL w Twoim starym Delphi miało jakiś problem z odświeżaniem zawartości (choć nie uważam, żeby tak było);

Poza tym nazwij kontrolki i formularze sensownie, bo identyfikatory typu Label3, Form1, Timer1 i podobne, kompletnie nic nie mówią o swoim przeznaczeniu.

0

ale to przecież i tak nie będzie odświeżać

1

Najpierw sprawdź, a poźniej narzekaj; Poza tym pozbądź się tego środowiska i pisz w jakimś aktualnym i ciągle rozwijanym; Lazarus jest o wiele lepszym środowiskiem od tego co masz, przy czym jest zupełnie darmowy.

0

musze pisać w tym bo w szkole sie tego ucze... dzięki

0

co do tego odświeżania Forma już doszedłem jak to zrobić, odpowiedź daje dla potomnych

Mój Form pobierał wszystkie dane przy procedurze onShow a ja próbowałem go 'namalować jeszcze raz poprzez funkcje Repaint a ta funkcja powoduje jeszcze raz zadziałanie procedury onPaint więc wrzuciłem cały kod z onShow do onPaint i teraz funkcja Repaint działa jak należy :)

Temat można zamknąć

1 użytkowników online, w tym zalogowanych: 0, gości: 1