V Lazarue existuje možnosť TButton s udalosťou Clik. Neviem ako nastaviť TButton, aby ukončilo program, keďže je tam možnosť aj OnClose, ale keď ju dám, tak nič nezavrie. Nevie niekto ako na to?
Fórum › Pascal
Lazarus - TButton
TForm (to je to hlavní okno aplikace) má metodu Close(). Tu musíš zavolat, pak se aplikace ukončí. Ověř si v dokumentaci, VCL jsem neviděl 6 let.
hu
#2 hlucheucho
Aha, a neviete mi poradiť kde by som tú dokumentáciu našiel ( nejaký link ), lebo Lazarus som iba stiahol z internetu bez dokumentácie, a študijný materiál som tiež zohnal iba z netu, teda nemám žiadnu odbornú knihu, alebo podobne k Lazarusu. Iba to čo tam dal suloweb, nič viac. Čo sa týka toho TForm, tak pochopil som to tak, že do tých zátvoriek dám TForm a program sa zavrie, je to správne? No a čo sa týka VCL, no tiež sa čudujem prečo ten Red Alert 2 dali do takého formátu, VLC som roky používal iba na prehrávanie videi, keďže to bol jediný prehrávač čo som našiel, ktorý nemal problém zo žiadným videom.
#3 doma22
VCL znamená Visual Component Library, která obsahuje implementaci těch různých tříd jako TForm. Nijak se to netýká Red Alertu.
Close je metoda třídy TForm. Ty ve svém programu máš třídu, která dědí od TForm, takže jen zavoláš Close, což ten tvůj formulář zavře a tím se ukončí celý program.
Hotový řešení najdeš např na https://forum.lazarus.freepascal.org/index.php?topic=19376.0
Stačilo do Google napsat pscal button oclick close form
hu
#5 hlucheucho
No veď to je ten problém, ja to totiž mám tak zapísane, ale nič nerobí
unit DvaOknaZmena1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TfrmOkno }
TfrmOkno = class(TForm)
btnPotvrdit: TButton;
btnZmenit: TButton;
Moznost: TButton;
edtMeno: TEdit;
procedure btnPotvrditClick(Sender: TObject);
procedure btnZmenitClick(Sender: TObject);
procedure MoznostExit(Sender: TObject);
private
public
end;
var
frmOkno: TfrmOkno;
implementation
//Premenujm formulár frmOkno napríklad na frmOkno
//Premenovanie je jednoduché pomocou vlastnosti Name
//Na formulár umiestnim editačné pole (TEdit) a nazvem ho edtMeno (edt - od slova Edit)
//Ešte pridám tlačidlo typu TButton a jeho meno bude btnPotvrdit (btn - Button)
//Nápis na tlačidle zmením jeho vlastnosťou Caption v Object Inspectore
//V prípade, že sa daný zdrojový kód nachádza v procedúre TfrmOkno.XYZ, objekt frmOkno môžem vynechať
//procedure
//TfrmOkno.btnPotvrditClick(Sender: TObject);
//begin
// ShowMessage(edtMeno.Text);
//end;
//Zmeny počas chodu programu vytváram tak, že vložím na formulár tlačidlo a nazvite ho btnZmenit
//frmOkno.edtMeno.Text := 'Andrej';
//Niektoré vlastnosti, ako napríklad Text komponentu Edit, sa dajú meniť počas behu programu
//Iné sa dajú čítať, no ich hodnotu nemôžem meniť
//Volajú sa Read-only
{$R *.lfm}
procedure TfrmOkno.btnPotvrditClick(Sender: TObject);
begin
ShowMessage(frmOkno.edtMeno.Text);
end;
procedure TfrmOkno.btnZmenitClick(Sender: TObject);
begin
frmOkno.edtMeno.Text := 'Andrej';
end;
procedure TfrmOkno.MoznostExit(Sender: TObject);
begin
Close;
end;
end.
Ako nie každý program, čo ide Vám, ide mne, neviem prečo, ale proste to tak je, nepomôže ani keď program maximalizujem
unit DvaOknaZmena1;
...
procedure MoznostExit(Sender: TObject);
DvaOknaZmena1 ? -- Pokud máš více oken, tak to zavře jen to jedno okno. (Můžeš použít ještě třeba Application.Terminate.)
MoznostExit ? -- Pokud to máš na událost OnExit, tak ta je, když ten button ztratí focus (focus znamená, že je prvek aktivní a vstup z klávesnice jde na něj). Tak to dej normálně na OnClick, nebo po kliknutí na tenhle button klikní na nějaký další, abys vyvolal OnExit.
#7 gna
Ak si pozriete program, tak zistíte, že po spustení Vám vyskočí okno, kde máte riadok s textom a tri tlačidla, prvé po stlačení Vám vyhodí okno s ok, kde je text z riadku, druhé tlačidlo Vám prepíše text v riadku a tretie by malo zavrieť okno a tým ukončiť program, text v riadku sa dá prepísať i bez tlačidiel. Názvy programov sú pracovné, ak by som chcel udávať presné názvy, tak program by sa musel volať asi hlavné okno s riadkom na text a tromi tlačidlami, čo by bol asi dosť dlhý názov, nemyslíte? Takže toľko k DvaOknaZmena? No a čo sa týka toho OnExit tak som ho tam dal pre to, že OnClick nereagovalo, ale včera som sa spojil s technickou podporou toho spamu, dali mi dáku aktualizáciu a už to funguje, prečo to tak je netuším.
#4 gna
No a čo sa týka VCL, neviem o knižnici VCL nič, počujem to prvý krát, ale skutočne existuje aj VCL prehrávač, používam ho už roky na ako som spomenul prehrávanie videi a filmov ( aby ste nepovedali, dal som si tú snahu - VCL media player ) a na stránke - old game - je red alert 2 spakovaný v tomto formáte
Hlucheucho ti poradil metodu Close, s tím ať si to ověříš v dokumentaci, protože on VCL už dlouho nepoužívá a odpovídá ti jen ze vzpomínek. Na to ty jsi zase začal s C&C, tak jsem ti objasnil o čem je řeč.
Tobě Close z nějakého důvodu nějak nefunguje, tak jen tipuju, co přesně to znamená a čím by to mohlo být. Už nebudu. Nainstaluj s v DOSBoxu Turbo Pascal s českou nápovědou a nejméně na rok máš co dělat.
A to volání na technickou podporu nějakého náhodného spammera a nainstalovat si jakousi jejich aktualizaci je vrchol debility.
#10 gna
No, no ľudia, ja sa tu snažím byť slušný, ale čo je moc, tak to je moc. Ako vážený aj ja mám tiež len jedne nervy a tým, že som sa neučil informatiku už na ZDŠ ešte neznamená, že mi tu môžete vypisovať veci typu citujem " debilita, pičovina " a podobne, dobre. Vážený páni možno ste dobrý alebo možno aj excelentný programátori, čo zarobíte 60, 100 a možno aj 500 tisíc, alebo i miliardy, ale ako 99% ľudí v kapitalizme a súkromných výrobných prostriedkov máte problém čítať s porozumením a odosobniť sa. Ja som Vám písal, ešte raz Začinam sa učiť programovať, táto veta neznamená, že idem sa dokonale naučiť paskal a končím, tak ako všetci ste začínali na paskale, tak začínam i ja, keď ste boli na strednej tak ste asi nezačali C++, či áno? A tento postup, kde začínam s jednoduchými vecmi a potom prechádzam na zložitejšie, vymysleli ľudia už pred tisícročiami, asi preto, aby ak použijem Váš slovník, obťažovali deti, mládež a učencov pičovinami a debilinami, nech im predsa len odkroja časť z ich života a času. Jasne som vám niekoľko krát napísal, že v žiadnom prípade nejdem do hĺbky a že, mám tu len pár vecí ( presne 9 z paskala a 3 z Lazarusu ), to určite nie je celý paskal. Ja Vám vždy presne odpovedám na Vaše otázky, pýtal si sa ma citujem " DvaOknaZmena? ", aspoň ja to tak beriem, keď tam je otáznik, no a ja som ti odpovedal, toť sio, ale bohužiaľ nie vždy mi pre zmenu zase odpovedáte Vy a dosť, často som sa musel opakovať, ale ok. Čo sa týka VLC odpovedal som Vám veľmi slušne, lebo neviem ako by ste odpovedali vy mne, ak by som Vám ja odpovedal, zkratene a v podstate povedané - No to je taká blbosť, blaboceš, debilina, pičovina a podobne. Jasne som povedal, že o knižnici VLC nič neviem, ale existuje VLC prehrávač, to je fakt a Vy miesto toho, aby ste si moju odpoveď prečítali s porozumením a povedali napríklad - áno je VLC prehrávač, no ten a ten myslel na VLC knižnicu - tu hneď útočite. Čo sa týka Red Alertu, áno spomenul som ho, lebo vy ste hovorili o ovci a ja o vlku, hluch..... to presne v prvej reakcii nenapísal, či hovorí o VLC knižnici, alebo o VLC prehrávači, a ja keďže o VLC knižnici som nič nevedel, tak som hovoril o VLC prehrávači, a áno tá hra je v takom formáte zbalená. Takže ok objasnil si mi o čom písal hlu...., ale ja som písal zase o VLC prehrávačí, už z spomenutého dôvodu, no a ak je Red Alert 2 zbalený vo formáte VLC, tak to asi ten Red Alert nejak súvisí, minimálne s VLC prehrávačom, keď je zbalený v VLC formáte, nikdy som netvrdil, že súvisí s knižnicou, ja som spomínal VLC prehrávač a VLC zbalený formát. No a čo sa týka toho spamu, čítajte moje odpovede s porozumením poprosím Vás. Ja som nepísal, že som si dal aktualizáciu z nejakého spamu. Jasne som napísal, že to bol spam, ale ten ma cez link poslal na oficiálnu stránku, takže to nebola nejaká aktualizácia, ale oficiálna aktualizácia, ktorá aj asi pomohla. Na záver som rád za tú pomoc, čo bola pred tým a čo prebehla, ale prehodnocujem svoj názor a áno cením si pomoc, ale už ma prešli chute na zoznamovanie, ak by ste ako som písal mali náhodou cestu okolo, pretože ľudí ktorí sú ponorený sami do seba, ľudí ktorých musím vyprosovať, ľudí ktorí nevedia plne počúvať iných v dnešnej super demokratickej dobe mám vo svojom okolí dosť až moc, a nie len v okolí, ale i vo svete ako takom. Všetko raz bude zastaralé aj C++, a keďže vývoj v tejto oblasti je obzvlášť rýchly, môže sa Vám stať, že príde ďalšia generácia a Vy budete v mojej koži, a tí nový mladí po Vašom vzore budú nie rovnaký, ale ešte horší, a potom uvidíme ako to budete brať, keď ako sa povie, sa karta obráti. Pretože nič prevratné som nepovedal, ak som napríklad povedal, že na programovanie nie je potrebná angličtina, keďže jednotky a nuly sú všade rovnaké ( v čom vážený je strojový kód , v čom pracuje pc, v angličtine, nie v 1 a 0 ), ale ako typický ľudia dnešnej doby, je to hlúposť, haha a podobne, pretože dnes ľudia nie sú schopný spájať vedomosti, ktoré doslova trhajú oči do väčších celkov, keďže najlepšie sa ovládajú masy ak majú tunelové videnie, ja a môj svet, inak nič neexistuje. Ďakujem za pomoc, už som si myslel, že predsa ešte existujú aj normálny ľudia, no mýlil som sa.
VCL = visual component library, tj. knihovna windowsích okýnek, tlačítek a podobných věcí.
VLC media player = přehrávač videa, s VCL nemá nic společného.
Jestli existuje nějaký archivátor, co dělá soubory s koncovkou VCL nebo VLC, tak s tou knihovnou taky nemá nic společného a je to jenom náhodná shoda zkratek.
Zavírání okna: do procedury, kterou máš pověšenou na události Onclick zavíracího tlačítka (ze samotného zdrojáku nepoznám, která to je), napiš Frmokno.Close;
Moje stránka.
#12 Mircosoft
Ten problém čo tu mám hodený, je už vyriešený, takže už sa nemusí riešiť. To s tým VLC som pochopil a bude to zhoda názvov, pochopil som, že knižnica s VLC s tým nemá nič spoločné, mňa vytočilo to, že ja som pochopil odpovede, ale moje odpovede pred tebou sa zjavne nepochopili, kde som jasne vysvetlil, prečo som hovoril o VLC prehrávači, naštvalo ma to, že miesto konštruktívného dialógu, kde sa počúvajú obidve strany, som sa dočkal na moju adresu zosmiešňovania, večne vysvetľovania toho istého ( ako mám s.... na paskal a podobne ) a ešte aj vulgarizmov. No čo sa týka tohto problému, čo som tu dal, je už opravený ( písal som aj ako k tomu došlo ) a pre mňa uzavretý, takže ďakujem za reakciu a pomoc, ale už som to vyriešil.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Lazarus — založil ProgDan
Lazarus — založil Rampa
Lazarus help — založil kardon
Lazarus - má to smysl? — založil Jan16
Lazarus - Programy — založil doma22
Moderátoři diskuze